用窗函数法设计FIR数字滤波器
(整理)FIR数字滤波器的(海明)窗函数法设计.

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滤波器系统函数。
实验三 窗函数法设计FIR数字滤波器

h(n) hd (n) w(n)
h(n) 就作为实际设计的FIR数字滤波器的单
位脉冲响应序列,其频率响应函数H (e
H (e ) h(n)e jwn
jw n 0 N 1
jw
)
为
式中,N为所选窗函数 w(n) 的长度(阶数)。
如果要求线性相位特性,则h(n) 还必须满足:
p
s s
调用格式: w=boxcar(n),根据长度 n 产生一个矩形窗 w。 (2)三角窗(Triangular Window) 调用格式: w=triang(n),根据长度 n 产生一个三角窗 w。 (3)汉宁窗(Hanning Window) 调用格式: w=hanning(n),根据长度 n 产生一个汉宁窗 w。 (4)海明窗(Hamming Window) 调用格式: w=hamming(n),根据长度 n 产生一个海明窗 w。 (5)布拉克曼窗(Blackman Window) 调用格式: w=blackman(n),根据长度 n 产生一个布拉克曼窗 w。 (6)恺撒窗(Kaiser Window) 调用格式: w=kaiser(n,beta),根据长度 n 和影响窗函数旁瓣的β参数产 生一个恺撒窗w。
例2、 设计线性相位带通滤波器,其长度 N=15,上下边带截止频率分别为W1= 0.3π, W2=0.5π
Window=blackman(16); b=fir1(15,[0.3 0.5],Window); freqz(b,1)
例3 、用窗函数法设计一FIR带通滤波 器:
阻带下截止频率: ls 0.2
[h,w] = freqz(hd,n):离散系统频响特 性
abs(X) :绝对值(复数的幅值) P = angle(Z) :相位角 text(x,y,‘s’):在图面(x,y)位置 处书写字符注释。
实验7 窗函数法设计FIR数字滤波器

