首页 > 代码库 > matlab实现可调节占空比的方波

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:

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