Matlab绘制半波整流器

时间:2017-09-17 02:24:28

标签: matlab plot

人。对于我的大学项目,我需要用两个正弦波的总和绘制一个半波整流器。因此,我选择使用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 个答案:

答案 0 :(得分: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