用窗函数法设计FIR数字滤波器
实验三 窗函数法设计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)位置 处书写字符注释。
FIR数字低通滤波器的(汉宁)窗函数法设计
语音信号的数字滤波——FIR数字滤波器的(汉宁)窗函数法设计设计题目:语音信号的数字滤波——FIR数字滤波器的(汉宁)窗函数法设计一、课程设计的目的通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;掌握利用数字滤波器对信号进行滤波的方法。
并能够对设计结果加以分析。
二、设计步骤2.1窗函数设计法的原理窗函数的基本思想:先选取一个理想滤波器(它的单位抽样响应是非因果、无限长的),再截取(或加窗)它的单位抽样响应得到线性相位因果FIR滤波器。
这种方法的重点是选择一个合适的窗函数和理想滤波器。
设x(n)是一个长序列,是长度为N的窗函数,用截断,得到N点序列,即在频域上则有由此可见,窗函数不仅仅会影响原信号在时域上的波形,而且也会影响到频域内的形状。
2.2汉宁窗函数简介汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表示,这就是广义余弦窗。
这些窗都是广义余弦窗的特例,汉宁(Hanning)窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,或者说是 3个 sinc(t)型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了π/T,从而使旁瓣互相抵消,消去高频干扰和漏能。
适用于非周期性的连续信号。
公式如下:2.3进行语音信号的采集(1)按“开始”-“程序”-“附件”-“娱乐”-“录音机”的顺序操作打开Windows系统中的录音机软件。
如图1所示。
图1 windows录音机(2)用麦克风录入自己的声音信号并保存成wav文件。
如图2所示。
图2 保存文件保存的文件按照要求如下:1 音信号文件保存的文件名为“yuxuejiao.wav”。
②语音信号的属性为“8.000KHz,8位,单声道 7KB/秒” ,其它选项为默认。
plot(k(1:20000)*1,abs(S1(1:20000)));title('预处理语音信号单边带频谱')在m文件编辑器中输入相应的指令将自己的语音信号导入Matlab工作台,点击“run”或者“F5”运行文件。
用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(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滤波器_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滤波器设计与实现实验报告目录一、实验概述 (2)1. 实验目的 (3)2. 实验原理 (3)3. 实验设备与工具 (4)4. 实验内容与步骤 (6)5. 实验数据与结果分析 (7)二、FIR滤波器设计 (8)1. 滤波器设计基本概念 (9)2. 系数求解方法 (10)频谱采样法 (11)最小均方误差法 (14)3. 常用FIR滤波器类型 (15)线性相位FIR滤波器 (16)非线性相位FIR滤波器 (18)4. 设计实例与比较 (19)三、FIR滤波器实现 (20)1. 硬件实现基础 (21)2. 软件实现方法 (22)3. 实现过程中的关键问题与解决方案 (23)4. 滤波器性能评估指标 (25)四、实验结果与分析 (26)1. 实验数据记录与处理 (27)2. 滤波器性能测试与分析 (29)通带波动 (30)虚部衰减 (31)相位失真 (32)3. 与其他设计方案的对比与讨论 (33)五、总结与展望 (34)1. 实验成果总结 (35)2. 存在问题与不足 (36)3. 未来发展方向与改进措施 (37)一、实验概述本次实验的主要目标是设计并实现一个有限脉冲响应(Finite Impulse Response,简称FIR)滤波器。
FIR滤波器是数字信号处理中常用的一种滤波器,具有线性相位响应和易于设计的优点。
本次实验旨在通过实践加深我们对FIR滤波器设计和实现过程的理解,提升我们的实践能力和问题解决能力。
在实验过程中,我们将首先理解FIR滤波器的基本原理和特性,包括其工作原理、设计方法和性能指标。
我们将选择合适的实验工具和环境,例如MATLAB或Python等编程环境,进行FIR滤波器的设计。
我们还将关注滤波器的实现过程,包括代码编写、性能测试和结果分析等步骤。
通过这次实验,我们期望能够深入理解FIR滤波器的设计和实现过程,并能够将理论知识应用到实践中,提高我们的工程实践能力。
本次实验报告将按照“设计原理设计方法实现过程实验结果与分析”的逻辑结构进行组织,让读者能够清晰地了解我们实验的全过程,以及我们从中获得的收获和启示。
实验四 窗函数法设计FIR数字滤波器
实验四 窗函数法设计FIR 数字滤波器一、实验目的1、掌握窗函数法设计FIR 数字滤波器的原理及具体方法。
2、掌握频率取样法设计FIR 数字滤波器的原理和基本方法。
3、学习利用窗函数法和频率取样法设计低通、带通、高通、带阻数字滤波器。
二、实验环境计算机、MATLAB 软件 三、实验基础理论窗函数设计FIR 滤波器 1.基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器()j d H e ω,然后用窗函数截取它的单位脉冲响应(n)d h ,得到线性相位和因果的FIR 滤波器。
这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。
2.设计步骤(1)给定理想滤波器的频率响应()j d H e ω,在通带上具有单位增益和线性相位,在阻带上具有零响应。
一个带宽为()c c ωωπ<的低通滤波器由下式给定:πωωωωωωω≤<=≤=-||,0)(,||,)(c j d c ja j d e H e e H其中α为采样延迟,其作用是为了得到一个因果系统。
(2)确定这个滤波器的单位脉冲响应)())(sin()(a n a n n h c d --=πω为了得到一个(n)h 长度为N 的因果的线性相位FIR 滤波器,我们令21-=N a (3)用窗函数截取(n)d h 得到所设计FIR 数字滤波器:)()()(n R n h n h N d = 3.窗函数的选择常用的窗函数有矩形(Rectangular )窗,汉宁(Hanning )窗,海明(Hamming )窗、布莱克曼(Blackman )窗、凯瑟(Kaiser )窗等表4-1 MATLAB 中产生窗函数的命令表4-2 常用窗函数的特性00()[]I n I ωβ⎡⎢⎣⎦=其中[]0I x 是修正的零阶贝塞尔函数,参数β控制最小阻带衰减,这种窗函数对于相同的N 可以提供不同的过渡带宽。
窗函数法设计FIR滤波器
窗函数法设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,通过一系列有限长度的输入信号进行系统响应的采样,使用窗函数法设计FIR滤波器是一种常用且有效的方法。
设计FIR滤波器的第一步是确定滤波器的阶数。
阶数是指滤波器的长度,通常表示为N。
设计FIR滤波器的第二步是选择滤波器的截止频率。
截止频率决定滤波器的频率响应。
设计FIR滤波器的第三步是选择窗函数。
窗函数是一种平滑函数,用于调整滤波器的频率响应。
常见的窗函数有矩形窗、汉明窗、海明窗等。
矩形窗是最简单的窗函数,没有频率响应调整的效果。
汉明窗是常用的窗函数之一,它可以提供较好的频率响应特性。
海明窗是一种能够提供更优秀频率响应的窗函数。
设计FIR滤波器的第四步是确定窗函数的参数。
这些参数包括主瓣宽度、动态范围、副瓣能量等。
设计FIR滤波器的最后一步是计算滤波器的系数。
滤波器的系数是由输入信号进行线性组合得到的。
通常采用离散频率域设计方法计算FIR滤波器的系数。
该方法通过将滤波器的频率响应与目标响应之间的差异最小化来寻找最佳系数。
具体计算过程包括以下几个步骤:1.设计一个无限长的理想低通滤波器,其频率响应与所需滤波器接近。
2. 使用离散Fourier变换将无限长的理想滤波器转换为有限长的频率响应。
3.选择适当的窗函数,根据窗函数的参数修改频率响应。
4.反变换回时间域,得到FIR滤波器的系数。
设计完滤波器后,可以通过将输入信号与滤波器系数进行卷积运算来获得滤波后的信号。
滤波器系数的选择决定了滤波器的性能。
通常可以通过频率响应、滤波器特性等指标来评估滤波器的性能。
使用窗函数法设计FIR滤波器可以得到满足特定要求的滤波器,其设计过程相对简单,易于实现。
但需要注意的是,窗函数法设计的FIR滤波器在频率响应的过渡区域可能会有较大的波动,需要根据具体应用场景对滤波器参数进行调整。
总之,窗函数法是一种常见且有效的设计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。
因此,首先要把模拟的声音信号变成计算机能够识别和处理的数字信号,这个过程称为数字化,也叫“模数转换”。
在计算机对数字化后的声音信号处理完后,得到的依然是数字信号。
必须把数字声音信号转变成模拟声音信号,然后再输出到扬声器,这个过程称为“数模转换”。
2.3数字滤波器的介绍数字滤波器(digital filter)是由数字乘法器、加法器和延时单元组成的一种装置。
其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。
用窗函数法设计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.了解各种窗函数对滤波特性的影响。
二、实验仪器微型计算机 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 滤波器分成四类。
要根据设计的滤波特性正确选择其中一类。
例如,要设计线性低通特征,可选择)1()(n N h n h --=一类,而不能选)1()(n N h n h ---=一类。
四、实验内容1.复习用窗函数法设计FIR 数字滤波器一节内容,阅读本实验原理掌握设计步骤。
2.编写程序① 编写能产生矩型窗、哈明窗、汉宁窗、莱克曼窗的窗函数子程序。
② 编写主程序。
主程序框图如图设 : [])()(n h DFT k H = (2-4) )()()(K jH k H k H I R += (2-5))()()(22k H k H k H I R += (2-6)画图时,20lg )(k H 打印幅度特性。
第k 点对应的频率k Nk πω2=。
为使曲线包络更 接近)(ωj e H 的幅度特性曲线,DFT 变换区间要选大些。
例如窗口长度N=33时,可通过在)(n h 末尾补零的方法,使长度变为64,再进行4点DFT ,则可得到更精确的幅度衰减特性曲线。
3.上机实验内容用四种窗函数设计线性相位低通FIR 数字滤波器,截止频率4πω=c rad ,N=256。
绘制相应的幅频特性曲线,观察3dB 带宽和20dB 带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。
设计低通FIR 数字滤波器时,一般以理想低通滤波特性为逼近函数)(ωj d eH ,即⎪⎩⎪⎨⎧≤<≤=-πωωωωωαωc c j jd ee H ,0,)( 其中21-=N α (2-8))()(sin 21)(21)(απαωωπωπωωωωαππωω--===⎰⎰---n n d e e d ee H n h c n j j nj j d d cc(2-9)五、思考题1.如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?写出设计步骤。
2.定性说明本实验中3dB 截止频率的理论值在什么位置?是否等于理想低通的截止频率ω?3.如果要求用窗函数法设计带通滤波器,且给定上、下边带截止频率为1ω和2ω,试求理想带通的单位脉冲响应)(n h 。
六、实验报告要求1.简述实验目的及原理。
2.按照实验步骤及要求,比较各种情况下的滤波性能,说明窗口长度N 和窗函数类型对滤波特性的影响。
3.总结用窗函数法设计FIR 滤波器的主要特点。
4. 简要回答思考题。
参考程序1:N=input('窗宽度N=');k=input('窗型:1.矩形窗,2.hanning(升余弦窗),3.hamming (改进的升余弦窗),4.Blackman 请选择:'); subplot(2,2,1); w=pi/5; a=(N-1)/2; n=0:(N-1); m=n-a+eps;h=sin(w*m)./(pi*m); if k==1B=bartlett(N); else if k==2B=hanning(N); else if k==3B=hamming(N);else if k==4B=blackman(N);endendendendhd=h.*(B');stem(n,hd,'.');xlabel('n');ylabel('h(n)');title('在矩形窗下的N=33时h(n)函数');subplot(2,2,2);[H,m]=freqz(hd,[1],1024);mag=abs(H);db=20*log10((mag+eps)/max(mag));plot(m/pi,db);xlabel('w/п');ylabel('20log[H(ejw)]');title('h(n)的幅频特性');grid;pha=angle(H);subplot(2,2,3);plot(m,pha);xlabel('n');ylabel('φ');title('h(n)的相频特性');subplot(2,2,4);plot(m,mag);xlabel('w');ylabel('H(ejw)');title('h(n)的幅频特性');参考程序2:b=1;close all;i=0;while(b);temp=menu('选择窗函数长度N','N=10','N=15','N=20','N=25','N=30','N=33','N=35','N=40','N=45','N=50','N=55' ,'N=60','N=64');menu1=[10,15,20,25,30,33,35,40,45,50,55,60,64];N=menu1(temp);temp=menu('选择逼近理想低通滤波器截止频率Wc','Wc=pi/4','Wc=pi/2','Wc=3*pi/4','Wc=pi','Wc=0.5','Wc=1.0','Wc=1.5','Wc=2.0' ,'Wc=2.5','Wc=3.0');menu2=[pi/4,pi/2,3*pi/4,pi,0.5,1,1.5,2,2.5,3];w=menu2(temp);n=[0:(N-1)];hd=ideal(w,N); %得到理想低通滤波器k=menu('请选择窗口类型:','boxcar','hamming','hanning','blackman');if k==1B=boxcar(N);string=['Boxcar','N=',num2str(N)];else if k==2B=hamming(N);string=['Hamming','N=',num2str(N)];else if k==3B=hanning(N);string=['Hanning','N=',num2str(N)];else if k==4B=blackman(N);string=['Blackman','N=',num2str(N)];endendendendh=hd.*(B)'; %得到FIR数字滤波器[H,m]=freqz(h,[1],1024,'whole'); %求其频率响应mag=abs(H); %得到幅值db=20*log10((mag+eps)/max(mag));pha=angle(H); %得到相位i=i+1;figure(i)subplot(2,2,1);n=0:N-1;stem(n,h,'.');axis([0,N-1,-0.1,0.3]);hold on;n=0:N-1;x=zeros(N);plot(n,x,'-');xlabel('n');ylabel('h(n)');title('实际低通滤波器的h(n)');text((0.3*N),0.27,string);hold off;subplot(2,2,2);plot(m/pi,db);axis([0,1,-100,0]);xlabel('w/pi');ylabel('dB');title('衰减特性(dB)');grid;subplot(2,2,3);plot(m,pha);hold on;n=0:7;x=zeros(8);plot(n,x,'-');title('相频特性');xlabel('频率(rad)');ylabel('相位(rad)');axis([0,3.15,-4,4]);subplot(2,2,4);plot(m,mag);title('频率特性');xlabel('频率W(rad)');ylabel('幅值');axis([0,3.15,0,1.5]);text(0.9,1.2,string);b=menu('Do You want To Continue ?','Yes','No'); if b==2b=0;endendtemp=menu('Close All Figure ?','Yes','No');if temp==1close allend。