2017-09-17 152 views
1

人。對於我的大學項目,我需要用兩個正弦波的總和繪製一個半波整流器。因此,我已經選擇MATLAB作爲工具來使用,但我有這個問題(該代碼後):Matlab繪製的半波整流器

l=[0:10^-6:1/1500]; 
sig=8*sin(2*pi*100000*l)+6*sin(2*pi*10000*l); 
subplot(211) 
plot(sig); 

for t=1:667 
if (8.*sin(2.*pi.*100000.*l)+6.*sin(2.*pi.*10000.*l))<=0 
sig(t)=0; 
else 
sig(t) = 2.*sin((2.*pi.*100000*l + 2.*pi.*10000*l)/2).*cos(2.*pi.*100000*l - 2.*pi.*10000*l); 
end 
end 

問題命令屏幕上顯示的是:「在一個分配A(:) = B ,A和B中的元素數量必須相同「。我該如何解決這個問題?

回答

1

爲了獲得整流信號有幾種形式,但最簡單和最簡潔的方法是使用矩陣,在這種情況下,它是:

l=[0:10^-6:1/1500]; 
sig = 8*sin(2*pi*100000*l)+6*sin(2*pi*10000*l); 
sig_rect = sig.*(sig >= 0); 
subplot(211) 
plot(sig) 
subplot(212) 
plot(sig_rect) 

enter image description here

如果你想要使用循環,您必須執行以下操作:

sig_rect = zeros(length(sig)); 

for t=1:sig 
    if sig(t) <=0 
     sig_rect(t) = 0; 
    else 
     sig_rect(t) = sig(t); 
    end 
end