wokman1890 发表于 2006-5-27 16:18

菜鸟请教个菜鸟级的问题

小弟是这方面的菜鸟。我从某处粘贴了一个正确的程序到Matlab里运行,结果运行不出来,它提示说   Error: Missing variable or function.<BR>这是哪里有错误呢?应该怎么改原来的程序才能正确运行呢?<BR>谢谢!!!

NVHht 发表于 2006-5-27 16:27

<P>能不能把程序贴出来看看。</P>

wokman1890 发表于 2006-5-27 16:40

<P>可以哈 来了<BR>FREQZ_M.M<BR>function=freqz_m(b,a)<BR>%db为相对振幅(dB);mag为绝对振幅;pha为相位响应;grd为群延时;w为频率样本点向量。<BR>=freqz(b,a,1024, 'whole');<BR>%b和a分别为H(z)分子和分母多项式系数(对FIR而言,b=a,a=1).<BR>H=(H(1:501)),;<BR>W=(w(1:501));<BR>mag=abs(H);<BR>db=20*logl0((mag+eps)/max(mag));<BR>pha=angle(H);<BR>grd=grpdelay(b,a,w);<BR>IDEAL_LP.M<BR>function hd=ideal_lp(wc,M)<BR>%理想低通滤波器;hd为0到M一1之间的理想脉冲响应;wc为截止频率;M为理想滤波器的长度<BR>alpha=(M-1)/2;<BR>n=0:M-1;<BR>m =n-alpha+eps;<BR>hd=sin(we*m)./(pi*m);</P>
<P>ACTUAL_LP.m<BR>wp=0.10 *pi;<BR>ws=0.20 *pi;<BR>tr_ width=ws-wp;<BR>M=ceil(6.6 *pi/tr_width)+1;<BR>disp(['滤波器的长度为',hum2str(M)]);<BR>n=0:M -1;<BR>wc=(ws+wp)/2;<BR>hd=IDEAL_LP(wc,M);<BR>W_han=(harming(M));<BR>h=hd.* w_han;<BR>=FREQZ_M(h,);<BR>delta_w =2 *pi/lO00;<BR>Rp=-(min(db(1:1:wp/delta_w+1)));<BR>disp(['实际通带波动为',num2str(Rp)]);<BR>As= -round(max(db(ws/delta_w+1:1:501)));<BR>disp(['最小阻带衰减为', num2str(As)]);<BR>subplot(221)<BR>stem(n,hd);<BR>tide('理想冲激响应');<BR>axis();<BR>ylabel(hd(n)');<BR>subplot(222)<BR>stem(n,w_han);<BR>title('汉宁窗');<BR>axis();<BR>ylabel( 'w(n)'),<BR>subplot(223)<BR>stem(n,h);<BR>title('实际冲激响应');<BR>axis();<BR>xlabel('n');<BR>ylabel('h(n)');<BR>subplot(224)<BR>plot(w/pi,db);<BR>title('幅度响应(dB)');<BR>axis(),<BR>grid;<BR>xlabel('似pi为单位的频率');<BR>ylabel('分贝数');<BR>这是个低通滤波器的例子 我粘贴进去就运行不起</P>

lxq 发表于 2006-5-27 18:25

是不是你存储的名字没有用英文呢?<BR><BR>

wokman1890 发表于 2006-5-27 18:54

<P>是要把存储程序的文件名改成FREQZ_M.M吗?</P>

ericlin 发表于 2006-5-28 12:27

要新建一个M文件

你这个东西是程序,不是直接贴到MATLAB的运行窗口的,要新建一个M文件,以freqz_m程序名保存后再在命令窗口中运行。
[此贴子已经被作者于2006-5-28 12:30:06编辑过]

lixiang02 发表于 2006-5-28 16:17

<P>你的m文件的文件名里面没有汉字吧?或者是不是用数字开头了?</P>

wokman1890 发表于 2006-5-29 13:19

<P>谢谢了哈 那个问题解决了 不过它又提示<BR>=freqz(b,a,1024, 'whole');有错<BR>怎么改呢?<BR></P>

NASA 发表于 2006-5-29 14:50

回复:(wokman1890)谢谢了哈 那个问题解决了 不过它...

<DIV class=quote><B>以下是引用<I>wokman1890</I>在2006-5-29 13:19:56的发言:</B><BR>
<P>谢谢了哈 那个问题解决了 不过它又提示<BR>=freqz(b,a,1024, 'whole');有错<BR>怎么改呢?<BR></P></DIV>
<br>freqz的调用格式如下,你的调用格式不对阿<BR> = freqz(Hq,n)<BR>h = freqz(Hq,w)<BR> = freqz(Hq,n,'whole')<BR> = freqz(Hq,...)<BR> = freqz(Hq,n,fs)<BR>h = freqz(Hq,f,fs)<BR> = freqz(Hq,n,'whole',fs)<BR> = freqz(Hq,...)<BR> = freqz(Hq,...,fs)<BR>freqz(Hq,...)
页: [1]
查看完整版本: 菜鸟请教个菜鸟级的问题