可以帮我看看这个程序哪里错了吗

来源:百度知道 编辑:UC知道 时间:2024/05/06 23:39:30
wp=0.2*pi;ws=0.3*pi;
tr_width=ws-wp;
M=ceil(6.6*pi/tr_width)+1
M=67
n=[0:1:M-1];
wc=(ws+wp)/2;
hd=ideal_lp(wc,M);
w_ham=(hamming(M))';
h=hd.*w_ham;
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:1:wp/delta_w+1)));
Rp=0.0394
As=-round(max(db(ws/delta_w+1:1:501)))
As=52
subplot(1,1,1)
subplot(2,2,1);stem(n,hd);title('Ideal Impulse Response')
axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('hd(n)')
subplot(2,2,2);stem(n,w_ham);title('Hamming Window')
axis([0 M-1 0 1.1]);xlabel('n');ylabel('w(n)')
subplot(2,2,3);stem(n,h);title('Actual Impulse Response')
axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('h(n)')
subplot(2,2,4); plot(w/pi,db); title('Magnitude Response in dB');grid
axis([0 1 -100 10]);xlabel('frequency in pi units');ylabel('Decibels

看到4个问题
【1】M=ceil(6.6*pi/tr_width)+1 的结果就是M=67
它下面的M=67多余,可以删除
【2】ideal_lp是一个自定义函数,查看一下它在不在同一个目录。
【3】freqz_m好像也是一个自定义函数。
【4】As=52 也是多余语句。可以不要

好久不接触MATLAB了,都忘光了
如过是语法错误,MATLAB是有提示的
但提示是英文的---你可以下个翻译软件
边做边翻译,再对照着改改就是了(我那时候就是这么学的)
如果语法没有毛病,你得不到你期望的结果,那我建议你把你设计的算法再看看
哎,估计能帮你的人很少啊!
不信的话,你在百度知道里搜搜看,关于MATLAB程序设计应用的回答率一直都是很低的

呵呵,如果没有答案,请就采纳我的吧~~

。。。。。。