声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1267|回复: 8

菜鸟请教个菜鸟级的问题

[复制链接]
发表于 2006-5-27 16:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

发表于 2006-5-27 16:27 | 显示全部楼层
<P>能不能把程序贴出来看看。</P>
 楼主| 发表于 2006-5-27 16:40 | 显示全部楼层
<P>可以哈 来了<BR>FREQZ_M.M<BR>function[db,mag,pha,grd,W]=freqz_m(b,a)<BR>%db为相对振幅(dB);mag为绝对振幅;pha为相位响应;grd为群延时;w为频率样本点向量。<BR>[H,W]=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>[db,mag,pha,grd,w]=FREQZ_M(h,[1]);<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([0 M-1 -0.1 0.3]);<BR>ylabel(hd(n)');<BR>subplot(222)<BR>stem(n,w_han);<BR>title('汉宁窗');<BR>axis([0 M-1 0 1.1]);<BR>ylabel( 'w(n)'),<BR>subplot(223)<BR>stem(n,h);<BR>title('实际冲激响应');<BR>axis([0 M-1 -0.1 0.3]);<BR>xlabel('n');<BR>ylabel('h(n)');<BR>subplot(224)<BR>plot(w/pi,db);<BR>title('幅度响应(dB)');<BR>axis([0 1 -100 10]),<BR>grid;<BR>xlabel('似pi为单位的频率');<BR>ylabel('分贝数');<BR>这是个低通滤波器的例子 我粘贴进去就运行不起</P>
发表于 2006-5-27 18:25 | 显示全部楼层
是不是你存储的名字没有用英文呢?<BR><BR>
 楼主| 发表于 2006-5-27 18:54 | 显示全部楼层
<P>是要把存储程序的文件名改成FREQZ_M.M吗?</P>
发表于 2006-5-28 12:27 | 显示全部楼层

要新建一个M文件

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

发表于 2006-5-28 16:17 | 显示全部楼层
<P>你的m文件的文件名里面没有汉字吧?或者是不是用数字开头了?</P>
 楼主| 发表于 2006-5-29 13:19 | 显示全部楼层
<P>谢谢了哈 那个问题解决了 不过它又提示<BR>[H,W]=freqz(b,a,1024, 'whole');有错<BR>怎么改呢?<BR></P>
发表于 2006-5-29 14:50 | 显示全部楼层

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

<DIV class=quote><B>以下是引用<I>wokman1890</I>在2006-5-29 13:19:56的发言:</B><BR>
<P>谢谢了哈 那个问题解决了 不过它又提示<BR>[H,W]=freqz(b,a,1024, 'whole');有错<BR>怎么改呢?<BR></P></DIV>
<br>freqz的调用格式如下,你的调用格式不对阿<BR>[h,w] = freqz(Hq,n)<BR>h = freqz(Hq,w)<BR>[h,w] = freqz(Hq,n,'whole')<BR>[h,w,units,href] = freqz(Hq,...)<BR>[h,f] = freqz(Hq,n,fs)<BR>h = freqz(Hq,f,fs)<BR>[h,f] = freqz(Hq,n,'whole',fs)<BR>[h,f,s] = freqz(Hq,...)<BR>[h,f,units,href] = freqz(Hq,...,fs)<BR>freqz(Hq,...)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-20 09:44 , Processed in 0.071911 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表