窗函数法设计数字滤波器
(整理)FIR数字滤波器的(海明)窗函数法设计.
![(整理)FIR数字滤波器的(海明)窗函数法设计.](https://img.taocdn.com/s3/m/a80d0245192e45361066f597.png)
FIR数字滤波器的(海明)窗函数法设计1.课程设计目的(1)熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数。
(2)加深对FIR数字滤波器设计的理解,并用窗函数法进行FIR数字滤波器的设计。
(3)将设计出来的FIR数字滤波器利用MATLAB进行仿真。
(4)对一段音频文件进行加入噪声处理,对带有噪声的文件进行滤波处理。
2.设计方案论证2.1 Matlab语言概述MATLAB是一种以矩阵运算为基础的交互式程序语言,专门针对科学、工程计算及绘图的需求。
随着版本的不断升级,内容不断扩充,功能更加强大,从而被广泛应用于仿真技术、自动控制和数字信号处理领域。
此高级语言可用于技术计算此开发环境可对代码、文件和数据进行管理交互式工具可以按迭代的方式探查、设计及求解问题数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数积分等二维和三维图形函数可用于可视化数据各种工具可用于构建自定义的图形用户界面各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM 以及Microsoft Excel)集成不支持大写输入,内核仅仅支持小写2.2声音处理语音是人类获取信息的重要来源和利用信息的重要手段。
语音信号处理是一门发展十分迅速,应用非常广泛的前沿交叉学科,同时又是一门跨学科的综合性应用研究领域和新兴技术。
声音是一种模拟信号,而计算机只能处理数字信息0和1。
因此,首先要把模拟的声音信号变成计算机能够识别和处理的数字信号,这个过程称为数字化,也叫“模数转换”。
在计算机对数字化后的声音信号处理完后,得到的依然是数字信号。
必须把数字声音信号转变成模拟声音信号,然后再图1 选择windows下的录音机”或是点击快捷按钮图5 加噪后语音信号和频谱图7 滤波器幅频特性与相频特性设计的滤波器是用单位采样响应h(n)表示的,可以利用带噪声语音图8滤波器系统函数。
实验7 窗函数法设计FIR数字滤波器
![实验7 窗函数法设计FIR数字滤波器](https://img.taocdn.com/s3/m/a6ffea41f68a6529647d27284b73f242336c311e.png)
实验7窗函数法设计FIR数字滤波器一、实验目的掌握窗函数法设计F1R数字滤波器的原理和具体方法二、实验设备与环境计算机、Mat1ab软件环境三、实验基础理论1>基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器Hd(,3),然后用窗函数截取它的单位脉冲响应%(九),得到线性相位和因果的FIR滤波器,这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。
2、设计步骤(1)给定理想滤波器的频率响应Hd("3),在通带上具有单位增益和线性相位,在阻带上具有零响应。
一个带宽为g(3c<Tr)的低通滤波器由下式给定h(e j^=(eW∣ω∣≤ωc虱)一1Oωc<∣ω∣<π其中α为采样延迟,其作用是为了得到因果的系统。
(2)确定这个滤波器的单位脉冲响应为了得到一个h(n)长度为N的因果的线性相位FIR滤波器,我们令N-Ia=-2-(3)用窗函数截取hd(τι)得到所设计FIR数字滤波器h(n)h(n)=h d(n)w(n)3、窗函数的选择常用的窗函数有矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗等。
Mat1ab提供了一些函数用于产生窗函数,如下表所示:在设计过程中我们需要根据给定的滤波器技术指标,选择滤波器长度N 和窗函数3(n)°表7.2列出了常用的窗函数的一些特性,可供设计时参考。
其中幻是修正的零阶贝塞尔函数,参数B 控制最小阻带衰减,这种窗函数对于相同的N 可以提供不同的过渡带宽。
由于贝塞尔函数比较更杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。
已知给定的指标叫Msc,Rp 和4,滤波器长度N 和凯瑟窗参数B 可以按如下凯瑟窗设计方程给出过渡带宽:∆ω=ωst -ωp入一7.95 2.285∆ω_(0.1102(4-8.7) ,P=iθ.5842(4-21)04+0.07886(4-21), 四、实验内容1、设计一个数字低通FIR 滤波器,其技术指标如下ωp =0.2τr,RP=0.25dBωst =0.3τr,A s =50dB分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。
用MATLAB结合窗函数法设计数字带通FIR滤波器
![用MATLAB结合窗函数法设计数字带通FIR滤波器](https://img.taocdn.com/s3/m/cd199462b84ae45c3b358c1e.png)
武汉理工大学《Matlab课程设计》报告目录摘要 (I)Abstract (II)1 原理说明 (1)1.1 数字滤波技术 (1)1.2 FIR滤波器 (1)1.3 窗函数 (2)1.4 MATLAB简介 (4)1.5 MATLAB结合窗函数设计法原理 (4)2 滤波器设计 (2)2.1 滤波器设计要求 (2)2.2 设计函数的选取 (2)2.3 窗函数构造 (3)2.4 设计步骤 (4)2.5 利用MATLAB自带函数设计 (4)3 滤波器测试 (9)3.1 滤波器滤波性能测试 (9)3.2 滤波器时延测量................................................................................错误!未定义书签。
3.3 滤波器稳定性测量............................................................................错误!未定义书签。
5 参考文献 (12)附件一: ........................................................................................................ 错误!未定义书签。
摘要现代图像、语声、数据通信对线性相位的要求是普遍的。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。
与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。
因此,具有线性相位的FIR数字滤波器在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。
FIR数字低通滤波器的(汉宁)窗函数法设计
![FIR数字低通滤波器的(汉宁)窗函数法设计](https://img.taocdn.com/s3/m/e13df32bfe4733687e21aa83.png)
)(9cos 15.0)(12cos 15.0)(1919n R n n R N n n w ⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-=⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛--=ππ2.3进行语音信号的采集(1)按“开始”-“程序”-“附件”-“娱乐”-“录音机”的顺序操作打开Window s系统中的录音机软件。
如图1所示。
图1 wi ndows 录音机(2)用麦克风录入自己的声音信号并保存成wav 文件。
如图2所示。
图2 保存文件保存的文件按照要求如下:① 音信号文件保存的文件名为“y uxueji ao.wav ”。
②语音信号的属性为“8.000KH z,8位,单声道 7KB /秒” ,其它选项为默认。
2.4语音信号的分析将“yu xuejiao .wav ”语音文件复制到计算机装有Ma tlab 软件的磁盘中相应Mat lab目录中的“work ”文件夹中。
打开Matlab 软件,在菜单栏中选择“File ”-图3语音信号的截取处理图在图3中,其中第一个图为原始语音信号;第二个图是截短后的信号图。
图4频谱分析图其中第二个图是信号的FFT 结果,其横坐标的具体值是X (k)中的序号k;第三个图是确定滤波频率范围的参考图,其横坐标的具体值应当是遵循DFT 定义式和频率分辨率求得的:∑-===10)()]([)(N n k N W n x n x DFT k X π当k等于0时, 020j kn Njk knNe eW ==⋅-=π,从数字角频率上看,对应的正好是0=ω即直流的位置,也就是说,在取滤波频段时,当将主要能量(即红色框的部分)保留,其余频段部分的信号滤除。
)]([)(n x DFT k X =相当于是信号)(n x 的实际频谱)]([)(n x DFT ej X w =采样,而)(n x 又是连续时间语音信号)(t x 的采样。
)(k X 的每两个相邻取值之间的频率间隔大小对应到语音信号)(n x 的频谱中去,其频率间隔大小正好是采样结果的长度采样速率===∆L f f f s det f ∆称频率分辨率,其中Hz f s 8000=,10000=L ,p2=sum(s2.^2)-sum(s1.^2);SNR1=10*log10(p1/p2);p3=sum(s4.^2)/8000;p4=sum(s3.^2)/8000-sum(s4.^2)/8000;SNR2=10*log10(p3/p4);2.6 噪声叠加图5 语音信号与加噪声后语音信号对比图五为语音信号与加噪声后语音信号对。
数字信号实验(4) 用窗函数设计FIR滤波器
![数字信号实验(4) 用窗函数设计FIR滤波器](https://img.taocdn.com/s3/m/4279e774f46527d3240ce092.png)
实验四用窗函数设计FIR滤波器一、实验目的1.熟悉FIR滤波器设计的基本方法。
2.掌握用窗函数设计FIR数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。
3.熟悉线性相位FIR滤波器的幅频特性和相位特性。
4.了解各种不同窗函数对滤波器性能的响应。
二、实验原理与方法(一)FIR滤波器的设计目前FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。
常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。
本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。
它是从时域出发,用一个窗函数截取理想的得到h(n),以有限长序列h(n)近似理想的;如果从频域出发,用理想的在单位圆上等角度取样得到H(k),根据h(k)得到H(z)将逼近理想的,这就是频率取样法。
(二)窗函数设计法同其它的数字滤波器的设计方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。
一般是给定一个理想的频率响应,使所设计的FIR滤波器的频率响应去逼近所要求的理想的滤波器的相应。
窗函数法设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数。
去逼近。
我们知道,一个理想的频率响应的傅理叶变换所得到的理想单位脉冲响应往往是一个无限长序列。
对经过适当的加权、截断处理才得到一个所需要的有限长脉冲响应序列。
对应不同的加权、截断,就有不同的窗函数。
所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积。
即,由此可见,窗函数的性质就决定了滤波器的品质。
以下是几种常用的窗函数:1.矩形窗:2.Hanning窗:3.Hamming窗:4.Blackman窗:5.Kaiser窗:窗函数法设计线性相位FIR滤波器可以按如下步骤进行:1.确定数字滤波器的性能要求。
确定各临界频率{}和滤波器单位脉冲响应长度N。
2.根据性能要求和N值,合理地选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频率响应的幅频特性和相位特性。
实验六用窗函数法设计FIR滤波器分析解析
![实验六用窗函数法设计FIR滤波器分析解析](https://img.taocdn.com/s3/m/fa8691fef021dd36a32d7375a417866fb84ac0b2.png)
实验六用窗函数法设计FIR滤波器分析解析一、引言数字滤波器是数字信号处理中的重要组成部分。
滤波器可以用于去除噪声、调整频率响应以及提取感兴趣的信号。
有许多方法可以设计数字滤波器,包括窗函数法、频域法和优化法等。
本实验将重点介绍窗函数法设计FIR滤波器的原理和过程。
二、窗函数法设计FIR滤波器窗函数法是设计FIR滤波器的一种常用方法。
其基本原理是将滤波器的频率响应与理想滤波器的频率响应进行乘积。
理想滤波器的频率响应通常为矩形函数,而窗函数则用于提取有限长度的理想滤波器的频率响应。
窗函数的选择在FIR滤波器的设计中起着重要的作用。
常用的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
对于每种窗函数,都有不同的特性和性能指标,如主瓣宽度、副瓣抑制比等。
根据不同的应用需求,可以选择合适的窗函数。
窗函数法设计FIR滤波器的具体步骤如下:1.确定滤波器的阶数N。
阶数N决定了滤波器的复杂度,一般情况下,阶数越低,滤波器的简单度越高,但频率响应的近似程度也会降低。
2.确定滤波器的截止频率。
根据应用需求,确定滤波器的截止频率,并选择合适的窗函数。
3.根据窗函数长度和截止频率计算理想滤波器的频率响应。
根据所选窗函数的特性,计算理想滤波器的频率响应。
4.根据理想滤波器的频率响应和窗函数的频率响应,得到所需的FIR滤波器的频率响应。
将理想滤波器的频率响应与窗函数的频率响应进行乘积,即可得到所需滤波器的频率响应。
5.对所得到的频率响应进行逆傅里叶变换,得到时域的滤波器系数。
6.实现滤波器。
利用所得到的滤波器系数,可以通过卷积运算实现滤波器。
三、实验结果与分析本实验以Matlab软件为平台,利用窗函数法设计了一个低通滤波器。
滤波器的阶数为16,截止频率为500Hz,采样频率为1000Hz,选择了汉宁窗。
根据上述步骤,计算得到了所需的滤波器的频率响应和时域的滤波器系数。
利用这些系数,通过卷积运算,实现了滤波器。
为了验证滤波器的性能,将滤波器应用于输入信号,观察输出信号的变化。
fir滤波器设计方法
![fir滤波器设计方法](https://img.taocdn.com/s3/m/bc4a261b443610661ed9ad51f01dc281e53a56cc.png)
fir滤波器设计方法
fir滤波器是数字信号处理中常用的一种滤波器,它可以对信号进行滤波处理,去除噪声和干扰,提高信号的质量。
fir滤波器的设计方法有很多种,下面我们来介绍一下其中的几种常用方法。
第一种方法是窗函数法。
这种方法是最简单的fir滤波器设计方法,它的原理是将理想滤波器的频率响应与一个窗函数相乘,得到fir滤波器的频率响应。
常用的窗函数有矩形窗、汉宁窗、汉明窗等。
这种方法的优点是简单易懂,计算量小,但是滤波器的性能不够理想。
第二种方法是频率抽样法。
这种方法的原理是将理想滤波器的频率响应进行抽样,得到fir滤波器的频率响应。
抽样的频率可以根据滤波器的要求进行选择。
这种方法的优点是可以得到比较理想的滤波器性能,但是计算量较大。
第三种方法是最小二乘法。
这种方法的原理是通过最小化滤波器的误差平方和来得到fir滤波器的系数。
这种方法可以得到比较理想的滤波器性能,但是计算量较大。
第四种方法是频率采样法。
这种方法的原理是通过对滤波器的频率响应进行采样,得到fir滤波器的系数。
这种方法可以得到比较理想的滤波器性能,但是需要进行频率响应的采样,计算量较大。
以上是fir滤波器的几种常用设计方法,不同的方法适用于不同的滤波器要求。
在实际应用中,需要根据具体的情况选择合适的设计
方法,以得到满足要求的fir滤波器。
用窗函数法设计FIR数字低通滤波器资料
![用窗函数法设计FIR数字低通滤波器资料](https://img.taocdn.com/s3/m/2e63c24925c52cc58bd6be3a.png)
河北科技大学课程设计报告学生姓名:学号:专业班级:课程名称:学年学期指导教师:20 年月课程设计成绩评定表目录1. 窗函数设计低通滤波器1.1设计目的 (1)1.2设计原理推导与计算 (1)1.3设计内容与要求 (2)1.4设计源程序与运行结果 (3)1.5思考题 (10)1.6心得体会 (14)参考文献 (15)1.窗函数设计低通滤波器1.1设计目的1. 熟悉设计线性相位数字滤波器的一般步骤。
2. 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
3. 熟悉各种窗函数的作用以及各种窗函数对滤波器特性的影响。
4. 学会根据指标要求选择合适的窗函数。
1.2设计原理推导与计算如果所希望的滤波器的理想的频率响应函数为()ωj d e H ,则其对应的单位脉冲响应为()()ωπωωππd e e H n h j j d d ⎰-=21(4.1) 窗函数设计法的基本原理是设计设计低通FIR 数字滤波器时,一般以理想低通滤波特性为逼近函数()ωj e H ,即()⎪⎩⎪⎨⎧≤<≤=-πωωωωωαωc c j jd ,,ee H 0,其中21-=N α()()()[]()a n a n d e e d e eH n h c j j j j d d cc--===⎰⎰---πωωπωπωαωωωαωππωsin 2121用有限长单位脉冲响应序列()n h 逼近()n h d 。
由于()n h d 往往是无限长序列,而且是非因果的,所以用窗函数()n ω将()n h d 截断,并进行加权处理,得到: ()()()n n h n h d ω= (4.2)()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数()ωj e H 为()()nj N n j en h eH ωω∑-==1(4.3)式中,N 为所选窗函数()n ω的长度。
用窗函数法设计的滤波器性能取决于窗函数()n ω的类型及窗口长度N 的取值。
实验六用窗函数设计FIR滤波器
![实验六用窗函数设计FIR滤波器](https://img.taocdn.com/s3/m/fb4d2694250c844769eae009581b6bd97f19bc3e.png)
实验六用窗函数设计FIR滤波器一、引言数字滤波器是用于处理数字信号的重要工具,而FIR(Finite Impulse Response)滤波器是其中一类常见的滤波器。
在FIR滤波器中,输出信号的每个样本值仅依赖于输入信号在过去固定时间窗口内的样本值。
窗函数则是用于设计FIR滤波器的一种常见方法。
本实验将介绍如何用窗函数设计FIR滤波器,并通过一系列实验验证其性能。
二、实验目的1.了解FIR滤波器的原理和窗函数设计方法。
2.利用MATLAB工具进行FIR滤波器设计与性能评估。
3.分析不同窗函数对FIR滤波器的影响。
三、窗函数设计方法在设计FIR滤波器时,可以通过选择不同的窗函数来实现不同的频率响应。
常见的窗函数有矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
在本实验中,我们将以汉宁窗为例进行讲解。
1.首先确定滤波器的截止频率和通带误差。
2.根据通带误差和滤波器的截止频率计算阶数。
3.根据阶数选择合适大小的窗口长度。
4.选择合适的窗函数,如汉宁窗。
5.计算窗函数的系数,并与理想滤波器的冲击响应相乘得到最终的滤波器系数。
四、实验步骤1.确定滤波器参数:截止频率、通带误差等。
2.根据通带误差和截止频率计算滤波器的阶数。
3.选择合适大小的窗口长度,通常选择大于滤波器阶数的2倍。
4.选择窗函数,如汉宁窗,计算窗函数的系数。
5.根据窗函数系数和截止频率计算滤波器的系数。
6.绘制滤波器的频率响应曲线。
7.利用设计好的FIR滤波器对输入信号进行滤波,并观察滤波效果。
五、实验结果与分析在本实验中,我们选择了截止频率为1kHz的低通滤波器。
首先计算滤波器的阶数,假设通带误差为0.01,根据公式可得N=3.32/((截止频率*通带误差)/采样频率)≈60。
我们选择窗口长度为120,即滤波器的阶数的两倍。
接下来选择汉宁窗作为窗函数,并计算其系数。
最后通过窗函数系数和截止频率计算得到滤波器的系数。
实验采用不同窗函数设计的FIR滤波器进行滤波,观察不同窗函数对滤波器性能的影响。
基于窗函数法的FIR数字滤波器设计
![基于窗函数法的FIR数字滤波器设计](https://img.taocdn.com/s3/m/11b3a1bda76e58fafab003eb.png)
基于窗函数法的FIR数字滤波器设计∗屈召贵(四川旅游学院信息与工程学院ꎬ四川成都610100)摘㊀要:数字滤波器是用来对离散信号的数字代码进行运算处理ꎬ以达到改变信号频谱的目的ꎬ在通信㊁图形图像㊁语音㊁声纳㊁生物㊁地震等信息处理中广泛应用ꎮ因此在数字信号处理课程教学中ꎬ数字滤波器的设计显得尤为重要ꎮ在工程实践中有限长脉冲响应数字滤波器(FIR)更为普遍ꎬ以此在教学中提出根据理想频响ꎬ采用直接逼近的实验设计方法ꎬ并通过MATLAB具体实现ꎮ从理论㊁视觉和听觉三方面设计实验内容ꎮ结果表明该方法能较好地让学生运用傅里叶变换等相关理论知识解决实际问题ꎮ关键词:数字滤波器ꎻ傅里叶变换ꎻ单位脉冲响应中图分类号:TN919.5㊀㊀㊀㊀㊀㊀文献标识码:A㊀㊀㊀㊀㊀㊀DOI:10.19358/j.issn.2096 ̄5133.2019.09.017引用格式:屈召贵.基于窗函数法的FIR数字滤波器设计[J].信息技术与网络安全ꎬ2019ꎬ38(9):85 ̄89.DesignofFIRdigitalfilterbasedonwindowfunctionmethodQuZhaogui(SchoolofInformationEngineeringꎬSichuanTourismCollegeꎬChengdu610100ꎬChina)Abstract:Digitalfiltersareusedtoprocessthedigitalcodesofdiscretesignalsinordertochangethespectrumofsignals.Thedesignofdigitalfilterisveryimportantinthecourseofdigitalsignalprocessingbecauseitiswidelyusedinthefieldsofcommunicationꎬgraph ̄icsꎬspeechꎬsonarꎬbiologyꎬearthquakeandsoon.Inengineeringpracticeꎬfinitelengthimpulseresponsedigitalfilter(FIR)ismorecommon.Basedonthisꎬanexperimentaldesignmethodofdirectapproximationbasedonidealfrequencyresponseisproposedinteach ̄ingandrealizedbyMATLAB.Theexperimentalcontentsaredesignedfromthreeaspects:theoryꎬvisionandhearing.TheresultsshowthatthismethodcanmakestudentsuseFouriertransformtosolvepracticalproblems.Keywords:digitalfilterꎻFouriertransformꎻunitimpulseresponse∗基金项目:四川省教育厅重点科研项目(自然科学)(16ZA0424)0㊀引言随着半导体集成电路的发展ꎬ以及机器学习㊁人工智能技术的不断进步ꎬ数字信号处理在通信㊁生物㊁医疗㊁工业控制㊁雷达声纳㊁能源开采等领域广泛应用ꎮ该门课程涉及的理论和技术已成为电子信息㊁地质勘探㊁生物医疗等诸多学科领域工程技术人员必掌握的知识ꎮ数字信号处理课程作为电类专业的一门必修课ꎬ其重要性不言而喻ꎮ其中数字滤波器的设计在信息处理领域应用普遍ꎬ由于其涉及的知识面较多ꎬ理论知识复杂ꎬ内容抽象ꎬ难于理解[1-6]ꎬ因此相当一部分学生对这些知识的学习感到困难ꎮ本文基于此提出FIR数字滤波器设计基本原理㊁设计方法和应用MATLAB进行实现的实验项目ꎬ通过可视化㊁可听化的效果ꎬ让学生掌握FIR数字滤波器的设计ꎮ1㊀窗函数法设计FIR数字滤波器的原理分析1.1㊀窗函数法设计FIR数字滤波器的原理分析窗函数法是FIR数字滤波器较为常用的一种设计方法ꎬ在工程实践中广泛应用ꎮFIR数字滤波器设计的原理是:拟设计的滤波器的理想频率响应为Hd(ejω)ꎬFIR滤波器的设计就是寻找一个传递函数H(ejω)=ðN ̄1n=0h(n)e ̄jωn去逼近Hd(ejω)ꎮ在这种逼近中有两种直接的方法ꎬ一种是从时域入手ꎬ即时间窗函数设计法ꎬ另一种从频域入手ꎬ即频率采样法ꎮ时间窗函数设计法是从单位脉冲响应序列着手ꎬ使h(n)逼近理想的单位脉冲响应序列hd由于hd(n)可以从理想频响Hd(ejω)通过傅里叶反变换获得序列hd(n)=12πʏ2π0Hd(ejω)ejωndωꎬ因此ꎬ知道滤波器的理想频响函数ꎬ即可求出单位脉冲响应序列[7-9]ꎮ一般来说ꎬ理想频响都为分段恒定的ꎬ在边界频率处有突变点ꎬ所以ꎬ这样得到的理想单位脉冲响应hd(n)往往都是无限长序列ꎬ而且是非因果的ꎮ但FIR的h(n)是有限长的ꎬ问题是怎样用一个有限长的序列去近似无限长的hd(n)ꎮ最直接简单的办法是直接截取其一段来代替ꎮ这种截取可以形象地想像为h(n)就好像是通过一个 窗口 所看到的一段hd(n)ꎬ因此ꎬh(n)也可表示为hd(n)和一个 窗函数 w(n)的乘积ꎬ即:h(n)=w(n)hd(n)ꎮ在这里窗口函数就是矩形脉冲函数RN(n)ꎬ当然为了改善设计滤波器的特性ꎬ它还可以有其他的形式ꎬ相当于在矩形窗内对hd(n)作一定的加权处理ꎮ如图1所示ꎬ对于理想数字滤波器的单位取样响应而言ꎬ幅度较大的样点都集中在对称中心附近ꎬ这些样点将对滤波器的频率响应起到主要作用ꎮ如果只允许选择有限个样点作为一个系统的单位取样响应ꎬ当然在对称中心周围对称选择得到的对应的频率响应与理想滤波器的频率响应最为近似ꎬ而且允许取的点数越多越相近ꎬ这是窗函数法设计FIR滤波器的重要思想[10-14]ꎮ图1㊀理想数字滤波器和窗函数的频响1.2㊀常用的窗函数及幅频特性参数分析窗函数的傅式变换W(ejω)的主瓣决定了H(ejω)的过渡带宽ꎮW(ejω)的旁瓣大小和多少决定了H(ejω)在通带和阻带范围内的波动幅度ꎮ常用的几种窗函数有:矩形窗:w(n)=RN(n)Hanning窗:w(n)=0.51-cos2πnN-1()[]RN(n)Hamming窗:w(n)=0.54-0.46cos2πnN ̄1()[]RN(n)Blackmen窗:w(n)=0.42-0.5cos2πnN-1+0.08cos4πnN-1[]RN(n)Kaiser窗:w(n)=I0(β 1-[2n/(N-1)-1]2)I0(β)RN(n)式中Io(x)为零阶贝塞尔函数ꎮ常用的几种窗函数幅频特性参数如表1所示ꎮ表1㊀常用窗函数幅频特性参数窗函数窗谱性能指标加窗后性能指标旁瓣峰值/dB主瓣宽度过渡带宽阻带最小衰减/dB矩形窗-134π/N4π/N-21三角形窗-258π/N8π/N-25汉宁窗-318π/N8π/N-44海明窗-418π/N8π/N-53布拉克曼窗-5712π/N12π/N-74凯泽(β=7.865)-5710π/N-802㊀窗函数法设计FIR数字滤波器的步骤一般拟设计的数字滤波器性能指标通常有通带截频ωpꎬ阻带截频ωsꎬ通带衰耗Apꎬ阻带衰耗As等参数ꎮ大多数情况下频率参数是用模拟值给出ꎬ如采样频率Fsꎬ通带截频fpꎬ阻带截频fsꎮ可通过这些技术指标设计出符合线性相位要求的单位脉冲响应hn或H(k)ꎬ从而实现数字滤波器的功能ꎮ2.1㊀确定窗函数w(n)的N个样点值(1)选定窗函数的类型根据拟设计的滤波器的阻带截频ωs处的衰减小于阻带衰耗Asꎬ选定合适的窗函数ꎬ再选择过渡带较窄(越接近理想频响)的窗函数ꎮ通过查表1ꎬ最终确定要选用的窗函数ꎮ(2)计算窗函数的宽度N根据给定的参数ωp㊁ωs计算过渡带ΔBꎬ如式(1)所示:ΔB=ωs-ωp(1)由表1可知ꎬ各窗函数的过渡带为mπ/Nꎬ因此有关系式(2)㊁(3):mπN=ΔB(2)N=mπΔB(3)上述计算如果给出的是模拟参数ꎬ应转换为数字参数代入计算ꎮ如果拟设计的滤波器为高通㊁低通滤波器ꎬ则可直接用式(1)和(3)计算窗函数的宽度Nꎮ如果是带通滤波器和带阻滤波器ꎬ由于其过渡带有两个ꎬ因此选择较窄的过渡带ΔB代入式(3)计算ꎬ若计算的N为非整数时ꎬ需要进行向上取整运算ꎬ以使设计出的滤波器在两个过渡带都能满足要求ꎮ(3)计算w(n)的N个样点值将N值代入选定的窗函数表达式ꎬ计算出w(n)的N个样点值ꎮ通常用MATLAB提供的窗函数来确定ꎮ各种窗的计算如表2所示ꎮ表2㊀MATLAB窗函数计算w(n)窗类型MATLAB窗函数计算w(n)矩形窗w(n)=rectwin(N)三角形窗w(n)=bartlett(N)汉宁窗w(n)=hanning(N)海明窗w(n)=hamming(N)布莱克曼窗w(n)=blackman(N)凯塞 ̄贝塞尔窗w(n)=Kaiser(Nꎬbeta)2.2㊀根据技术指标计算hd(n)hd(n)为理想滤波器的频响ꎬ根据拟设计的滤波器类型计算Hd(ejωτ)ꎮ满足线性相位条件的系统输入序列x(n)和输出序列y(n)之间的关系如式(4)所示:y(n)=Ax(n-τ)(4)其z变换如式(5)所示:Y(z)=Az-τX(z)(5)令z=ejωꎬ则有式(6):H(ejω)=H(ω)e-jωτ(6)写成幅度和相位函数ꎬ如式(7)所示:Hd(ejω)=H(ω)θ(ω)(7)式中θ(ω)=-ωτꎬτ=(N-1)/2ꎮ理想滤波器的3dB截频ωc可近似位于过渡带中心ꎬ即有式(8):ωc=ωp+ωs2(8)低通滤波器的hd(n)的计算如式(9)所示ꎬ其中ꎬ-ωc<ω<ωcꎬ幅度为 1 ꎬ其他为 0 ꎮhd(n)=12πʏπ-πHd(ejω)ejωndω=12πʏωc-ωcejωτejωndω=sinωc(n-τ)π(n-τ)(9)由同样的方法可设计高通㊁带通㊁带阻滤波器的理想频率响应hd(n)ꎮ2.3㊀根据hd(n)和w(n)计算h(n)由式(9)可知hd(n)为无限长ꎬ实际应用中需加窗截断ꎬ变为有限长单位脉冲响应ꎮ其变换关系如式(10)所示:h(n)=hd(n) w(n)(10)如低通滤波器3dB截频为0.3πꎬN取33ꎬ用海明窗截断的表达式如式(11)所示:h(n)=sin0.3πn-16()[]πn-16()ˑ0.54-0.46cosπn16[]R33(n)(11)2.4㊀验证设计的滤波器根据求解的h(n)计算H(ejω)ꎬ通过MATLAB程序分析其幅频特性ꎬ主要验证阻带衰耗是否满足要求ꎬ若不满足要求ꎬ可适当改变窗函数形式或长度Nꎬ重复上述设计过程ꎬ以得到满意的结果ꎮ3㊀窗函数法FIR数字滤波器实验内容设计3.1㊀实验任务要求设有一段受干扰的音频信号ꎬ其有用信号频率在1.5kHz以内ꎬ干扰信号的频率为8kHzꎮ要求设计FIR数字滤波器提取有用信号ꎬ将干扰信号衰减抑制在50dB以内ꎬ通带衰耗控制在1dB以内ꎮ3.2㊀滤波器设计由任务要求可知ꎬ滤波器应设计为低通滤波器ꎬ其指标要求:通带截频fp为1.5kHzꎬ通带衰耗Ap为1dBꎬ阻带截频fs为3kHzꎬ阻带衰耗As为50dBꎮ采样频率Fs至少应为16kHzꎮ(1)求数字角频率ꎮ可计算数字滤波器的通带数字截频ωp为0.1875πꎬ阻带数字截频ωs为0.375πꎮ(2)窗函数类型ꎮ由于阻带衰耗为50dBꎬ通过查表1可知ꎬ选用海明窗最为合适ꎮ(3)计算窗函数的宽度Nꎮ由式(3)可计算ꎬ窗函数的宽度N为43ꎬ满足第一类线性相位条件ꎮ(4)计算hd(n)ꎮ由式(8)可知ꎬωc=0.28125πꎬτ=21ꎮ再根据式(9)ꎬ可求出hd(n)ꎬ如式(12)所式:hd(n)=sin[0.28125π(n-21)]π(n-21)(12)(5)确定FIR滤波器的h(n)ꎮ由式(10)可求出h(n)ꎬ如式(13)所示:h(n)=sin0.28125πn-21()[]πn-21()ˑ0.54-0.46cosπn21[]R43(n)(13)3.3MATLAB验证用MATLAB分别画出用于实验的原始信号的频谱图(如图2所示ꎬ在8kHz存在干扰信号)㊁设计的线性相位FIR低通滤波器幅频特性图(如图3所示)㊁滤波后的信号频谱图(如图4所示)ꎮ图2㊀原如信号频谱图由图3可知ꎬ设计的滤波器阻带衰减在50dB图3㊀线性相位FIR低通滤波器幅频特性图4㊀滤波后的频谱图以下ꎮ由图4可知ꎬ8kHz的干扰信号成功被滤出ꎮ因此设计滤波器符合设计要求ꎮ通过MATLAB的音频播放功能检验滤出后的信息ꎬ明显无干扰声音ꎮ4㊀结论窗函数法是FIR数字滤波器常用的设计方法ꎬ易于实现线性相位ꎮ其设计思路是根据目标滤波器的理想模型ꎬ通过加窗或截取的方法得到满足设计指标的滤波器ꎬ是一种直接逼近方式ꎬ逼近程度取决于窗的长度和窗的类型ꎮ实验以离散傅里叶变换理论为基础ꎬ以MATLAB为工具ꎬ从视觉和听觉等方面直观感受数字滤波器设计的实验ꎬ实践表明大大提高了学生的实验效果ꎮ参考文献[1]吴镇扬.讲好 数字信号处理 的绪论课[J].电气电子教学学报ꎬ2018ꎬ40(4):81 ̄84.[2]林永照ꎬ黄文准ꎬ李宏伟ꎬ等.数字信号处理实践与应用[M].北京:电子工业出版社ꎬ2015.[3]屈召贵ꎬ周永强.应用型本科电子信息工程专业实践教学体系探索[J].实验室研究与探索ꎬ2018ꎬ37(12):240 ̄244.[4]王莉ꎬ沈捷ꎬ张印强.面向实践创新能力培养的数字信号处理实验教学改革[J].西昌学院学报(自然科学版)ꎬ2018ꎬ32(3):116 ̄119.[5]楼生强.研究生课程«现代信号处理»建设的初探[J].数字通信世界ꎬ2018(11):16ꎬ102.[6]黄玲ꎬ王进花ꎬ李建海.高校中英文双语教学中存在的问题与对策研究 以新工科建设背景下 数字信号处理 课程为例[J].甘肃教育ꎬ2018(24):84 ̄85.[7]王路ꎬ赖春露.FIR数字滤波器幅频响应约束最大加权相位误差最小化设计[J].电子学报ꎬ2018ꎬ46(11):2781 ̄2786.[8]张金菊.船舶抗信号干扰的低通数字滤波器设计[J].舰船科学技术ꎬ2018ꎬ40(20):106 ̄108.[9]陈琦ꎬ李格伦ꎬ李智刚.用于船舶升沉运动估算的自适应数字滤波器[J].中国惯性技术学报ꎬ2018ꎬ26(4):421 ̄427.[10]胡晓朋ꎬ田雨波ꎬ许永秀ꎬ等.改进的类电磁机制算法及其在FIR数字滤波器中的应用[J].江苏科技大学学报(自然科学版)ꎬ2018ꎬ32(4):549 ̄554.[11]李强ꎬ李成飞ꎬ刘凯ꎬ等.用于永磁电机无传感器控制的数字滤波器设计[J].电机与控制学报ꎬ2018ꎬ22(8):47 ̄53.[12]潘凯ꎬ米飞ꎬ杨阳.无限长非负脉冲响应数字低通滤波器设计[J].激光杂志ꎬ2018ꎬ39(5):10 ̄14.[13]屈召贵ꎬ鲁顺昌.说话人识别的不确定性i ̄vector分析[J].计算机工程与设计ꎬ2017ꎬ38(6):1647 ̄1650. [14]屈召贵ꎬ刘强.基于北斗卫星的航行数据导航方法研究[J].舰船科学技术ꎬ2016ꎬ38(8):145 ̄147.(收稿日期:2019 ̄06 ̄24)作者简介:屈召贵(1980-)ꎬ男ꎬ硕士ꎬ副教授ꎬ主要研究方向:智能计算与信息处理ꎮ。
FIR数字滤波器设计(窗函数法)C语言实现
![FIR数字滤波器设计(窗函数法)C语言实现](https://img.taocdn.com/s3/m/925527c87e192279168884868762caaedd33ba31.png)
FIR数字滤波器设计(窗函数法)C语⾔实现背景介绍:理想滤波器在物理上是不可实现的,其单位脉冲响应是⽆限长、⾮因果的。
窗函数法,就是从时域出发,⽤有限长、因果的单位脉冲响应h(n)去逼近理想滤波器的⽆限长、⾮因果的单位脉冲响应的⽅法。
窗函数法⼜叫傅⾥叶级数法。
更多背景资料,请看数字信号处理(李永全),P175。
⽅法简介:设N-1阶FIR数字滤波器的单位冲击响应为h(n),则传递函数H(z)为:窗函数法的设计步骤如下:1.根据给定的理想频率响应Hd(e^jw),利⽤傅⾥叶反变换,求出单位冲击响应hd(n):2.将hd(n)乘以窗函数w(n),得到所要求的FIR滤波器系数h(n):3.求卷积:使⽤说明⼦函数语句:void firwin(int n, int band, int wn, int fs, double h[], double kaiser=0.0, double fln=0.0, double fhn=0.0);形参说明n:滤波器的阶数band:滤波器的类型,取值1-4,分别为低通、带通、带阻、⾼通滤波器wn:窗函数的类型,取值1-7,分别对应矩形窗、图基窗、三⾓窗、汉宁窗、海明窗、布拉克曼窗和凯塞窗fs:采样频率h:存放滤波器的系数kaiser:beta值fln:带通下边界频率fhn:带通上边界频率源代码void firwin(int n, int band, int wn, int fs, double h[], double kaiser, double fln, double fhn){int i;int n2;int mid;double s;double pi;double wc1;double wc2;double beta;double delay;beta = kaiser;pi = 4.0 * atan(1.0); //pi=PI;if ((n % 2) == 0)/*如果阶数n是偶数*/{n2 = (n / 2) - 1;/**/mid = 1;//}else{n2 = n / 2;//n是奇数,则窗⼝长度为偶数mid = 0;}delay = n / 2.0;wc1 = 2 * pi * fln;wc2 = 2 * pi * fhn;switch (band){case 1:{for (i=0; i<=n2; ++i){s = i - delay;h[i] = (sin(wc1 * s / fs) / (pi * s)) * window(wn, n+1, i, beta);//低通,窗⼝长度=阶数+1,故为n+1h[n - i] = h[i];}if (mid == 1){h[n / 2] = wc1 / pi;//n为偶数时,修正中间值系数}break;}case 2:{for (i=0; i<=n2; i++){s = i - delay;h[i] = (sin(wc2 * s / fs) - sin(wc1 * s / fs)) / (pi * s);//带通h[i] = h[i] * window(wn, n+1, i, beta);h[n-i] = h[i];}if (mid == 1){h[n / 2] = (wc2 - wc1) / pi;}break;}case 3:{for (i=0; i<=n2; ++i){s = i - delay;h[i] = (sin(wc1 * s / fs) + sin(pi * s) - sin(wc2 * s / fs)) / (pi * s);//带阻 h[i] = h[i] * window(wn, n+1, i, beta);h[n - i] = h[i];}if (mid == 1){h[n / 2] = (wc1 + pi - wc2) / pi;}break;}case 4:{for (i=0; i<=n2; i++){s = i - delay;h[i] = (sin(pi * s) - sin(wc1 * s / fs)) / (pi * s);//⾼通h[i] = h[i] * window(wn, n+1, i, beta);h[n-i] = h[i];}if (mid == 1){h[n / 2] = 1.0 - wc1 / pi;}break;}}}//n:窗⼝长度 type:选择窗函数的类型 beta:⽣成凯塞窗的系数static double window(int type, int n, int i, double beta){int k;double pi;double w;pi = 4.0 * atan(1.0); //pi=PI;w = 1.0;switch (type){case 1:{w = 1.0; //矩形窗break;}case 2:{k = (n - 2) / 10;if (i <= k){w = 0.5 * (1.0 - cos(i * pi / (k + 1))); //图基窗}if (i > n-k-2){w = 0.5 * (1.0 - cos((n - i - 1) * pi / (k + 1)));}break;}case 3:{w = 1.0 - fabs(1.0 - 2 * i / (n - 1.0));//三⾓窗break;}case 4:{w = 0.5 * (1.0 - cos( 2 * i * pi / (n - 1)));//汉宁窗break;}case 5:{w = 0.54 - 0.46 * cos(2 * i * pi / (n - 1));//海明窗break;}case 6:{w = 0.42 - 0.5 * cos(2 * i * pi / (n - 1)) + 0.08 * cos(4 * i * pi / (n - 1));//布莱克曼窗 break;}case 7:{w = kaiser(i, n, beta);//凯塞窗break;}}return(w);}static double kaiser(int i, int n, double beta){double a;double w;double a2;double b1;double b2;double beta1;b1 = bessel0(beta);a = 2.0 * i / (double)(n - 1) - 1.0;a2 = a * a;beta1 = beta * sqrt(1.0 - a2);b2 = bessel0(beta1);w = b2 / b1;return(w);}static double bessel0(double x){int i;double d;double y;double d2;double sum;y = x / 2.0;d = 1.0;sum = 1.0;for (i=1; i<=25; i++){d = d * y / i;d2 = d * d;sum = sum + d2;if (d2 < sum*(1.0e-8)){break;}}return(sum);}得到系数之后,与输⼊信号求卷积即可!。
用窗函数法设计FIR滤波器
![用窗函数法设计FIR滤波器](https://img.taocdn.com/s3/m/4830ef3fa36925c52cc58bd63186bceb19e8ed80.png)
用窗函数法设计FIR滤波器窗函数法是一种常用的数字滤波器设计方法,特别是FIR(Finite Impulse Response)滤波器设计的一种方法。
FIR滤波器是一种非递归滤波器,可以实现信号的滤波,特定频率的增强或抑制,抗混叠等功能。
FIR滤波器设计过程可以分为两个步骤:确定滤波器的理论参数和设计窗函数。
第一步,确定滤波器的理论参数。
这些参数包括滤波器的采样频率,截止频率,通带和阻带的衰减要求等。
一般情况下,FIR滤波器的理论参数由滤波器的应用需求决定。
第二步,设计窗函数。
窗函数是用来限制FIR滤波器的单位冲激响应的长度的。
它决定了滤波器的频率响应特性和频率选择性。
窗函数可以通过Fourier级数展开来实现。
常用的窗函数有矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
例如,以汉宁窗为例,下面是使用窗函数法设计FIR滤波器的具体步骤:1. 确定滤波器的理论参数。
如采样频率为fs,截止频率为fc,通带衰减要求为d1,阻带衰减要求为d22.将截止频率转化为数字频率。
由于数字信号是离散的,需要将模拟信号的截止频率转化为数字频率。
数字频率的单位为π。
3.根据截止频率和采样频率计算滤波器的长度N。
通常情况下,滤波器的长度N取一个奇数值,以确保能满足线性相位要求。
4.根据窗函数的性质确定窗函数的参数。
汉宁窗的参数为α=0.55.根据窗函数的长度N和参数α计算窗函数的系数。
例如,对于汉宁窗,窗函数的系数可通过下式计算得到:w(n) = 0.5 - 0.5 * cos(2πn/N) ,其中0≤ n ≤ N-16.根据窗函数的系数计算滤波器的单位冲激响应h(n)。
滤波器的单位冲激响应即为窗函数系数的离散时间傅里叶变换(DTFT),用于表示滤波器的频率响应特性。
7.根据滤波器的单位冲激响应h(n)可以计算出滤波器的频率响应H(f)。
频率响应可以通过滤波器的单位冲激响应h(n)的离散时间傅里叶变换(DTFT)计算得到。
8.根据设计要求来检验滤波器的频率响应特性是否满足要求。
窗函数法设计线性相位FIR数字滤波器
![窗函数法设计线性相位FIR数字滤波器](https://img.taocdn.com/s3/m/8f6ce801f18583d04964596e.png)
fd(W)= -0.5MW +
3.按照下式计算IDTFT得hd[k]
1 π jfd ( W ) jkW hd [k ] A ( W ) e e dW -π d 2π
4.截短hd[k]得: h[k]= hd[k], 0k M
例1:设计一个幅度响应能逼近理想带通滤波器的线
性相位FIR滤波器。 解: (1) 确定线性相位FIR滤波器类型:可选用I型或II型 (2) 确定理想滤波器的幅度函数Ad(W):
0
2 N
3 N
W
4 N
3π W( ) N A -20lg W (0)
=13dB
二、吉伯斯现象
矩形窗设计FIR滤波器的频率响应H(ejW) 1 jW jW jW H (e ) * W (e ) H (e ) DTFT{hd (k )wN (k )} d N 2π 1 π jW -jWM / 2 j j( W- ) H (e ) A ( W )e H (e ) W (e )d d N d d π 2π jW -jWM / 2 WN (e ) W (W)e
1 π -j M / 2 -j(W- )M / 2 A ( )e W ( W )e d d 2π - π π -jWM / 2 1 e Ad ( )W (W - )d 2π - π 1 π Ad ( ) W (W - )d FIR滤波器的幅度函数: A(W) 2π - π
1-0.0002 0.0002
0
10
20
30
k
W Wc
11.4 π
N L
Ap 0.0017dB,As 74dB
三、常用窗函数
常用窗函数性质
窗的类型 矩形 Hann Hamming Blackman 主瓣宽度 4 / N 8 / N 8 / N 12 / N 近似过 渡带宽度 1.8 / N 6.2/N 7 / N 11.4/N
matlab窗函数法设计带通滤波器
![matlab窗函数法设计带通滤波器](https://img.taocdn.com/s3/m/7823fa87ba4cf7ec4afe04a1b0717fd5360cb205.png)
matlab窗函数法设计带通滤波器在MATLAB中,可以使用窗函数法设计数字滤波器。
窗函数方法是一种基于时域设计技术,通过在滤波器的脉冲响应上乘以一个窗函数,从而改变其频率特性。
这种方法不需要进行频域变换,因此在计算上具有一定的简便性。
下面将详细介绍如何使用MATLAB实现带通滤波器的设计。
带通滤波器的目标是在给定的频率范围内传递信号,并在其他频率上进行衰减。
通常,设计带通滤波器的步骤如下:1. 确定滤波器的通带频率范围和截止频率。
通带是需要通过的频率范围,而截止频率是指在此频率以上或以下信号进行衰减。
2. 根据通带和截止频率选择合适的滤波器类型。
常见的滤波器类型包括Butterworth滤波器、Chebyshev滤波器和椭圆滤波器等。
3. 根据滤波器类型和要求的频率响应,确定滤波器的阶数。
滤波器的阶数决定了滤波器的频率选择性能。
4. 选择一个合适的窗函数。
窗函数定义了滤波器的脉冲响应。
5. 使用MATLAB中的filter函数将得到的窗口脉冲响应应用于要进行滤波的信号。
下面假设我们要设计一个带通滤波器,通带频率范围为f1和f2,截止频率为f3和f4,并且设定了滤波器的阶数为N。
首先,我们需要选择合适的滤波器类型。
在MATLAB中,可以使用butter函数来设计Butterworth滤波器。
此函数的语法如下:[b, a] = butter(N, [f1, f2]/(Fs/2), 'bandpass')其中,N是滤波器的阶数,[f1, f2]是通带频率范围,Fs是采样频率。
然后,选择一个合适的窗函数,常用的窗函数包括矩形窗、汉宁窗、布莱克曼窗等。
可以使用MATLAB中的窗函数函数hamming生成汉宁窗。
例如,可以使用以下代码生成一个长度为N+1的汉宁窗:w = hamming(N+1)接下来,我们需要通过将窗函数应用于滤波器的点数响应来计算滤波器的系数。
可以使用MATLAB中的filter函数将窗口响应与滤波器的截止频率进行卷积。
(完整word版)用窗函数法设计FIR数字滤波器
![(完整word版)用窗函数法设计FIR数字滤波器](https://img.taocdn.com/s3/m/21ebaca826fff705cd170a47.png)
用窗函数法设计FIR 数字滤波器一、实验目的1.掌握用窗函数法设计FIR 数字滤波器的原理和方法。
2.熟悉线性相位FIR 数字滤波器特征。
3.了解各种窗函数对滤波特性的影响。
二、实验仪器微型计算机 matlab 软件 三、实验原理和方法如果所希望的滤波器的理想频率响应函数为 )(ωj d eH ,则其对应的单位脉冲响应为)(n h d =π21ωωωππd e e H j j d )(⎰-(2-1)窗函数设计法的基本原理是用有限长单位脉冲响应序列)(n h 逼近)(n h d 。
由于)(n h d 往往是无限长序列,且是非因果的,所以用窗函数)(n ω将)(n h d 截断,并进行加权处理,得到:)(n h =)(n h d )(n ω (2-2))(n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数)(ωj d e H 为: )(ωj d eH =∑-=-1)(N n j e n h ω (2-3)式中,N 为所选窗函数)(n ω的长度。
由第七章可知,用窗函数法设计的滤波器性能取决于窗函数)(n ω的类型及窗口长度N 的取值。
设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。
各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见第七章。
这样选定窗函数类型和长度N 后,求出单位脉冲响应)(n h =)(n h d ·)(n ω,并按式(2-3)求出)(ωj e H 。
)(ωj e H 是否满足要求,要进行验算。
一般在)(n h 尾部加零使长度满足于2的整数次幂,以便用FFT 计算)(ωj e H 。
如果要观察细节,补零点数增多即可。
如果)(ωj eH 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。
如果要求线性相位特性,则)(n h 还必须满足)1()(n N h n h --±= (2-4)根据上式中的正负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。
matlab窗函数法设计数字滤波器
![matlab窗函数法设计数字滤波器](https://img.taocdn.com/s3/m/4ff44cc803d276a20029bd64783e0912a3167c41.png)
matlab窗函数法设计数字滤波器窗函数法是一种常用的数字滤波器设计方法,它通过选择合适的窗函数来实现滤波器的频域响应。
在数字滤波器设计中,需要确定滤波器的截止频率和滤波器响应的形状。
一种常用的方法是设计滤波器的频率响应为矩形形状,然后通过应用窗函数来实现所需的频率响应。
窗函数是一种在有限时间内将信号置零的函数,它在频域上对应于信号的频谱的卷积操作。
首先,我们需要确定所需滤波器的频率响应。
通常情况下,我们会选择一种频率响应的形状,例如低通、高通、带通或带阻。
然后可以通过将这些形状变换到规范化的频率范围来设计出具体的频率响应。
接下来,选择合适的窗函数。
常用的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
每种窗函数具有不同的性质,例如,矩形窗将信号置零,并且光谱泄漏较大,而汉宁窗和汉明窗具有较小的主瓣宽度和旁瓣衰减。
然后,通过将所选择的窗函数应用于设定的频率响应,可以得到滤波器的时域响应。
通过计算窗函数和所需频率响应的卷积,可以获得数字滤波器的单位样本响应。
其中,卷积可以通过使用快速傅里叶变换(FFT)来高效地计算。
最后,根据所需的滤波器长度,可以对单位样本响应进行截断,从而得到最终的数字滤波器。
通常情况下,滤波器的长度越长,其频域响应和时域响应的性能都越好,但也会导致计算复杂度的增加。
使用MATLAB进行数字滤波器设计是非常方便的。
MATLAB提供了一系列的函数用于滤波器设计,例如fir1、fir2、firpm等。
这些函数可以直接输入截止频率和滤波器类型,然后使用窗函数法来计算滤波器的系数。
在MATLAB中,设计数字滤波器的一般流程如下:1.确定所需滤波器的频率响应,例如低通、高通、带通或带阻。
2.选择合适的窗函数,例如矩形窗、汉宁窗、汉明窗或布莱克曼窗。
3.计算窗函数和所需频率响应的卷积,得到单位样本响应。
4.根据所需的滤波器长度截断单位样本响应,得到最终的数字滤波器。
MATLAB提供了丰富的函数和工具箱,用于数字滤波器设计和滤波器性能分析。
窗函数法设计FIR滤波器
![窗函数法设计FIR滤波器](https://img.taocdn.com/s3/m/41165d9e5122aaea998fcc22bcd126fff7055db9.png)
窗函数法设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,通过一系列有限长度的输入信号进行系统响应的采样,使用窗函数法设计FIR滤波器是一种常用且有效的方法。
设计FIR滤波器的第一步是确定滤波器的阶数。
阶数是指滤波器的长度,通常表示为N。
设计FIR滤波器的第二步是选择滤波器的截止频率。
截止频率决定滤波器的频率响应。
设计FIR滤波器的第三步是选择窗函数。
窗函数是一种平滑函数,用于调整滤波器的频率响应。
常见的窗函数有矩形窗、汉明窗、海明窗等。
矩形窗是最简单的窗函数,没有频率响应调整的效果。
汉明窗是常用的窗函数之一,它可以提供较好的频率响应特性。
海明窗是一种能够提供更优秀频率响应的窗函数。
设计FIR滤波器的第四步是确定窗函数的参数。
这些参数包括主瓣宽度、动态范围、副瓣能量等。
设计FIR滤波器的最后一步是计算滤波器的系数。
滤波器的系数是由输入信号进行线性组合得到的。
通常采用离散频率域设计方法计算FIR滤波器的系数。
该方法通过将滤波器的频率响应与目标响应之间的差异最小化来寻找最佳系数。
具体计算过程包括以下几个步骤:1.设计一个无限长的理想低通滤波器,其频率响应与所需滤波器接近。
2. 使用离散Fourier变换将无限长的理想滤波器转换为有限长的频率响应。
3.选择适当的窗函数,根据窗函数的参数修改频率响应。
4.反变换回时间域,得到FIR滤波器的系数。
设计完滤波器后,可以通过将输入信号与滤波器系数进行卷积运算来获得滤波后的信号。
滤波器系数的选择决定了滤波器的性能。
通常可以通过频率响应、滤波器特性等指标来评估滤波器的性能。
使用窗函数法设计FIR滤波器可以得到满足特定要求的滤波器,其设计过程相对简单,易于实现。
但需要注意的是,窗函数法设计的FIR滤波器在频率响应的过渡区域可能会有较大的波动,需要根据具体应用场景对滤波器参数进行调整。
总之,窗函数法是一种常见且有效的设计FIR滤波器的方法,通过选择合适的窗函数和调整参数,可以得到满足特定要求的滤波器。
MATLAB与窗函数法结合设计FIR数字滤波器的研究
![MATLAB与窗函数法结合设计FIR数字滤波器的研究](https://img.taocdn.com/s3/m/b1692552a9114431b90d6c85ec3a87c240288aff.png)
谢谢观看
数字滤波器的基本原理
数字滤波器的基本原理
数字滤波器是一种通过数字信号处理技术对输入信号进行滤波处理的系统。 它通过一定的算法,对输入信号进行线性或非线性的时间域或频率域处理,以达 到特定的信号特征提取、增强或抑制的效果。FIR数字滤波器是一种离散时间滤 波器,其输出仅与过去的输入有关,具有易于实现、稳定性和线性相位等优点。
MATL AB与窗函数法结合 设计FIR数字滤波器的研究
01 引言
目录
02
数字滤波器的基本原 理
03 MATLAB在数字滤波器 设计中的应用
04
窗函数法在数字滤波 器设计中的应用
05 参考内容
引言
引言
随着数字化时代的到来,数字滤波器在信号处理领域的应用越来越广泛。其 中,FIR(有限冲激响应)数字滤波器因其特有的性质,如易于实现、稳定性和 线性相位等,成为应用最广泛的一种数字滤波器。在设计中,窗函数法作为一种 有效的优化技术,可以降低滤波器的复杂性并提高其性能。本次演示将介绍 MATLAB与窗函数法结合设计FIR数字滤波器的研究,旨在为相关领域的研究和实 践提供有益的参考。
1、简单易行,便于实现; 2、可以根据需要选择不同的窗函数,以满足不同的性能要求;
3、设计的滤波器具有稳定的线 性相位特性。
3、设计的滤波器具有稳定的线性相位特性。
1、设计的滤波器在过渡带可能会有较高的旁瓣水平,导致频率选择性能不够 理想;
2、对于某些窗函数,旁瓣衰减速度较慢,导致滤波器性能下降;
3、对滤波器进行实施:将优化后的系数用于滤波器的实现,可采用直接型、 级联型等不同的结构。
3、对滤波器进行实施:将优化 后的系数用于滤波器的实现
3、对滤波器进行实施:将优化后的系数用于滤波器的实现,可采用 直接型、级联型等不同的结构。
数字滤波器的实现方法
![数字滤波器的实现方法](https://img.taocdn.com/s3/m/197a214602d8ce2f0066f5335a8102d277a26166.png)
数字滤波器是一种在数字信号处理中广泛使用的工具,用于提取、增强或消除特定频率范围的信号。
数字滤波器的实现方法有很多种,以下是其中几种常见的方法:
IIR滤波器:IIR(无限冲激响应)滤波器是一种常用的数字滤波器,它利用反馈结构实现。
IIR滤波器由两个部分组成:一个反馈路径和一个前馈路径。
反馈路径将输出信号的一部分反馈回输入端,前馈路径则将输入信号直接传递到输出端。
通过调整反馈路径和前馈路径的系数,可以实现对特定频率范围的信号进行增强或抑制。
FIR滤波器:FIR(有限冲激响应)滤波器是一种线性相位滤波器,它通过卷积运算实现。
FIR滤波器的输出是输入信号与一组预定义的系数进行卷积的结果。
这些系数可以设计为对特定频率范围的信号进行增强或抑制。
FIR滤波器的优点是相位响应线性,且没有递归结构,因此更加稳定。
窗函数法:窗函数法是一种设计数字滤波器的方法,它通过将窗函数与输入信号进行卷积来实现滤波。
窗函数的选择会影响滤波器的频率响应特性。
常见的窗函数有汉宁窗、海明窗等。
频率采样法:频率采样法是一种通过在频域采样设计数字滤波器的方法。
这种方法通过对频域的特定点进行采样并优化,从而得到滤波器的系数。
最优逼近法:最优逼近法是一种通过最小化某种误差度量来设计数字滤波器的方法。
这种方法可以设计出具有最优性能的数字滤波器。
以上是几种常见的数字滤波器的实现方法,每种方法都有其优点和适用场景。
在实际应用中,需要根据具体需求选择合适的实现方法。
数字信号处理---窗函数法设计FIR滤波器,窗函数选取原则
![数字信号处理---窗函数法设计FIR滤波器,窗函数选取原则](https://img.taocdn.com/s3/m/471c088283d049649b665810.png)
)
)]
W Hm ( ) 0.54W R ( ) 0.23[W R (
2 N 1
) W R (
2 N 1
)]
15 Logo
请加入标题 窗函数介绍
汉明窗
16 Logo
请加入标题 窗函数介绍
汉明窗
主瓣宽度 B m 8 / 23 1.092 -41dB
旁瓣峰值衰减
幅频响应窗函数介绍布莱克曼窗04205cos18频率响应窗函数介绍布莱克曼窗19窗函数介绍布莱克曼窗20主瓣宽度旁瓣峰值衰减57db阻带最小衰减74db精确过渡带12231638231502凯塞窗kaiserwindow窗函数介绍21其中22窗函数介绍23旁瓣峰值衰减57db阻带最小衰减80db精确过渡带1023136524各种窗函数性能比较窗类型主瓣宽度精确过旁瓣峰值衰减db阻带最小衰减db矩形窗18n1321三角窗61n252562n314466n4153布莱克曼窗12n11n577410n5780各种窗函数性能比较克曼窗阻带最小衰减较大凯塞窗的阻带最小衰减最大各窗函数的旁瓣峰值衰减规律与此关系相同
精确过渡带 Bt 6.6 / 23 0.9010 阻带最小衰减 53dB
17 Logo
布莱克曼窗
窗函数介绍
布莱克曼窗(Blankman Window) ,又
称二阶升余弦窗。
w Bl ( n ) [0.42 0.5 cos( 2 n N 1 ) 0.08 cos(
j
4 n N 1
各种窗函数性能比较
窗类型
矩形窗 三角窗
主瓣宽度
精确过
渡带 B t
1.8π/N 6.1π/N
旁瓣峰值
衰减/dB
-13 -25
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.基于矩形窗的FIR数字低通滤波器设计参数如下:主程序:% 基于矩形窗的FIR数字低通滤波器设计wp=2*pi*1.75/15;ws=2*pi*3.25/15w=(wp+ws)/2;N=ceil(4*pi/(ws-wp));n=0:1:(N-1);alpha=(N-1)/2;m=n-alpha+eps;hd=sin(w*m)./(pi*m); %得到理想低通滤波器B=boxcar(N);string=['Boxcar,N=',num2str(N)];h=hd.*(B)'; %得到FIR数字滤波器[H,w]=freqz(h,[1],1024); %求其频率响应db=20*log10(abs(H)+eps); %得到幅值pha=angle(H); %得到相位figure(1);subplot(2,2,1);stem(n,h,'r');axis([0,N-1,-0.1,0.35]);xlabel('n');ylabel('h(n)');title('实际低通滤波器的h(n)');text((0.3*N),0.275,string);subplot(2,2,2);plot(w/pi,db,'r');axis([0,1,-100,5]);xlabel('w/pi');ylabel('dB');title('衰减特性(dB)');grid;subplot(2,2,3);plot(w,pha);hold on;plot(0:4,zeros(5),'k');title('相频特性');xlabel('频率(rad)');ylabel('相位(rad)');axis([0,3.2,-4,4]);subplot(2,2,4);plot(w,abs(H));title('频率特性');xlabel('频率W(rad)');ylabel('幅值');axis([0,3.15,0,1.5]);text(0.9,1.3,string);2.基于矩形窗的带通滤波器的设计参数如下:1/8子程序:function hd=ideal_bs(Wcl,Wch,N)alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=[sin(Wch*m)-sin(Wcl*m)]./(pi*m);function hd=ideal_bs(Wcl,Wch,N)alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=[sin(Wch*m)-sin(Wcl*m)]./(pi*m);主程序:clear all;Wph=2*pi*4.75/15;Wpl=2*pi*2.5/15;Wsl=2*pi/15;Wsh=2*pi*6.25/15;tr_width=min((Wpl-Wsl),(Wsh-Wph)); %过渡带宽度N=ceil(4*pi/tr_width); %滤波器长度n=0:1:N-1;Wcl=(Wsl+Wpl)/2; %理想滤波器的截止频率Wch=(Wsh+Wph)/2;hd=ideal_bs(Wcl,Wch,N); %理想滤波器的单位冲击响应w_ham=(boxcar(N))';string=['矩形窗','N=',num2str(N)];h=hd.*w_ham; %截取取得实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]); %计算实际滤波器的幅度响应subplot(3,2,1);stem(n,hd);title('理想脉冲响应hd(n)')axis([-1,N,-0.5,0.8]);xlabel('n');ylabel('hd(n)');subplot(3,2,2);stem(n,w_ham);axis([-1,N,0,1.1]);xlabel('n');ylabel('w(n)');text(1.5,1.3,string);subplot(3,2,3);stem(n,h);title('实际脉冲响应h(n)');axis([0,N,-1.4,1.4]);xlabel('n');ylabel('h(n)');subplot(3,2,4);plot(w,pha);title('相频特性');axis([0,3.15,-4,4]);xlabel('频率(rad)');ylabel('相位(?)'); subplot(3,2,5);plot(w/pi,db);title('幅度特性(dB)');axis([0,1,-80,10]);xlabel('频率(pi)');ylabel('分贝数');subplot(3,2,6);plot(w,mag);title('频率特性')axis([0,3.15,0,1.5]);xlabel('频率(rad)');ylabel('幅值');2/8fs=15000;t=(0:100)/fs;x=sin(2*pi*t*750)+sin(2*pi*t*5000)+sin(2*pi*t*6100); q=filter(h,1,x); [a,f1]=freqz(x);f1=f1/pi*fs/2;[b,f2]=freqz(q);f2=f2/pi*fs/2;figure(2);subplot(2,1,1);plot(f1,abs(a));title('输入波形频谱图');xlabel('频率');ylabel('幅度')subplot(2,1,2);plot(f2,abs(b));title('输出波形频谱图');xlabel('频率');ylabel('幅度')3.基于矩形窗的FIR数字带阻滤波器设计参数:图片加载失败点击图片重新加载主程序:clear all;Wph=2*pi*6.25/15;Wpl=2*pi/15;Wsl=2*pi*2.5/15;Wsh=2*pi*4.75/15;tr_width=min((Wsl-Wpl),(Wph-Wsh));%过渡带宽度N=ceil(4*pi/tr_width);%滤波器长度n=0:1:N-1;Wcl=(Wsl+Wpl)/2;%理想滤波器的截止频率Wch=(Wsh+Wph)/2;hd=ideal_bs(Wcl,Wch,N);%理想滤波器的单位冲击响应w_ham=(boxcar(N))';string=['矩形窗','N=',num2str(N)];h=hd.*w_ham;%截取取得实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]);%计算实际滤波器的幅度响应delta_w=2*pi/1000;subplot(3,2,1);stem(n,hd);title('理想脉冲响应hd(n)')axis([-1,N,-0.5,0.8]);xlabel('n');ylabel('hd(n)');subplot(3,2,2);stem(n,w_ham);axis([-1,N,0,1.1]);3/8xlabel('n');ylabel('w(n)');text(1.5,1.3,string);subplot(3,2,3);stem(n,h);title('实际脉冲响应h(n)');axis([0,N,-1.4,1.4]);xlabel('n');ylabel('h(n)');subplot(3,2,4);plot(w,pha);title('相频特性');axis([0,3.15,-4,4]);xlabel('频率(rad)');ylabel('相位(Φ)'); subplot(3,2,5);plot(w/pi,db);title('幅度特性(dB)');axis([0,1,-80,10]);xlabel('频率(pi)');ylabel('分贝数'); subplot(3,2,6);plot(w,mag);title('频率特性')axis([0,3,0,2]);xlabel('频率(rad)');ylabel('幅值');fs=15000;t=(0:100)/fs;x=sin(2*pi*t*750)+sin(2*pi*t*3000)+sin(2*pi*t*6100);q=filter(h,1,x);[a,f1]=freqz(x);f1=f1/pi*fs/2;[b,f2]=freqz(q);f2=f2/pi*fs/2;figure(2);subplot(2,1,1);plot(f1,abs(a));title('输入波形频谱图');xlabel('频率');ylabel('幅度')subplot(2,1,2);plot(f2,abs(b));title('输出波形频谱图');xlabel('频率');ylabel('幅度');调用程序1:function hd=ideal_bs(Wcl,Wch,m);alpha=(m-1)/2;n=[0:1:(m-1)];m=n-alpha+eps;hd=[sin(m*pi)+sin(Wcl*m)-sin(Wch*m)]./(pi*m)调用程序2:function[db,mag,pha,w]=freqz_m2(b,a)[H,w]=freqz(b,a,1000,'whole');H=(H(1:1:501))'; w=(w(1:1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);。