实验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课程设计》报告目录摘要 (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数字低通滤波器的(汉宁)窗函数法设计

)(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滤波器

实验四用窗函数设计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滤波器分析解析一、引言数字滤波器是数字信号处理中的重要组成部分。
滤波器可以用于去除噪声、调整频率响应以及提取感兴趣的信号。
有许多方法可以设计数字滤波器,包括窗函数法、频域法和优化法等。
本实验将重点介绍窗函数法设计FIR滤波器的原理和过程。
二、窗函数法设计FIR滤波器窗函数法是设计FIR滤波器的一种常用方法。
其基本原理是将滤波器的频率响应与理想滤波器的频率响应进行乘积。
理想滤波器的频率响应通常为矩形函数,而窗函数则用于提取有限长度的理想滤波器的频率响应。
窗函数的选择在FIR滤波器的设计中起着重要的作用。
常用的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
对于每种窗函数,都有不同的特性和性能指标,如主瓣宽度、副瓣抑制比等。
根据不同的应用需求,可以选择合适的窗函数。
窗函数法设计FIR滤波器的具体步骤如下:1.确定滤波器的阶数N。
阶数N决定了滤波器的复杂度,一般情况下,阶数越低,滤波器的简单度越高,但频率响应的近似程度也会降低。
2.确定滤波器的截止频率。
根据应用需求,确定滤波器的截止频率,并选择合适的窗函数。
3.根据窗函数长度和截止频率计算理想滤波器的频率响应。
根据所选窗函数的特性,计算理想滤波器的频率响应。
4.根据理想滤波器的频率响应和窗函数的频率响应,得到所需的FIR滤波器的频率响应。
将理想滤波器的频率响应与窗函数的频率响应进行乘积,即可得到所需滤波器的频率响应。
5.对所得到的频率响应进行逆傅里叶变换,得到时域的滤波器系数。
6.实现滤波器。
利用所得到的滤波器系数,可以通过卷积运算实现滤波器。
三、实验结果与分析本实验以Matlab软件为平台,利用窗函数法设计了一个低通滤波器。
滤波器的阶数为16,截止频率为500Hz,采样频率为1000Hz,选择了汉宁窗。
根据上述步骤,计算得到了所需的滤波器的频率响应和时域的滤波器系数。
利用这些系数,通过卷积运算,实现了滤波器。
为了验证滤波器的性能,将滤波器应用于输入信号,观察输出信号的变化。
实验六用窗函数设计FIR滤波器

实验六用窗函数设计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滤波器窗函数法是一种常用的数字滤波器设计方法,特别是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 数字滤波器一、实验目的:1.掌握用窗函数法设计FIR 数字滤波器的原理和方法 2.熟悉线性相位FIR 数字滤波器特性。
3.了解各种窗函数对滤波特性的影响。
二、实验原理线性相位特点在实际应用中非常重要,如在数据通信、图像处理、语音信号处理等领域,往往要求系统具有线性相位特性,因而常采用容易设计成线性相位的有限冲激响应FIR 数字滤波器来实现。
1. 常用窗函数:1) 矩形窗10[]0k M w k ≤≤⎧=⎨⎩其他〔5.21〕 2) Hann 〔汉纳〕窗0.5-0.5cos(2/)0[]0k M k M w k π≤≤⎧=⎨⎩其他〔5.22〕3) Hamming 〔汉明〕窗 0.54-0.46cos(2/)0[]0k M k M w k π≤≤⎧=⎨⎩其他〔5.23〕4) Blackman 〔布莱克曼〕窗 0.42-0.5cos(2/)0.08cos(4/)0[]0k M k M k M w k ππ+≤≤⎧=⎨⎩其他〔5.24〕 5) Kaiser 〔凯泽〕窗0[]0w k k M =≤≤〔5.25〕 其中2201(/2)()1!n x I x n ∞=⎡⎤=+⎢⎥⎣⎦∑ 下面介绍用窗函数设计FIR 滤波器的步骤:a) 根据技术要求确定待求滤波器的单位取样响应[]d h k 。
b) 根据对过渡带和阻带衰减的要求,选择窗函数的形式,并估计窗函数长度/N A w ≈∆,A 决定于窗口的形式,w ∆表示滤波器的过渡带。
c) 利用选好的窗函数计算滤波器的单位取样响应[][][]d h k h k w k =。
d) 验算技术指标是否满足要求。
设计出来的滤波器的频率响应用10()[]N j j n n H e h k e -Ω-Ω==∑来计算。
2. Matlab 数字信号处理工具箱中常用的FIR 数字滤波器设计函数hanning 汉纳窗函数。
hamming 汉明窗函数。
blackman 布莱克曼窗函数。
用窗函数法设计FIR滤波器_C++程序

