matlab实现可调节占空比的方波

我大概讲一下实现的原理:正弦波移相φ,当使得大于sin(φ)的值为1,其他值为-1,占空比就跟这个φ值之间有联系。

占空比原理图如下所示。

结果上图,可以实现调节占空比,方波频率,方波个数。

下面是函数的代码:

function y=squarewav(Vm,f,K,n)      %参数为幅度,频率,占空比,以及波形个数

% 正弦信号
% f = 1000;% 正弦波频率
w = 2*pi*f;% 正弦波角频率
% Vm = 2;% 正弦幅值
u = (0.5-K)*pi;% 相位
N = 4000;% 调节采样率,采样率越大,波形误差越小
M = n*N;
Fs = N*f;% 采样率:1/f_sameple为采样时间间隔,通常以N倍的信号源来表示
t = [0:M]/Fs;% 采样时间向量(始终采N个点,即刚好采信号源的一个周期)
y_sin = Vm*sin(w*t+u);

for i=1:M+1
    if(y_sin(i)>=y_sin(1))
        y_plus(i) = Vm;
    else
        y_plus(i) = -Vm;
    end
end

figure
subplot(2,1,1)
plot(t,y_sin,t,y_plus,‘r‘,t,0,‘-‘)
subplot(2,1,2)
ylim([-2.5 2.5])
plot(t,y_plus,‘r‘,t,0,‘-‘)
ylim([-2.5 2.5])

  不太了解的可以联系我QQ:1162139673:

时间: 2024-11-24 00:57:15

matlab实现可调节占空比的方波的相关文章

关于STM32 定时器 PWM 实时调节占空比时,预装载特性

最近在调试项目的时候遇到一个奇怪的现象:在调试状态下,给定时器捕获比较寄存器赋不同值,能产生不同占空比的波形(图1).反映到器件上也有不同的电压显示,但是在设备运行的时候,就不行了(图2). 图1 图2 纠结了N天后,也没有办法解决,只好乖乖的看STM32 控制器手册找找看了,结果还真找到了. 从图中可以看到,如果使能预装载特性,则数据会立即写入寄存器中,如果没有使能,那就得等到有事件(?)发生了.这我就明白了,在调试状态下,给寄存器赋值,不会产生什么影响,因为人的反应速度很慢,但是在运行的时候

Arduino利用TimerOne库产生固定频率和占空比的方波

TimerOne地址: https://code.google.com/archive/p/arduino-timerone/downloads ex: #include "TimerOne.h" void setup(){ pinMode(10, OUTPUT); Timer1.initialize(500000); // initialize timer1, and set a 1/2 second period Timer1.pwm(9, 512); // setup pwm o

STM32学习笔记6(TIM通用模块生成PWM)

1.     TIMER输出PWM基本概念   脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术.简单一点,就是对脉冲宽度的控制.一般用来控制步进电机的速度等等. STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出. 1.1   PWM输出模式 S

(五)转载:通用定时器PWM输出

1.     TIMER输出PWM基本概念   脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术.简单一点,就是对脉冲宽度的控制.一般用来控制步进电机的速度等等. STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出. 1.1   PWM输出模式 S

使用IR2101半桥驱动电机的案例

作为一个电机驱动开发方面的菜鸟,近日研究了一下通过MOS管对整流后的电源斩波用以驱动直流电机进行调速的方案. 在驱动的过程中,遇到了许多问题,当然也有许多的收获. 写下来以供自己将来查阅,也为其它菜鸟提供一些力所能及的帮助. 1.研究目标 公司使用的电机驱动原来是用的模拟电路,驱动220V的高压直流电机,但是模拟电路的构成看不懂,方案是直接"借鉴"而来(你懂的哈),所以一旦出现问题,就只能束手就擒了.为了解决技术方面的问题,只能使用自认为可以的数字控制方案,用来进行直流电机的驱动调速以

PWM呼吸灯实验

PWM室Pulse Width Modulation 的缩写,脉冲宽度调制,利用微处理器的数字输出来对模拟电路进行控制 PWM是一种对模拟信号电平进行数字编码的方法.通过高分率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码,PWM信号仍是数字的 在模拟电路中,模拟信号的值可以连续进行变化,在时间和值的幅度上都几乎没有限制,基本上可以取任何实数值,输入与输出也呈线性变化.所以在模拟电路中,电压和电流可直接用来进行控制对象,例如家用电器设备中的音量开关控制.采用卤素灯泡灯具的亮

月考核答辩作品——基于STC89C52的智能浇花系统

1.作品功能 考虑到养一盆花需要花费一些精力,所以设计此次作品.其主要功能有通过检验土壤湿度值来实现自动浇花,当然在有水源的情况下.自动浇花的过程会伴随美妙的音乐(鬼畜的音乐也行,只要你想得到的,没有软件实现不了的,嘿嘿)响起,音乐结束,浇花过程停止,其上还可以通过按键选择显示屏显示时间,温度,同时也可通过按键操作来进行调整时间. 2.器件选择及实施方案 下面给出一张结构图 (1).通过ds1302时钟芯片使万年历得以实现 (2).通过DS18b20温度传感器检测外界温度 (3).通过L298N

[转]手把手硬件电路详细设计过程

献给那些刚开始或即将开始设计硬件电路的人. 时光飞逝,离俺最初画第一块电路已有3年.刚刚开始接触电路板的时候,与你一样,俺充满了疑惑同时又带着些兴奋.在网上许多关于硬件电路的经验.知识让人目不暇接.像信号完整性,EMI,PS设计准会把你搞晕.别急,一切要慢慢来. 1)总体思路.设计硬件电路,大的框架和架构要搞清楚,但要做到这一点还真不容易.有些大框架也许自己的老板.老师已经想好,自己只是把思路具体实现:但也有些要自己设计框架的,那就要搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电

远程视频监控之驱动篇(PWM)

转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/38515237 一.代码 #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/delay.h> #include <linux/poll.h>