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; endend figuresubplot(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])
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; endend figuresubplot(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])