2017-09-17 153 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