作业帮 > 综合 > 作业

MATLAB程序总是出现?Error using ==> stem at 44 X must be same lengt

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/29 14:21:37
MATLAB程序总是出现?Error using ==> stem at 44 X must be same length as Y.
%hammingchuang.m
M=11;
n=[0:1:M-1];
wc=0.3*pi;
hd=ideal_lp(wc,M);
w_rec=(boxcar(M))';
w_ham=(hamming(M))';
h_rec=hd.*w_rec;
h_ham=hd.*w_ham;
[db1,mag1,pha1,grd1,w1]=freqz_m(h_rec,[1]);
[db2,mag2,pha2,grd2,w2]=freqz_m(h_ham,[1]);
figure(1)
subplot(2,2,1);stem(n,hd,'k');grid
title('加窗前脉冲响应')
axis([0 M-1 -0.2 0.5]);ylabel('hd(n)')
subplot(2,2,2);stem(n,h,'k');grid
title('加窗后脉冲响应')
axis([0 M-1 -0.2 0.5]);ylabel('h(n)')
subplot(2,2,3);plot(w1/pi,db1,'k');grid
title('加汉明窗前幅频特性(dB)')
axis([0 1 -100 10]);ylabel('Decibels')
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1])
set(gca,'YTickMode','manual','YTick',[-50,0])
subplot(2,2,4);plot(w2/pi,db2,'k');grid
title('加汉明窗后幅频特性(dB)')
axis([0 1 -100 10]);ylabel('Decibels');
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1])
set(gca,'YTickMode','manual','YTick',[-50,0])
运行后出现:
Error using ==> stem at 44
X must be same length as Y.
X跟Y两个矩阵的长度不一样啊 没有一一对应的点 matlab是不能给你作图的 而且你这程序需要很多自定义的函数 单贴这个出来也给你运行不了
再问: 自定义的函数已经定义好了,就是搞不懂这个错误。
再答: 那你只能检查一下你的所有用到stem的函数的地方,看类似于stem(x,y)的这种格式下,x跟y是不是同维的矩阵、向量,如果不是,那是没法作图的