人。对于我的大学项目,我需要用两个正弦波的总和绘制一个半波整流器。因此,我选择使用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中的元素数必须相同”。我该如何解决这个问题?
答案 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)
如果要使用循环,必须执行以下操作:
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