1、MATLAB基于窗函数设计的带通滤波器课程设计任务书之阿布丰王创作时间:二O二一年七月二十九日学生姓名: 专业班级: 通信0705 指导教师: 工作单元: 信息工程学院 题 目:基于窗函数法设计的数字带通FIR滤波器初始条件:1MATLAB软件 数字信号处置与图像处置基础知识要求完成的主要任务:利用MATLAB仿真软件系统结合窗函数法设计的数字带通FIR滤波器在数字信号处置平台上(PC机MATLAB仿真软件系统和TC+编程环境)进行软件仿真设计,并进行调试和数据分析.时间安插:第18周理论设计、实验室装置调试,地址: 鉴主15楼通信实验室一指导教师签名: 2010 年 1月 8日系主任(或责任
2、教师)签名: 年 月 日摘要IAbstractII1 窗函数设计法原理12 罕见窗函数简介22.1 基本窗函数2下面就几种经常使用的窗函数展开介绍.32.1.1 矩形窗函数32.1.2 三角窗函数32.2 广义余弦窗42.2.1 汉宁窗函数52.2.2 海明窗函数53 方案设计与论证73.1 fdatool设计法73.2 法式设计法84 窗函数仿真结果分析104.1 矩形窗函数仿真结果104.2三角形窗函数仿真结果114.3 汉宁窗函数仿真结果124.4海明窗函数仿真结果135 总结与体会146参考文献16摘要现代图像、语音、数据通信对线性相位的要求是普遍的.正是此原因,使得具有线性相位的FI
3、R数字滤波器获得年夜力发展和广泛应用.在实际进行数字信号处置时,往往需要把信号的观察时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析.这样,取用有限个数据,即将信号数据截断的过程,就即是将信号进行加窗函数把持.而这样把持以后,经常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”.当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必需进行抑制.而要对频谱泄漏进行抑制,可以通过窗函数加权抑制DFT的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在鸿沟上尽量减少不连续水平的方法实现.而在后面的FIR滤波器的设计
4、中,为获得有限长单元取样响应,需要用窗函数截断无限长单元取样响应序列.另外,在功率谱估计中也要遇到窗函数加权问题.由此可见,窗函数加权技术在数字信号处置中的重要位置.AbstractA modern image, Voice and data communications to the linear phase requirement is universal. It is for this reason, making a linear phase FIR digital filters are to develop and widely used.In practice, digital
5、signal processing, they often need to observe the time limit for the signal in a certain time interval, only need to select a period of time to analyze the signals. In this way, access to a finite number of data about the process of signal data truncation is equivalent to the signal, the additional
6、window function operation. And this after the operation, often occur from the normal component of the spectrum spread spectrum open to the phenomenon of so-called spectral leakage. When it comes to discrete Fourier transform, the time domain truncation is necessary, therefore, leakage effects are al
7、so inherent in discrete Fourier transform, and must be inhibited. But would like to suppress the spectral leakage can be inhibited by the weighted window function equivalent DFT filter amplitude characteristics of side-lobe, or the weighted window function so that the limited length of the extension
8、 of the input signal cycle, after the border to minimize the degree of discontinuity The method of implementation. In the back of the FIR filter design, in order to obtain finite sampling units to respond to the need to truncate the infinite length window function with unit sampling response sequenc
9、e. In addition, power spectrum estimation problem also encountered in the weighted window function. Thus, the weighted window function in digital signal processing in an important position.1 窗函数设计法原理数字滤波器可以理解为是一个计算法式或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变动.数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可
10、将数字滤波器分为两种,即无限长冲激响应(iir)滤波器和有限长冲激响应(fir)滤波器.fir数字滤波器的单元脉冲响应是有限长序列.它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳迫近法等.用窗函数设计滤波器首先要对滤波器提出性能指标.一般是给定一个理想的频率响应,使所设计的FIR滤波器的频率响应去迫近所要求的理想的滤波器的响应.窗函数法设计的任务在于寻找一个可实现(有限长单元脉冲响应)的传递函数.用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列.主要设计步伐为: (1)通过傅里叶逆变换获得理想滤波器的单元脉冲响应h
11、d(n).从时域动身,截取有限长的一段冲击响应作为H(z)的系数,冲击响应长度N就是系统函数H(z)的阶数.只要N足够长,截取的方法合理,总能满足频域的要求.一般这种时域设计、频域检验的方法要反复几个回合才华胜利.要设计一个线性相位的FIR数字滤波器,首先要求理想频率响应.是w的周期函数,周期为,可以展开成傅氏级数:(公式1-1)其中是与理想频响对应的理想单元抽样响应序列.但不能用来作为设计FIR DF用的h(n),因为一般都是无限长、非因果的,物理上无法实现.为了设计出频响类似于理想频响的滤波器,可以考虑用h(n)来近似. 窗函数的基本思想:先选取一个理想滤波器(它的单元抽样响应是非因果、无
12、限长的),再截取(或加窗)它的单元抽样响应获得线性相位因果FIR滤波器.这种方法的重点是选择一个合适的窗函数和理想滤波器. (2)由性能指标确定窗函数W(n)和窗口长度N. 设x(n)是一个长序列,w(n)是长度为N的窗函数,用w(n)截断x(n),获得N点序列xn(n),即xn(n) = x(n) w(n)(公式1-2)在频域上则有 (公式1-3)(3) 求得实际滤波器的单元脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量. (公式1-4)由此可见,窗函数w(n)不单仅会影响原信号x(n)在时域上的波形,而且也会影响到频域内的形状.2 罕见窗函数简介2.1 基本窗函数MATLAB信
13、号工具箱主要提供了以下几种窗函数,如表2-1所示:表2-1 MATLAB窗函数窗 函 数界说式矩形窗(Boxcar)三角窗(Triang)布莱克曼窗(Blackman)0nM-1海明窗(Hamming) 0nM-1汉宁窗(Hanning) 0nM-1巴特利特窗(Bartlett)下面就几种经常使用的窗函数展开介绍.2.1.1 矩形窗函数矩形窗(Rectangular Window)函数的时域形式可以暗示为: (公式2-1)它的频域特性为(公式2-2)Boxcar函数:生成矩形窗调用方式w = boxcar (n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量.从功能上讲,该
14、函数又等价于w = ones(n,1).2.1.2 三角窗函数三角窗是最简单的频谱函数为非负的一种窗函数.三角窗函数的时域形式可以暗示为:当n为奇数时 (公式2-3)当n为偶数时(公式2-4)它的频域特性为:(公式2-5)三角窗函数的主瓣宽度为,比矩形窗函数的主瓣宽度增加了一倍,可是它的旁瓣宽度却小很多.Triang函数:生成三角窗调用方式w = triang(n);输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量.三角窗也是两个矩形窗的卷积.三角窗函数的首尾两个数值通常是不为零的.当n是偶数时,三角窗的傅立叶变换总是非负数.2.2 广义余弦窗汉宁窗、海明窗和布莱克曼窗,都可以
15、用一种通用的形式暗示,这就是广义余弦窗.这些窗都是广义余弦窗的特例,汉宁窗又被称为余弦平方窗或升余弦窗,海明窗又被称为改进的升余弦窗,而布莱克曼窗又被称为二阶升余弦窗.采纳这些窗可以有效地降低旁瓣的高度,可是同时会增加主瓣的宽度.这些窗都是频率为0、2/(N1)和4/(N1)的余弦曲线的合成,其中为窗的长度.通常采纳下面的命令来生成这些窗: (公式2-6)(公式2-7)其中,A、B、C适用于自己界说的常数.根据它们取值的分歧,可以形成份歧的窗函数,分别是:汉宁窗 A=0.5,B=0.5,C=0;海明窗 A=0.54,B=0.54,C=0;布莱克曼窗 A=0.5,B=0.5,C=0.08;2.2
16、.1 汉宁窗函数汉宁窗函数的时域形式可以暗示为: 0nM-1 (公式2-8)它的频域特性为:(公式2-9)其中, 为矩形窗函数的幅度频率特性函数.汉宁窗函数的最年夜旁瓣值比主瓣值低31dB,可是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8/N.hanning函数:生成汉宁窗调用方式(1) w = hanning(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量.注意:此函数不返回是零点的窗函数的首尾两个元素.(2) w = hanning(n,symmetric):与上面相类似.(3) w = hanning(n,periodic):此函数返回包括为零点的窗函数的首尾两
17、个元素.2.2.2 海明窗函数海明窗函数的时域形式可以暗示为 0nM-1 (公式2-10)它的频域特性为(公式2-11)其中, 为矩形窗函数的幅度频率特性函数.海明窗函数的最年夜旁瓣值比主瓣值低41dB,但它和汉宁窗函数的主瓣宽度是一样年夜的.Hamming函数:生成海明窗调用方式(1)w = hamming(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量.(2) w = hamming(n,sflag):参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;默认值为symmetric.加矩形窗后的频谱和理想频谱可获得以下结论:加窗
18、使过渡带变宽,过渡带的带宽取决于窗谱的主瓣宽度.矩形窗情况下的过渡带宽是.N越年夜,过渡带越窄、越陡;过渡带两旁发生肩峰,肩峰的两侧形成起伏振荡.肩峰幅度取决于窗谱主瓣和旁瓣面积之比.矩形窗情况下是8.95,与N无关.工程上习惯用相对衰耗来描述滤波器,相对衰耗界说为(公式2-12)这样两个肩峰点的相对衰耗分别是0.74dB和-21dB.其中(-0.0895)对应的点的值界说为阻带最小衰耗. 以上的分析可见,滤波器的各种重要指标都是由窗函数决定,因此改进滤波器的关键在于改进窗函数.窗函数谱的两个最重要的指标是:主瓣宽度和旁瓣峰值衰耗.旁瓣峰值衰耗界说为: 旁瓣峰值衰耗20lg(第一旁瓣峰值主瓣峰
19、值) (公式2-13)为了改善滤波器的性能,需使窗函数谱满足:1. 较低的旁瓣幅度,尤其是第一旁瓣;2. 旁瓣幅度要下降得快,以利于增加阻带衰减;3. 主瓣宽度要窄,这样滤波器过渡带较窄. 但这三点难以同时满足,被选用主瓣宽度较窄时,虽然获得的幅频特性较峻峭,但通带、阻带摆荡会明显增加;被选用较低的旁瓣幅度时,虽然获得的幅频特性较平缓匀滑,但过渡带变宽.因此,实际的选择往往是取折衷.3 方案设计与论证用窗函数法设计一个FIR带通滤波器.指标如下:低端阻带截止频率 wls = 0.2*pi; 低端通带截止频率 wlp = 0.35*pi; 高端通带截止频率 whp = 0.65*pi;高端阻带截
20、止频率 whs = 0.8*pi3.1 fdatool设计法fdatool(filter design & analysis tool)是matlab信号处置工具箱里专用的滤波器设计分析工具,matlab6.0以上的版本还专门增加了滤波器设计工具箱(filter design toolbox).fdatool可以设计几乎所有的基本的惯例滤波器,包括fir和iir的各种设计方法.它把持简单,方便灵活.图3-1 fdatool设计界面fdatool界面总共分两年夜部份,一部份是design filter,在界面的下半部,用来设置滤波器的设计参数,另一部份则是特性区,在界面的上半部份,用来显示滤波器
21、的各种特性.design filter部份主要分为:filter type(滤波器类型)选项,包括lowpass(低通)、highpass(高通)、bandpass(带通)、bandstop(带阻)和特殊的fir滤波器.design method(设计方法)选项,包括iir滤波器的butterworth(巴特沃思)法、elliptic(椭圆滤波器)法和fir滤波器的equiripple法、least-squares(最小乘方)法、window(窗函数)法.filter order(滤波器阶数)选项,界说滤波器的阶数,包括specify order(指定阶数)和minimum order(最小阶
22、数).在specify order中填入所要设计的滤波器的阶数(n阶滤波器,specify ordern-1),如果选择minimum order则matlab根据所选择的滤波器类型自动使用最小阶数.frenquency specifications选项,可以详细界说频带的各参数,包括采样频率fs和频带的截止频率.它的具体选项由filter type选项和design method选项决定,例如bandpass(带通)滤波器需要界说fstop1(下阻带截止频率)、fpass1(通带下限截止频率)、fpass2 (通带上限截止频率)、fstop2(上阻带截止频率),而lowpass(低通)滤波器
23、只需要界说fstop1、fpass1.采纳窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要界说通带截止频率,而不愿界说阻带参数.window specifications选项,被选取采纳窗函数设计时,该选项可界说,它包括了各种窗函数.3.2 法式设计法法式法只以Boxcar窗为示例,其他窗函数的法式年夜体相同,只是在window=Boxcar(N)和hn = fir1(N-1,wc,Boxca(N)处要调自己的窗函数即可.Boxcar窗设计法式示例:wls = 0.2*pi; %低端阻带截止频率wlp = 0.35*pi; %低端通带截止频率whp = 0.65*pi;
24、 %高端阻带截止频率wc = wlp/pi,whp/pi; %通带宽度,求hn时会用B = wlp-wls; %过渡带N = ceil(4/0.15); %求N的值,分歧的窗函数前面的值纷歧样n=0:N-1; %N阶向量%以下2段是看窗函数以及其频谱的,是窗函数方面的基本情况window=boxcar(N); %调用窗函数h1,w=freqz(window,1); %求频率响应figure; %新建一个图形框stem(window); %离散画图,看窗函数xlabel(n); %X轴标签title(矩形窗函数); %题目figure; %新建一个图形框plot(w/pi,20*log(abs(
25、h1)/abs(h1(1); %画频谱图,进行归一化grid; %显示表格线xlabel(w/pi); %X轴标签,归一化ylabel(幅度(dB); %Y轴标签title(矩形窗函数的频谱); %题目%以下2段是关于带通方面的hn = fir1(N-1,wc,boxcar(N); %fir1标准频率响应形状,包括低通、带通、高通或带阻特性h2,w=freqz(hn,1,512); %求离散的频响figure %新建一个图形框stem(n,hn); %离散画图,带通滤波器的单元脉冲响应xlabel(n); %X轴标签ylabel(h(n); %Y轴标签title(矩形窗函数带通滤波器的单元脉冲
26、响应); %题目figure; %新建一个图形框plot(w/pi,20*log(abs(h2)/abs(h2(1); %画带通频谱图,进行归一化grid; %显示表格线xlabel(w/pi); %X轴标签ylabel(幅度(dB); %Y轴标签title(矩形窗函数带通滤波器的幅度特性); %题目根据调试结果,2种设计法所出的结果没有什么年夜的区别,本次课程设计2种方法都使用,后面所附图片均来自这2种方法所处的仿真结果.4 窗函数仿真结果分析4.1 矩形窗函数仿真结果图 4-1 矩形窗函数波形图图4-2 矩形窗函数的频谱图图4-3 用矩形窗设计带通滤波器的幅频响应图图4-4 用矩形窗设计带
27、通滤波器的冲击响应图4.2三角形窗函数仿真结果图4-5 三角形窗函数波形图图4-6 三角形窗函数频谱图图4-7 用三角形窗设计带通滤波器的幅频响应图图4-8 用三角形窗设计带通滤波器的冲击响应图4.3 汉宁窗函数仿真结果图4-9汉宁窗函数波形图图4-10 汉宁窗函数频谱图图4-11 用汉宁窗设计带通滤波器的幅频响应图图4-12 用汉宁窗设计带通滤波器的冲击响应图4.4海明窗函数仿真结果图4-13海明窗函数波形图图4-14 海明窗函数频谱图图4-15 用海明窗设计带通滤波器的幅频响应图图4-16 用海明窗设计带通滤波器的冲击响应图5 总结与体会设计带通滤波器时首先要计算出过渡带,然后查表获得分歧
28、窗函数所需要的阶数,分歧的窗函数所设计的滤波器的形状各有不同,尤其在主瓣宽度、旁瓣的形状以及主瓣与旁瓣的高度差上有比力明显得分歧,实际应用中应根据实际情况,折衷处置,兼顾各项指标.为了这次课程设计,自己自学了数字信号处置领域中窗函数的有关知识.实际中遇到的离散时间信号总是有限长的,因此不成防止地要遇到数据截断问题.而在信号处置中,对离散序列的数据截断是通过序列与窗函数相乘来实现的.而且,有关滤波器的设计、功率谱估计等基本概念也要用到窗函数.本次课程设计对经经常使用到的下面6个窗函数:矩形窗函数、三角窗函数、汉宁窗函数、海明窗函函数、布莱克曼窗函数以及凯塞窗函数,先是做了基本概念上的阐释,然后对
29、其MATLAB实现函数做出了说明,最后又结合具体的实例,对这些窗函数的频域特性等进行了介绍.通过这次学习,我不单掌握了FIR数字滤波器窗函数的基本知识及其实际应用的技巧了,还提高了自己的编程和写陈说的能力,收获颇多.6参考文献1陈怀琛MATLAB在电子信息课程中的应用(第二版)电子工业出书社20062 郭仕剑MATLAB7.X数字信号处置人民邮电出书社2006年3 陈贵明用MATLAB语言处置数字信号与数字图像科学出书社2000年4 王家文MATLAB7.0图形图像处置国防工业出书社2006年5 苏金明MATLAB图形图像电子工业出书社2005本科生数字信号处置成果评定表姓名性别专业、班级题目:辩论或质疑记录:成果评定依据:最终评定成果(以优、良、中、及格、不及格评定) 指导教师签字: 年月日时间:二O二一年七月二十九日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1