float ino(float x); void cfft(float x[],float y[],int M,int N,int lc); void plot(float h[],int n,int color); int pow2(int k); void main() { float hd[NFFT],h[NFFT],w[NFFT],wc,pi,him[NFFT],R[NFFT]; float a,b,beta,bes,g,q,p,wf; int m,n,k,i; char ch; printf("this is a fir system design program.\n"); printf(" m represents window function.\n"); printf(" 1........rectangular window function.\n"); printf(" 2........kaiser window function.\n"); loop:printf("choose m, m is 1 or 2\n m=\n"); scanf("%d",&m); printf("choose window length n ...21,51,101,201.\n n=\n"); scanf("%d",&n); printf("choose wc,wc is between 0.1 to 0.99\n wc=\n"); scanf("%f",&wc); a=(n-1)/2; pi=4.0*atan(1.0); for(i=0;i<n;i++) { if(i==a) hd[i]=wc; else {b=i-a; hd[i]=sin(pi*b*wc)/(pi*b);} } switch(m)
用窗函数法设计FIR数字滤波器

用窗函数法设计FIR 数字滤波器一、实验目的1、加深对窗函数法设计FIR 数字滤波器的基本原理的理解2、学习用MATLAB 语言的窗函数法编写设计FIR 数字滤波器的程序3、了解MATLAB 有关窗函数法设计的常用子函数二、实验涉及的MATLAB 子函数1、boxcar :矩形窗2、triang :三角窗3、bartlett :巴特利特窗4、hamming :哈明窗5、hanning :汉宁窗6、blackman :布莱克曼窗7、chebwin :切比雪夫窗8、kaiser :凯瑟窗9、firl :基于窗函数的FIR 数字滤波器设计——标准频率响应,以经典方法实现加窗线性相位FIR 滤波器设计,可设计出标准的低通、带通、高通和带阻滤波器。
三、实验原理1、运用窗函数法设计FIR 数字滤波器 FIR 数字滤波器的系统函数为ωN-1-n n=0H(z)=h(n)z ∑N-1-n n=0H(z)=h(n)z ∑这个公式也可以看成是离散LSI 系统的系统函数M-m-1-2-m mm=0012m N -1-2-k-k12k k k=1bz b +b z +b z ++b z Y(z)b(z)H(z)====X(z)a(z)1+a z +a z ++a z1+a z ∑∑ 分母a 0为1,其余a k 全都为0时的一个特例。
由于极点全部集中在零点,稳定和线性相位特性是FIR 滤波器的突出优点,因此在实际中广泛使用。
FIR 滤波器的设计任务是选择有限长度的h(n),使传输函数H(e jw )满足技术要求。
用窗函数法设计FIR 数字滤波器的基本步骤是:1)根据过渡带和阻带衰减设计指标选择窗函数类型,估算滤波器的阶数N ; 2)由数字滤波器的理想频率响应H(e jw )求出其单位冲击响应h d (n)。
2、各种窗函数特性的比较窗函数 旁瓣峰值/dB 近似过渡带宽 精确过渡带宽阻带最小衰减/dB矩形窗 -13 4/N π 1.8/N π 21 三角形窗 -25 8/N π 6.1/N π 25 汉宁窗 -31 8/N π 6.2/N π 44 哈明窗 -41 8/N π 6.6/N π 53 布莱克曼窗 -57 12/N π11/N π 74 凯塞窗-5710/N π803、用窗函数设计FIR 数字低通滤波器4、用窗函数法设计FIR 数字高通滤波器5、用窗函数法设计FIR 数字带通滤波器6、用窗函数法设计FIR 数字带阻滤波器四、实验内容选择合适的窗函数设计FIR 数字低通滤波器,要求:通带ωp =0.2π,Rp=0.05dB ;阻带ωs =0.3π,As=40dB 。
(完整word版)用窗函数法设计FIR数字滤波器

用窗函数法设计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 滤波器分成四类。
用窗函数设计FIR数字滤波器

目录1基本原理 (2)1.1设计hd(n) (2)1.2窗函数 (3)1.2.1矩形窗(Rectangle Window) (3)1.2.2三角形窗(Bartlett Window) (3)1.2.3布莱克曼(Blankman)窗 (3)1.2.4窗函数表格 (4)2课设题目 (4)2.1第一题 (4)2.2第二题 (5)2.2第三题 (6)3.心得体会 (7)参考文献 (8)1基本原理1.1设计hd(n)设计低通FIR数字滤波器,寻求一系统函数H(z),使其频率响应逼近滤波器要求的理想频率响应,其对应的单位脉冲响应Hd(n)其它为零(1.1)其中 =(N-1)/2如果所希望的滤波器的理想的频率响应函数为,则其对应的单位脉冲响应为(1.2)窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼近hd(n)。
由于hd(n)往往是无限长序列,而且是非因果的,所以用窗函w(n)将hd(n)截断,并进行加权处理,得到:w(n)hd(n)(1.3)h(n)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数:(1.4)式中,N为所选窗函数w(n)的长度。
1.2窗函数1.2.1矩形窗(Rectangle Window)其频率响应和幅度响应分别为:(1.6)1.2.2三角形窗(Bartlett Window)(1.7)其频率响应和幅度响应分别为:(1.8)1.2.3布莱克曼(Blankman)窗(1.9)其幅度响应:.(1.10)我们知道,用窗函数法设计的滤波器性能取决于窗函数我w(n)的类型及窗口长度的取值。
设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数和窗口长度N 。
各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见下表11.2.4窗函数表格窗函数旁瓣峰值幅度/dB 过渡带宽阻值最小衰减/dB-12矩形窗-134-25三角窗-258-44汉宁窗-318-53哈明窗-418-74布莱克曼窗-5712-80凯塞窗-5710表格 1.12课设题目2.1第一题1.用矩形窗设计一个FIR线性相位数字低通滤波器,已知Wc=0.5。
实验四--FIR数字滤波器设计与软件实现

