数字信号实验(4) 用窗函数设计FIR滤波器
- 格式:doc
- 大小:2.22 MB
- 文档页数:7
FIR 数字滤波器的设计方法IIR 数字滤波器最大缺点:不易做成线性相位,而现代图像、语声、数据通信对线性相位的要求是普遍的。
正是此原因,使得具有线性相位的FIR 数字滤波器得到大力发展和广泛应用。
1. 线性相位FIR 数字滤波器的特点FIR DF 的系统函数无分母,为∑∑-=--=-==11)()(N n n N i ii z n h zb z H ,系统频率响应可写成:∑-=-=10)()(N n jwn jwe n h e H ,令)(jw e H =)()(w j e w H Φ,H(w)称为幅度函数,)(w Φ称为相位函数。
这与模和幅角的表示法有所不同,H(w)为可正可负的实数,这是为了表达上的方便。
如某系统频率响应)(jw e H =wj we34sin -,如果采用模和幅角的表示法,w 4sin 的变号相当于在相位上加上)1(ππj e =-因,从而造成相位曲线的不连贯和表达不方便,而用)()(w j e w H Φ这种方式则连贯而方便。
线性相位的FIR 滤波器是指其相位函数)(w Φ满足线性方程:)(w Φ=βα+-w (βα,是常数)根据群时延的定义,式中α表示系统群时延,β表示附加相移。
线性相位的FIR 系统都具有恒群时延特性,因为α为常数,但只有β=0的FIR 系统采具有恒相时延特性。
问题:并非所有的FIR 系统都是线性相位的,只有当它满足一定条件时才具有线性相位。
那么应满足什么样的条件?从例题入手。
例题:令h(n)为FIR 数字滤波器的单位抽样相应。
N n n ≥<或0时h(n)=0,并假设h(n)为实数。
(a ) 这个滤波器的频率响应可表示为)()()(w j jwew H e H Φ=(这是按幅度函数和相位函数来表示的,不是用模和相角的形式),)(w H 为实数。
(N 要分奇偶来讨论) (1) 当h(n)满足条件)1()(n N h n h --=时,求)(w H 和)(w Φ(π≤≤w 0) (2) 当h(n)满足条件)1()(n N h n h ---=时,求)(w H 和)(w Φ(π≤≤w 0)(b ) 用)(k H 表示h(n)的N 点DFT(1) 若h(n)满足)1()(n N h n h ---=,证明H(0)=0; (2) 若N 为偶数,证明当)1()(n N h n h --=时,H(N/2)=0。
武汉理工大学《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 滤波器(一)实验目的1. 掌握窗函数法设计FIR 滤波器的原理和方法,观察用几种常用窗函数设计的FIR 数字滤波器技术指标;2. 掌握FIR 滤波器的线性相位特性;3. 了解各种窗函数对滤波特性的影响。
(二)实验原理如果所希望的滤波器的理想频率响应函数为Hd(e jω),则其对应的单位脉冲响应为ωπωππωd e e H n h n j j d ⎰-=)(21)(,用窗函数wN(n)将hd(n)截断,并进行加权处理,得到实际滤波器的单位脉冲响应h(n)=hd(n)wN(n),其频率响应函数为n j N n j e n h e H ωω--=∑=10)()(。
如果要求线性相位特性,则h(n)还必须满足)1()(n N h n h --±=。
可根据具体情况选择h(n)的长度及对称性。
(三)实验内容1、生成四种窗函数:矩形窗、三角窗、汉宁窗、海明窗,并观察其频率响应。
实验代码以及运行结果%矩形窗及其频响n=15;window1=rectwin(n);[h1,w1]=freqz(window1,1);subplot(2,1,1);stem(window1);title('矩形窗');subplot(2,1,2);plot(w1/pi,20*log(abs(h1))/abs(h1(1)));title('矩形窗频响');%三角窗及其频响n=15;window2=triang(n);[h2,w2]=freqz(window2,1);subplot(2,1,1);stem(window2);title('三角窗');subplot(2,1,2);plot(w2/pi,20*log(abs(h2))/abs(h2(1)));title('三角窗频响');%汉宁窗及其频响n=15;window3=hann(n);window3=hann(n);[h3,w3]=freqz(window3,1);subplot(2,1,1);stem(window3);title('汉宁窗');subplot(2,1,2); plot(w3/pi,20*log(abs(h3))/abs(h3(1)));title('汉宁窗频响');%海明窗频响n=15;window4=hamming(n);[h4,w4]=freqz(window4,1); subplot(2,1,1);stem(window4);title('海明窗');subplot(2,1,2); plot(w4/pi,20*log(abs(h4))/abs(h4(1)));title('海明窗频响'); 运行结果:2、根据下列技术指标,设计一个FIR数字低通滤波器:wp=0.2π,ws=0.4π,ap=0.25dB,as=50dB,选择一个适当的窗函数,确定单位冲激响应,绘出所设计的滤波器的幅度响应。
数字滤波器设计实验报告刘古城65100609一、实验目的研究数字滤波器的设计思想,理解数字频域,模拟频域的关系,掌握数字系统处理模拟信号的方法。
FIR数字滤波器设计:掌握窗函数设计FIR数字滤波器的方法,理解FIR的意义:线性相位。
二、实验原理1、FIR的特点(1)系统的单位冲击响应在有限个n值处不为零。
(2)对于稳定系统,系统函数在| z |>0处收敛,极点全部在z=0处。
(3)结构上主要是非递归结构,没有输出到输入的反馈,但在个别结构中(如频率抽样结构)也包含反馈的递归部分‘2、FIR滤波器的优点(1)即具有严格的线性相位,又具有任意的幅度’(2)FIR滤波器的抽样响应是有限长的,因而滤波器的性能稳定。
(3)只要经过一定的延时,任何非因果的有限长序列都能变成有限长的因果的序列,因而能用因果系统来实现。
(4)FIR滤波器单位冲击响应是有限长的,因而可以进行快速傅立叶变换,提高运算效率。
3、用窗函数设计FIR数字滤波器对函数加窗处理,实际是用一个有限长函数来逼近原函数。
常用的窗函数有矩形窗、三角窗,汉宁窗、海明窗、布莱克曼窗、凯撒窗等。
三、实验要求1、设计FIR数字低通滤波器,要求在不同窗口长度(N=15,33)下,分别求出h(n),画出相应的幅频特性和相频特性曲线,观察3dB带宽和20dB带宽,总结窗口长度N对滤波特性的影响。
2、对三个拟合三角函数进行滤波处理。
3、对含噪心电信号函数进行滤波处理。
四、实验内容1、不同窗函数长度对于滤波特性的影响fs=100,N=32;n=0:N-1;t=n/fs;f0=n*fs/N;y=exp(-2*t);z=fft(y);m=abs(z);w1=blackman(N);z1=w1'.*y;x1=fft(z1),mo1=abs(x1);subplot(1,2,1);plot(f0,m/fs);subplot(1,2,2);plot(f0,mo1/fs)运行结果改变N值,令N=14,得到结果2、对三个拟合三角函数进行滤波clear;fs=2000;t=(1:1000)/fs;x=10*cos(2*pi*30*t)+cos(2*pi*150*t)+5*cos(2*pi*600*t); L=length(x);N=2^(nextpow2(L));Hw=fft(x,N);figure(1);subplot(2,1,1);plot(t,x);grid on;title('滤波前信号x');xlabel('时间/s');% 原始信号subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw));% 查看信号频谱grid on;title('滤波前信号频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');%% x_1=10*cos(2*pi*30*t)Ap=1;As=60;% 定义通带及阻带衰减dev=[(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];% 计算偏移量mags=[1,0];% 低通fcuts=[60,100];% 边界频率[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);% 估算FIR滤波器阶数hh1=fir1(N,Wn,ftype,kaiser(N+1,beta));% FIR滤波器设计x_1=filter(hh1,1,x);% 滤波x_1(1:ceil(N/2))=[];% 群延时N/2,删除无用信号部分L=length(x_1);N=2^(nextpow2(L));Hw_1=fft(x_1,N);figure(2);subplot(2,1,1);plot(t(1:L),x_1);grid on;title('x_1=10*cos(2*pi*30*t)');xlabel('时间/s');subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_1));% 查看信号频谱grid on;title('滤波后信号x_1频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');%% x_2=cos(2*pi*150*t)Ap=1;As=60;% 定义通带及阻带衰减dev=[10^(-As/20),(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];% 计算偏移量mags=[0,1,0];% 带通fcuts=[80,120,180,220];% 边界频率[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);% 估算FIR滤波器阶数hh2=fir1(N,Wn,ftype,kaiser(N+1,beta));% FIR滤波器设计x_2=filter(hh2,1,x);% 滤波x_2(1:ceil(N/2))=[];% 群延时N/2,删除无用信号部分L=length(x_2);N=2^(nextpow2(L));Hw_2=fft(x_2,N);figure(3);subplot(2,1,1);plot(t(1:L),x_2);grid on;title('x_2=cos(2*pi*150*t)');xlabel('时间/s');subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_2));% 查看信号频谱grid on;title('滤波后信号x_2频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');%% x_3=5*cos(2*pi*600*t)Ap=1;As=60;% 定义通带及阻带衰减dev=[10^(-As/20),(10^(Ap/20)-1)/(10^(Ap/20)+1)];% 计算偏移量mags=[0,1];% 高通fcuts=[500,550];% 边界频率[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);% 估算FIR滤波器阶数hh2=fir1(N,Wn,ftype,kaiser(N+1,beta));% FIR滤波器设计x_3=filter(hh2,1,x);% 滤波x_3(1:ceil(N/2))=[];% 群延时N/2,删除无用信号部分L=length(x_3);N=2^(nextpow2(L));Hw_3=fft(x_3,N);figure(4);subplot(2,1,1);plot(t(1:L),x_3);grid on;title('x_3=5*cos(2*pi*600*t)');xlabel('时间/s');subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_3));% 查看信号频谱grid on;title('滤波后信号x_3频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');运行结果3、对含噪心电信号函数进行滤波处理。
窗函数法设计FIR滤波器实验报告实验一窗函数法设计FIR滤波器数字滤波是数字信号处理的一种重要算法,广泛用于对信号的过滤、检测与参数的估计等信号处理中。
数字滤波器是使用最为广泛的装置,在工业、农业和其他行业均有应用数字滤波器按其单位脉冲响应的长度可分为有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器两类。
FIR 滤波器的线性与稳定性使其应用更为广泛。
1.FIR滤波器数字滤波器是一个能够完成特定任务的离散时间系统,它可以利用有限精度算法来实现。
当采用一个因果稳定的离散线性移不变系统的系统函数去逼近滤波器所要求的性能指标时,由于系统函数有无限长单位冲激响应(IIR)系统函数和有限长单位冲激响应(FIR)系统函数两种,相应地数字滤波器也就有无限长单位冲激响应(IIR)滤波器和有限长单位冲激响应(FIR)滤波器两种。
FIR 滤波器的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数的问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。
FIR 滤波器的基本结构可以理解为一个分节的延时线,把每一节的输出加权累加,可得到滤波器的输出。
FIR 滤波器的冲激响应h(n)是有限长的,数学上M阶FIR 滤波器可以表示为:y(n) = ∑h(i)x(n-i) (1)其系统函数为:H (z) =Y(Z)/X(Z)=∑b(n)z-n (2)2.窗函数法窗函数是一种用一定宽度窗函数截取无限长脉冲响应序列获取有限长脉冲响应序列的设计方法。
而其设计FIR 滤波器的基本思想: 根据给定的滤波器技术指标选取滤波器长度N和窗函数wd(n), 使其具有最窄宽度的主瓣和最小的旁瓣。
其核心是从给定的频率特性, 通过加窗确定有限长单位脉冲响应序列h(n)即实际滤波器的系数向量, 其是由理想滤波器脉冲响应hd(n)与窗函数函数hd(n)相乘得到。
工程上常用的窗函数有5种:矩形窗(Rectangular Window),三角窗(Triangular Window),汉宁窗(Hanning),汉明窗(Hanming)和凯泽窗(Kaiaser-Bassel Window)。
用窗函数法设计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 滤波器的原理及步骤,学会相应的MATLAB编程。
2、熟悉具有线性相位的FIR滤波器的幅频特性和相频特性。
3、了解各种不同窗函数对滤波器性能的影响。
二、实验内容1、用窗函数法设计一个FIR数字低通滤波器LPDF,验证设计结果的幅频特性和相频特性。
要求:通带截止频率ωp=π,通带波纹Rp=,阻带截止频率ωs=π,阻带衰减As=50dB。
50Magnitude (dB) Frequency ( rad/sample) (degrees)- Frequency ( rad/sample)图1-1 低通滤波器LPDF的频率响应图1-2 低通滤波器LPDF的零极点图单位脉冲响应h(n)的数据长度= 45 对称性为:偶对称得到的滤波器通带边界点( 326 )和阻带边界点参数2、用窗函数法设计一个FIR数字高通滤波器HPDF,验证设计结果的幅频特性和相频特性。
要求:通带截止频率ωp=π,通带波纹Rp=,阻带截止频率ωs=π,阻带衰减As=50dB。
Real Part50Magnitude (dB) Frequency ( rad/sample) (degrees) Frequency ( rad/sample)图2-1 高通滤波器HPDF的频率响应图2-2 高通滤波器HPDF的零极点图-滤波器H(z)零点个数= h(n)对称性为:偶对称得到的滤波器通带边界点( 426 )和阻带边界点参数3、用窗函数法设计一个FIR数字带通滤波器BPDF,验证设计结果的幅频特性和相频特性。
要求:阻带截止频率ωs1=π,衰减65dB,通带截止频率ωp1=π→ωp2=π范围内衰减,高端阻带截止频率ωs2=π,阻带衰减As=65dB。
501Magnitude (dB)0-50-100Imaginary Frequency ( rad/sample) Frequency ( rad/sample) (degrees)0-20XX-4000-6000图3-1 带通滤波器BPDF的频率响应图3-2 带通滤波器BPDF的零极点图 FIR滤波器的阶次= 111 h(n)对称性为:偶对称得到的滤波器通带边界点( 298、704 )和阻带边界点参数中心频率:通带带宽:4、用窗函数法设计一个FIR数字带阻滤波器BSDF,验证设计结果的幅频特性和相频特性。
用窗函数法设计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 。
实验四 用窗函数法设计 FIR 数字滤波器一、 实验目的(1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
(2) 熟悉线性相位FIR 数字滤波器特性。
(3) 了解各种窗函数对滤波特性的影响。
二、 实验原理、滤波器的理想频率响应函数为H d (e j ω),则其对应的单位脉冲响应为h d (n) =⎰-ππωωωπd e e H n j j d)(21 窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。
由于h d (n)往往是无限长序列,且是非因果的,所以用窗函数。
w(n)将h d (n)截断,并进行加权处理:h(n) = h d (n) w(n)h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e j ω)为H(e j ω) =∑-=-10)(N n n j en h ω用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N 的取值。
设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。
三、 实验内容1.MATALAB 程序任务一N1=15;N2=33;b1=fir1(14,1/4,hanning(15));b2=fir1(32,1/4,hanning(33));[H1,W]=freqz(b1,1);H1_db=20*log10(abs(H1));magH1=abs(H1);phaH1=angle(H1);[H2,W]=freqz(b2,1);H2_db=20*log10(abs(H2));magH2=abs(H2);phaH2=angle(H2);figure(1);subplot(2,1,1);stem(b1);title('N=15时,汉宁窗得到的FIR滤波器脉冲响应'); subplot(2,1,2);stem(b2);title('N=33时,汉宁窗得到的FIR滤波器脉冲响应');figure(2);subplot(3,1,1);plot(W/pi,magH1);title('N=15时汉宁窗得到的FIR滤波器的幅频特性') subplot(3,1,2);plot(W/pi,H1_db);title('N=15时汉宁窗得到的FIR滤波器的对数幅频特性') subplot(3,1,3);plot(W/pi,phaH1);title('N=15时汉宁窗得到的FIR滤波器的相频特性')figure(3);subplot(3,1,1);plot(W/pi,magH2);title('N=33时汉宁窗得到的FIR滤波器的幅频特性') subplot(3,1,2);plot(W/pi,H2_db);title('N=33时汉宁窗得到的FIR滤波器的对数幅频特性') subplot(3,1,3);plot(W/pi,phaH2);title('N=33时汉宁窗得到的FIR滤波器的相频特性')任务二N=33;b1=fir1(32,1/4,boxcar(33));b2=fir1(32,1/4,hanning(33));b3=fir1(32,1/4,bartlett(33));b4=fir1(32,1/4,blackman(33));[H1,W]=freqz(b1,1);H1_db=20*log10(abs(H1));magH1=abs(H1);phaH1=angle(H1);[H2,W]=freqz(b2,1);H2_db=20*log10(abs(H2));magH2=abs(H2);phaH2=angle(H2);[H3,W]=freqz(b3,1);H3_db=20*log10(abs(H3));magH3=abs(H3);phaH3=angle(H3);[H4,W]=freqz(b4,1);H4_db=20*log10(abs(H4));magH4=abs(H4);phaH4=angle(H4);figure(1);subplot(2,2,1);stem(b1);title('矩形窗得到的FIR滤波器脉冲响应') subplot(2,2,2);stem(b2);title('汉宁窗得到的FIR滤波器脉冲响应') subplot(2,2,3);stem(b3);title('三角窗得到的FIR滤波器脉冲响应') subplot(2,2,4);stem(b4);title('布拉克曼窗得到的FIR滤波器脉冲响应') figure(2);subplot(2,2,1);plot(W/pi,magH1);title('矩形窗得到的FIR滤波器幅频特性')title('汉宁窗得到的FIR滤波器幅频特性') subplot(2,2,3);plot(W/pi,magH3);title('三角窗得到的FIR滤波器幅频特性') subplot(2,2,4);plot(W/pi,magH4);title('布拉克曼窗得到的FIR滤波器幅频特性') figure(3);subplot(2,2,1);plot(W/pi,H1_db);title('矩形窗得到的FIR滤波器相频特性') subplot(2,2,2);plot(W/pi,H2_db);title('汉宁得到的FIR滤波器相频特性') subplot(2,2,3);plot(W/pi,H3_db);title('三角窗得到的FIR滤波器相频特性') subplot(2,2,4);plot(W/pi,H4_db);title('布拉克曼得到的FIR滤波器相频特性') figure(4);subplot(2,2,1);plot(W/pi,phaH1);title('矩形窗得到的FIR滤波器相频特性') subplot(2,2,2);plot(W/pi,phaH2);title('汉宁窗得到的FIR滤波器相频特性') subplot(2,2,3);plot(W/pi,phaH3);title('三角窗得到的FIR滤波器相频特性')title('布拉克曼窗得到的FIR滤波器相频特性') 2.实验波形图任务一任务二四、 实验结论1.N 的大小决定了窗谱的主瓣宽度,N 越大,窗谱的主瓣宽度越大2.最小阻带衰减只有窗行决定,不受N 的影响,过渡带宽度与N 和窗形都有关,N 越大,过渡带宽越小3.由实验可知滤波特性:布拉克曼窗>汉宁窗>三角窗>矩形窗五、 思考题(1) 如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?写出设计步骤。
实验四用窗函数设计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)有奇偶对称性,从而确定理想频率响应的幅频特性和相位特性。
3.用傅里叶反变换公式,求得理想单位脉冲响应。
4.选择适当的窗函数W(n)根据式求得所设计的FIR滤波器单位脉冲响应。
5.用傅理叶变换求得其频率响应,分析它的幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述过程,直至得到满意的结果。
三、实验内容及步骤
(一) 编制实验用主程序及相应子程序
1.在实验编程之前,认真复习有关FIR滤波器设计的有关知识,尤其是窗函数法的有关内容,阅读本实验原理与方法,熟悉窗函数及四种线性相位FIR滤波器的特性,掌握窗函数设计滤波器的具体步骤。
2.编制窗函数设计FIR滤波器的主程序及相应子程序
(1)傅里叶反变换数值计算子程序,用于计算设计步骤(3)中的傅里叶反
变换,给定,K=0,1…M-1,按照公式求得理想单位脉冲响
应,n=0….N-1。
(2)窗函数产生子程序,用于产生几种常见的窗函数序列。
本实验中要求产生的窗函数序列有:矩形窗、Hanning窗、Hamming窗、Blackman窗、Kaiser窗。
根据给定的长度N,按照公式生成相应的窗函数序列。
(3)主程序,在上述子程序的基础上,设计主程序完成线性相位FIR滤波器的窗函数法设计。
其中理想滤波器幅频特性的一半(从到
)区间频率点上的值||,K=0,…,(M/2-1)以及滤波器的长
度N可以从数据文件或其他形式输入。
||的另外一半(从到区间)的幅频特性和全部相位特性在程序中根据N的奇偶性和幅
频特性的要求,在四中滤波器中选择一种,自动产生。
(二) 上机实验内容
(1)用Hanning窗设计一个线性相位带通滤波器,其长度N=15,上下边
带宽截止频率分别为,,求h(n),绘制它的幅频
和相位特性曲线,观察它的实际3dB和3dB带宽。
如果N=45,重复这个设计,观察幅频和相位特性的变化,注意长度N变化对结果的影响。
>> window=hanning(16);
>> b=fir1(15,[0.3 0.5],window);freqz(b,1);
改变N=45:
>> window=hanning(46);
>>b=fir1(15,[0.30.5],window);freqz(b,1);
(2)改用矩形窗和Blackman窗,设计步骤(1)中的带通滤波器,观察并记录窗函数对滤波器幅频和相位特性的影响,比较这三种窗函数的特点。
矩形窗:
>> window=boxcar(16);
>> b=fir1(15,[0.3 0.5],window);freqz(b,1);
改变N=45:
>> window=boxcar(46);
>> b=fir1(45,[0.3 0.5],window);freqz(b,1);
Blackman窗:
>> window=blackman(16);
>> b=fir1(15,[0.3 0.5],window);freqz(b,1);
改变N=45:
>> window=blackman(46);
>> b=fir1(45,[0.3 0.5],window);freqz(b,1);
(3)用Kaiser窗设计一个专用的线性相位滤波器。
N=40,当值分别为4,6,8时,设计相应的滤波器,比较它们的幅频和相位特性,观察并分析值不同的时候对结果有什么影响。
>> window=kaiser(41,4);
>> b=fir1(40,[0.2 0.4],window);freqz(b,1);
>> window=kaiser(41,6);
>> b=fir1(40,[0.2 0.4],window);freqz(b,1);
>> window=kaiser(41,8);
>> b=fir1(40,[0.2 0.4],window);freqz(b,1);
四、思考题
1.定性的说明用本实验程序设计的FIR滤波器的3dB截止频率在什么位置?它等于理想频率响应的截止频率吗?
答:在0.3-0.5之间,等于理想频率响应的截止频率
2.如果没有给定h(n)长度N,而是给定了通带边缘截止频率,阻带临界频率,以及相应的衰减,你能根据这些条件用窗函数法设计线性相位FIR低通滤波器吗?
答:能,可以根据通带边缘截止频率ω_s和阻带临界频率ω_c与所选用的窗函数来大致判断长度N
3.频率取样方法和窗函数法各有什么特点?简单说明?
答:频率采样法的优点是可以从频域直接处理,并且适合于最优化设计,它的缺点是频率控制点的位置受限于频率周上的N个采样点,因此滤波器的截止频率不易随意控制。
窗口法设计的主要优点是简单,使用起来方便。
窗口函数大多都有封闭的公式可循,性能、参数都已有表格、资料可供参考,计算程序简便,所以很实用。