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])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM