基于窗函数法FIR数字滤波器的设计(毕业设计)(5)

2019-04-02 10:25

2010届电子信息工程专业毕业设计(论文)

M?[Hg(?)?k?0]Ckcos(?)-cos(?k)?kM?cos(?)-cos(?k?0?k (式4.4.3)

k)把Hg(?)代入E(e)?W(e)|Hg(e)?Hd(e)|式,可求得误差函数E(?)。

如果在子集F上,对所有的频率?,都有|E(?)|?|?|,这说明,E(?)是纹波的极值,初始猜测的?0,?1,?,?M?1恰是交错点组。这时,设计工作即可以结束。当然,对第一次猜测的位置,不会恰好如此。一般,在某些频率处,总有E(?)??,这说明,需要交换上次猜测的交错点组中的某些点,得到一组新的交错点组。

第二步:对上次确定的交错点组?0,?1,?,?M?1中的每一个点,都在其附近检查时候在某一个频率处有E(?)??,如若有,再在该点附近找出局部极值点,用这一局部极值点代替原来的点。待这M+2个点都检查过后,便得到一组新的交错点组?0,?1,?,?M?1,再利用上式是求出?,Hg(?),E(?),这样就完成一次迭代,也就是完成了一次交错点组的交换。通过交换算法,使得这一次的交错点组中的每一个?i都是由上一次的交错点组所产生的E(?),局部极值频率点,因此,用这次的交错点组求出的?将增大。

第三步:利用和第二步相同的方法,把在各频率处使E(?)??的点作为新的局部极值点,从而又得到一组新的交错点组。重复上述步骤,因为新的交错点组的选择都是作为每一次求出的

E(?)的局部极值点,因此,在迭代中,每次的|?|都是递增的。?最后收敛到自己的上限。也

j?j?j?j?即Hg(?)最佳的一致逼近Hd(?)的解。因此,若再迭代一次,新的误差曲线E(?)的峰值将不会大于|?|,这时迭代可以结束。由最后的交错点组可按

M?[ Hg(?)?k?0]Ckcos(?)-cos(?k)?kM?cos(?)-cos(?k?0?k (式4.4.4)

k)得到Hg(?),将Hg(?)再附上

MHg(ej?)??a(n)cos(n?) (式4.4.5)

n?0线性相位后作逆变换,便可以得到单位抽样响应h(n)。最后求出的?是阻带的峰值偏差?2,而k?2便是通带的峰值偏差。交错点数?0,?1,?,?M?1是限制在通带和阻带内的交错点组插值产生的。对通带和阻带内的逼近误差E(?)不需要事先指定,而是用切比雪夫最佳一致逼近理论保证了逼近的最大偏差为最小。

通过上述的方法和步骤,最后我们得到了FIR数字滤波器的优化设计的计算机实现结果,如下:

remez(remezord): fedge=[800 1000];

mval=[1 0];dev=[0.0559 0.01]; fs=4000;

18

2010届电子信息工程专业毕业设计(论文)

[N,fpts,mag,wt]=remezord(fedge,mval,dev,fs); b=remez(N,fpts,mag,wt); [h,w]=freqz(b,1,256);

plot(w*2000/pi,20*log10(abs(h))); grid;

xlabel('频率/Hz') ylabel('幅度/dB')

图4-5 瑞米兹设计实现的FIR滤波器

预先知道极值点的最大数目很重要,因为有些设计方法只能设计极点数目有最大可能值的最多波纹滤波器。瑞米兹算法则可以设计任何最优线性相位FIR滤波器。它是一种最为实用的最优化算法。

5 MATLAB简介与数字滤波器的MATLAB实现

5.1 MATLAB简介

MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(短阵实验室)的缩写。它的第1版(DoS版本1.0)发行于1984年,经过十几年不断改进,现今已推出它的WINDWS XP版本(2009b版)。新的版本集中了日常数学处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。在工程技术界,MATLAB被用来解决一些实际课题和数学模型问题。典

19

2010届电子信息工程专业毕业设计(论文)

型的应用包括数值计算、算法预设计与验证,以及一些特殊的短阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。进入了20世纪90年代,MATLAB已经成为国际控制界公认的标准计算软件。MATLAB因其提供计算、图形、文字处理的统一环境而深受欢迎。

MTALAB系统由五个主要部分组成,下面分别加以介绍。

(1)MATALB语言是高层次的矩阵/数组语言。具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。

(2)MATLAB工作环境这是对MATLAB提供给用户使用的管理功能的总称。包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。

(3)MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。

(4)MATLAB数学函数库这是对MATLAB使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。

(5)MATLAB应用程序接口(API) 这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或Fortran程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能。 可以看出MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。

除此之外,MATLAB还具有根强的功能扩展能力,与它的主系统一起,可以配备各种各样的工具箱,以完成一些特定的任务。用户可以根据自己的工作任务,开发自己的工具箱。 5.2 MATLAB程序

我们设计的低通FIR数字滤波器的理想性能指标是:通带截止频率Wp=0.3π,阻带截止频率Ws=0.5π, 阻带衰减At不小于40dB, 通带衰减不大于3dB, fs=4000。 boxcar:

wp=0.3*pi; ws=0.5*pi; wdelta=ws-wp; N=ceil(8*pi/wdelta); Wn=(0.3+0.5)*pi/2;

b=firl(N,Wn/pi,hanning(N)); freqz(b,1,512)

20

2010届电子信息工程专业毕业设计(论文)

图5-1 矩形窗的幅频特性曲线

这种窗的主瓣比较集中,应用很普遍,但是旁瓣比较高,并且有负旁瓣。截取长度N增加,会减少过渡带宽4π/N,不会改变肩峰的相对值。 hanning:

wp=0.3*pi; ws=0.5*pi; wdelta=ws-wp; N=ceil(8*pi/wdelta); Wn=(0.3+0.5)*pi/2;

b=firl(N,Wn/pi,hanning(N+1)); freqz(b,1,512)

21

2010届电子信息工程专业毕业设计(论文)

图5-2 汉宁窗的幅频特性曲线

此窗旁瓣互相抵消,能量更集中在了主瓣。但是,它的代价是主瓣宽度比矩形窗的主瓣宽度增加了一倍。 kaiser:

wn=kaiser(28,3.44); nn=[0:1:27]; alfa=(28-1)/2 ;

hd=sin(0.4*pi*(nn-alfa)./(pi*(nn-alfa)); h=hd.*wn';

[h1,w1]=freqz(h,1);

plot(w1/pi,20*log10(abs(h1))); axis([0,1,-80,101]); grid;

xlabel('归一化频率/π') ylabel('幅度/dB')

22


基于窗函数法FIR数字滤波器的设计(毕业设计)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:营销序列(全部模块)初中级专业资格考试练习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: