我大概講一下實現的原理:正弦波移相φ,當使得大於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])