&实验四 FIR数字滤波器设计与软件实现1.实验目的(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。
(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。
(3)掌握FIR滤波器的快速卷积实现原理。
(4)学会调用MATLAB函数设计与实现FIR滤波器。
2.实验内容及步骤'(1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;(2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图所示;图具有加性噪声的信号x(t)及其频谱如图(3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于,将噪声频谱衰减60dB。
先观察xt的频谱,确定滤波器指标参数。
(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。
并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。
绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。
(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord 和remez设计FIR数字滤波器。
并比较两种设计方法设计的滤波器阶数。
提示:○1MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本书第7章和第8章;*○2采样频率Fs=1000Hz,采样周期T=1/Fs;○3根据图和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止频率p 20.24pfωπ=T=π,通带最大衰为,阻带截至频率s 20.3sfωπ=T=π,阻带最小衰为60dB。
]○4实验程序框图如图所示,供读者参考。
图实验程序框图;3.信号产生函数xtg程序清单function xt=xtg(N)%实验五信号x(t)产生,并显示信号的幅频特性曲线%xt=xtg(N) 产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz.N=2000;Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;'fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10;mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt,频率为f0ct=cos(2*pi*fc*t); %产生载波正弦波信号ct,频率为fcxt=mt.*ct; %相乘产生单频调制信号xtnt=2*rand(1,N)-1; %产生随机噪声nt%=======设计高通滤波器hn,用于滤除噪声nt中的低频成分,生成高通噪声======= fp=150; fs=200;Rp=;As=70; % 滤波器指标fb=[fp,fs];m=[0,1]; % 计算remezord函数所需参数f,m,dev (dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数hn=remez(n,fo,mo,W); % 调用remez函数进行设计,用于滤除噪声nt中的低频成分yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,生成高通噪声yt%================================================================xt=xt+yt; %噪声加信号fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');(axis([0,Tp/5,min(xt),max(xt)]);title('(a) 信号加噪声波形')subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b) 信号加噪声的频谱')axis([0,Fs/2,0,]);xlabel('f/Hz');ylabel('幅度')4、滤波器参数及实验程序清单1)、滤波器参数选取根据节实验指导的提示③选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz。
窗函数法设计FIR滤波器

窗函数法设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,通过一系列有限长度的输入信号进行系统响应的采样,使用窗函数法设计FIR滤波器是一种常用且有效的方法。
设计FIR滤波器的第一步是确定滤波器的阶数。
阶数是指滤波器的长度,通常表示为N。
设计FIR滤波器的第二步是选择滤波器的截止频率。
截止频率决定滤波器的频率响应。
设计FIR滤波器的第三步是选择窗函数。
窗函数是一种平滑函数,用于调整滤波器的频率响应。
常见的窗函数有矩形窗、汉明窗、海明窗等。
矩形窗是最简单的窗函数,没有频率响应调整的效果。
汉明窗是常用的窗函数之一,它可以提供较好的频率响应特性。
海明窗是一种能够提供更优秀频率响应的窗函数。
设计FIR滤波器的第四步是确定窗函数的参数。
这些参数包括主瓣宽度、动态范围、副瓣能量等。
设计FIR滤波器的最后一步是计算滤波器的系数。
滤波器的系数是由输入信号进行线性组合得到的。
通常采用离散频率域设计方法计算FIR滤波器的系数。
该方法通过将滤波器的频率响应与目标响应之间的差异最小化来寻找最佳系数。
具体计算过程包括以下几个步骤:1.设计一个无限长的理想低通滤波器,其频率响应与所需滤波器接近。
2. 使用离散Fourier变换将无限长的理想滤波器转换为有限长的频率响应。
3.选择适当的窗函数,根据窗函数的参数修改频率响应。
4.反变换回时间域,得到FIR滤波器的系数。
设计完滤波器后,可以通过将输入信号与滤波器系数进行卷积运算来获得滤波后的信号。
滤波器系数的选择决定了滤波器的性能。
通常可以通过频率响应、滤波器特性等指标来评估滤波器的性能。
使用窗函数法设计FIR滤波器可以得到满足特定要求的滤波器,其设计过程相对简单,易于实现。
但需要注意的是,窗函数法设计的FIR滤波器在频率响应的过渡区域可能会有较大的波动,需要根据具体应用场景对滤波器参数进行调整。
总之,窗函数法是一种常见且有效的设计FIR滤波器的方法,通过选择合适的窗函数和调整参数,可以得到满足特定要求的滤波器。
用窗函数法设计FIR滤波器

c
W R (
- )
c
=
c
c
-
W R (
2π N
- )
=
c
W R (
- )
=
c
+
2π N
0 .0 8 9 5
0 .0 4 6 8
0 .5
-
c 0 .0 8
95
0 .0 4 6 8
-
2π N
c
+
2π N
WR(ω)主瓣宽度为4π/N, 主瓣为原点两边第一个过零点间的区域
将理想低通的频率响应也写成
Hd(ej)Hd( )ejN21
c+
2π N
0 .0 8 9 5
0 .5
0 .0 4 6 8
c - 0 .0 8 9 5
0 .0 4 6 8
2π N
WR(ω-θ)右旁瓣进入Hd(θ)通带,使H(ω)围绕H(0)值而波动
11
第15讲 有限长单位脉冲响应
▪ 复卷积过程 H ()2 1 H d()W R()d
5)ω=ωc+2π/N时的响应H(ωc+2π/N)
= c
W R ( - )
c-
2π N
= c -
2π N
W R ( - )
= c+
c+
2π N
0 .0 8 9 5
0 .5
0 .0 4 6 8
c
- 0 .0 8 9 5
0 .0 4 6 8
H d ( )
2π N
(a ) (b ) (c ) (d )
-
- c
o
-
2 / N
o H d ( )
2)ω=ωc时的响应H(ωc)
数字信号处理---窗函数法设计FIR滤波器,窗函数选取原则

)
)]
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)。
实验五 用窗函数法设计FIR 数字滤波器一、实验目的:1. 掌握用窗函数法设计FIR 数字滤波器的原理和方法2. 熟悉线性相位FIR 数字滤波器特性。
3. 了解各种窗函数对滤波特性的影响。
二、实验原理线性相位特点在实际应用中非常重要,如在数据通信、图像处理、语音信号处理等领域,往往要求系统具有线性相位特性,因而常采用容易设计成线性相位的有限冲激响应FIR 数字滤波器来实现。
1. 常用窗函数:1) 矩形窗10[]0k M w k ≤≤⎧=⎨⎩其他 (5.21) 2) Hann (汉纳)窗0.5-0.5cos(2/)0[]0k M k M w k π≤≤⎧=⎨⎩其他 (5.22)3) Hamming (汉明)窗0.54-0.46cos(2/)0[]0k M k M w k π≤≤⎧=⎨⎩其他 (5.23) 4) Blackman (布莱克曼)窗0.42-0.5cos(2/)0.08cos(4/)0[]0k M k M k M w k ππ+≤≤⎧=⎨⎩其他 (5.24) 5) Kaiser (凯泽)窗0[]0w k k M =≤≤ (5.25) 其中2201(/2)()1!n x I x n ∞=⎡⎤=+⎢⎥⎣⎦∑ 下面介绍用窗函数设计FIR 滤波器的步骤:a) 根据技术要求确定待求滤波器的单位取样响应[]d h k 。
b) 根据对过渡带和阻带衰减的要求,选择窗函数的形式,并估计窗函数长度/N A w ≈∆,A 决定于窗口的形式, w ∆表示滤波器的过渡带。
c) 利用选好的窗函数计算滤波器的单位取样响应[][][]d h k h k w k =。
d) 验算技术指标是否满足要求。
设计出来的滤波器的频率响应用10()[]N j j n n H e h k e -Ω-Ω==∑来计算。
2. Matlab 数字信号处理工具箱中常用的FIR 数字滤波器设计函数hanning 汉纳窗函数。
hamming 汉明窗函数。
blackman 布莱克曼窗函数。
kaiser 凯泽窗函数。
kaiserord 凯泽窗函数设计法的阶数估计。
fir1 窗函数法FIR 数字滤波器设计:低通、高通、带通、带阻、多频率滤波。
fir2 频率抽样法FIR 数字滤波器设计:任意频率响应。
三、实验内容1. 分别用矩形窗、hann 窗,hamming 窗设计一个阶数为9的FIR 低通数字滤波器,截止频率3c rad πΩ=。
1) 画出各种方法设计的数字滤波器的单位脉冲响应。
2) 画出它们的幅频响应,并比较各滤波器的通带纹波和阻带纹波,有何结论?3) 若当输入[]12cos()cos()42x k k k ππ=++,计算各滤波器的输出并画出其波形。
程序过程:clc;clear all ;%阶数为M=9,数字截止频率为 pi/3;设计II 型低通线性相位滤波器M=9;Wc=pi/3;k=0:M;hd=Wc*sinc(Wc*(k-0.5*M))/pi;xk=1+2*cos(pi*k/4)+cos(pi*k/2);figure(1);%以下是矩形窗截断wk=ones(1,M+1);hk=hd.*wk;[H,w]=freqz(hk,1);subplot(311);stem(k,hk,'.');title('矩形窗截断的单位脉冲响应');%以下是hann 窗截断wk=hanning(M+1);hk=hd.*wk';[H,w]=freqz(hk,1);subplot(312);stem(k,hk,'.');title('hanniing 窗截断的单位脉冲响应');%以下是hamming 窗截断wk=hamming(M+1);hk=hd.*wk';[H,w]=freqz(hk,1);subplot(313);stem(k,hk,'.');title('hamming窗截断的单位脉冲响应');figure(2);%以下是矩形窗截断wk=ones(1,M+1);hk=hd.*wk;[H,w]=freqz(hk,1); subplot(311);plot(w,20*log10(abs(H)));grid;title('矩形窗截断的幅频响应');%以下是hann窗截断wk=hanning(M+1);hk=hd.*wk';[H,w]=freqz(hk,1); subplot(312);plot(w,20*log10(abs(H)));grid;title('hanniing窗截断的幅频响应');%以下是hamming窗截断wk=hamming(M+1);hk=hd.*wk';[H,w]=freqz(hk,1); subplot(313);plot(w,20*log10(abs(H)));grid;title('hamming窗截断的幅频响应');figure(3);subplot(221);stem(k,xk,'.');title('输入x[k]');%以下是矩形窗截断wk=ones(1,M+1);hk=hd.*wk;subplot(222);stem(k,xk.*hk,'.');title('矩形窗滤波后输出');%以下是hann窗截断wk=hanning(M+1);hk=hd.*wk';subplot(223);stem(k,xk.*hk,'.');title('hanniing窗滤波后输出');%以下是hamming窗截断wk=hamming(M+1);hk=hd.*wk';subplot(224);stem(k,xk.*hk,'.');title('hamming窗滤波后输出');(1) (2)(3)2. 分别用blackman 窗和kaiser 窗法设计一个满足下列指标的线性相位的FIR 低通滤波器0.4,0.5,0.6,45p p s s rad A dB rad A dB ππΩ=≤Ω=≥,画出所设计的滤波器的幅频响应。
简单评述两种窗的设计结果。
实现过程: %分别用blackman 窗和kaiser 窗法设计一个满足下列指标的线性相位的FIR 低通滤波器clc;clear all ;Wp=0.4*pi;Ws=0.6*pi;Ap=0.5;As=45;Wc=(Wp+Ws)/2;%Blackman 窗的近似过渡带宽度为11.4pi/N ;窗函数的长度NN=ceil(11.4*pi/(Ws-Wp));% N=58,滤波器阶次 M=N-1=57 可以设计II 型低通线性相位系统M=N-1;k=0:M;hd=Wc*sinc(Wc*(k-0.5*M))/pi;wk=blackman(N);hk=hd.*wk';[H,w]=freqz(hk,1);subplot(211);plot(w/pi,20*log10(abs(H)));grid;xlabel('Normalized frequency');ylabel('Gain in dB');title('blackman 窗设计的FIR 滤波器');%kaiser 窗设计subplot(212);f=[Wp/pi,Ws/pi];a=[1,0];dev=[1-10^(-0.05*Ap),10^(-0.05*As)];[M1,Wc1,beta,ftype]=kaiserord(f,a,dev);wk1=kaiser(M1+1,beta);hk1=fir1(M1,Wc1,ftype,wk1);[H1,w1]=freqz(hk1,1);plot(w1/pi,20*log10(abs(H1)));grid;xlabel('Normalized frequency');ylabel('Gain in dB');title('kaiser 窗设计的FIR 滤波器');比较:kaiser 窗的过渡带较长,在阻带的衰减波动逐渐减小;利用blackman 窗设计出的低通滤波器阻带衰减最大。
3. 用频率取样法设计一个44M =的Ⅰ型线性相位带通FIR 滤波器。
带通滤波器的通带截止频率分别为120.3,0.5p p rad rad ππΩ=Ω=。
%用频率取样法设计一个 M=44 的Ⅰ型线性相位带通FIR 滤波器。
%带通滤波器的通带截止频率分别为clc;clear all ;Wp1=0.3*pi;Wp2=0.5*pi;M=44;m=0:M/2;Wm=2*pi.*m/(M+1);%设计理想滤波器的幅度函数 Ad[m]mtr1=floor(Wp2*(M+1)/(2*pi))+2;Ad1=double([Wm<=Wp2]);mtr2=ceil(Wp1*(M+1)/(2*pi));Ad2=double([Wp1<=Wm]);Ad=Ad1.*Ad2;Ad(mtr1)=0.38;Ad(mtr2)=0.28;Hd_1=Ad.*exp(-j*Wm*M/2);Hd_2=conj(fliplr(Hd_1(2:M/2)));Hd=[Hd_1,Hd_2];hk=real(ifft(Hd));w=linspace(0,pi,1000);H=freqz(hk,1,w);%归一化频率下的幅频响应plot(w/pi,abs(H));grid;xlabel('Normalized frequency');ylabel('Gain in dB');title('频率取样法设计的FIR 滤波器');4. 已知理想低通滤波器为1()0c c j d H e others Ω-Ω≤Ω≤Ω⎧=⎨⎩,矩形窗函数[][]N N w k R k = 1) 求理想低通滤波器的单位脉冲响应[]d h k ,并画出[]d h k 。
2) 当16N =时,画出矩形窗函数的幅频响应()j W eΩ。
3) [][][]d N h k h k w k =,画出加窗处理以后的低通滤波器[]h k 的幅频响应()j H e Ω。
实现过程:clc;clear all ;OmegaC=0.5*pi;M=15;k=0:M;hd=OmegaC*sinc(OmegaC*(k-0.5*M))/pi;subplot(311);stem(k,hd,'.');grid;title('理想低通滤波器的单位脉冲响应');wk=ones(1,M+1);w=linspace(-pi,pi,1000);Wm=freqz(wk,1,w);subplot(312);plot(w/pi,abs(Wm));grid;title('矩形窗函数的幅频响应 N=16');hk=hd.*wk;w=linspace(-pi,pi,1000);H=freqz(hk,1,w);subplot(313);plot(w/pi,abs(H));grid;title('加窗处理以后的低通滤波器的幅频响应');四、思考题1.FIR滤波器是否需要考虑稳定性问题?为什么?答:不需要;FIR滤波器的单位脉冲响应是有限长的,系统总是稳定的2.窗函数法和频率抽样法的优缺点是什么?答:窗函数法是利用有限长的单位脉冲响应h[k] 逼近无限长的理想滤波器的hd[k] ,从而使设计的FIR滤波器的频率响应逼近理想滤波器的频率响应频率取样法是使设计的M阶FIR滤波器的频率响应在M+1 个取样点上与理想滤波器的频率响应相等,不足的是设计出的FIR滤波器的幅度函数在通带边界存在过冲,在阻带也有较大波动。