院党委书记 发表于 2009-8-18 18:17

求助

t=linspace(-2*pi,2*pi,512);w1=100;w2=3000;RC=;
x=cos(100*t)+cos(3000*t);

for k=1:length(RC);
   H1(k)=1/(RC(k)*j*w1+1); H2(k)=1/(RC(k)*j*w2+1);
   y(k)=abs(H1(k)).*cos(w1*t+angle(H1(k)))+abs(H2(k)).*cos(w2*t+angle(H2(k)));
   figure(k);
   subplot(2,1,1); plot(t,y(k),'r'); xlabel('\omega'); ylabel('|H(j\omega)|');
   title(['\bf当RC取=',num2str(RC(k))],'fontsize',15);
   subplot(2,1,2); plot(t,x ,'g'); xlabel('\omega'); ylabel('x(t)');
end
这是一个简单的滤波器 x为原波形y为经滤波器后的波    题目让找合适的RC值 使x中的高频虑掉   我找了RC从0.01开始到1之间的数
编出后程序没有提示error我估计是逻辑错误 可找了半天找不出来:'(
???In an assignmentA(I) = B, the number of elements in B and
I must be the same.

[ 本帖最后由 ChaChing 于 2009-8-18 21:51 编辑 ]

VibrationMaster 发表于 2009-8-18 18:26

注意matlab对向量有行列区别。标准程序一般用列,而RC=是行阵

ChaChing 发表于 2009-8-18 21:56

没有提示error? 那
???In an assignmentA(I) = B, the number of elements in B and
I must be the same.
是什麽!?

abs(H1(k)).*cos(w1*t+angle(H1(k)))+abs(H2(k)).*cos(w2*t+angle(H2(k)))是1*512矩阵, 怎能使用y(k)?

常见的程序出错问题整理 (eight) - 13F
http://forum.vibunion.com/forum/thread-46001-1-1.html

[ 本帖最后由 ChaChing 于 2009-8-18 22:12 编辑 ]
页: [1]
查看完整版本: 求助