实验四 窗函数法设计FIR数字滤波器
- 格式:doc
- 大小:238.11 KB
- 文档页数:16
实验四FIR数字滤波器的设计
FIR(有限冲击响应)数字滤波器是一种常见的数字信号处理器件,
可以用于滤波、降噪等应用。
下面是一种FIR数字滤波器的设计流程:
1.确定滤波器的需求:首先确定需要滤除的频率范围和滤波的类型,
例如低通、高通、带通、带阻等等。
2.设计滤波器的频率响应:根据滤波器的需求,设计其理想的频率响应。
可以使用窗函数、最小二乘法等方法获得一个理想的滤波器响应。
3.确定滤波器的阶数:根据设计的频率响应,确定滤波器的阶数。
阶
数越高,滤波器的响应越陡峭,但计算复杂度也会增加。
4.确定滤波器的系数:根据滤波器的阶数和频率响应,计算滤波器的
系数。
可以使用频域窗函数或时域设计方法。
5.实现滤波器:根据计算得到的滤波器系数,实现滤波器的计算算法。
可以使用直接形式、级联形式、传输函数形式等。
6.评估滤波器的性能:使用所设计的FIR滤波器对输入信号进行滤波,评估其滤波效果。
可以使用频率响应曲线、幅频响应、群延时等指标进行
评估。
7.调整滤波器设计:根据实际的滤波效果,如果不满足需求,可以调
整滤波器的频率响应和阶数,重新计算滤波器系数,重新实现滤波器。
以上是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,选择一个适当的窗函数,确定单位冲激响应,绘出所设计的滤波器的幅度响应。
实验四FIR数字滤波器设计与软件实现
实验目的:
掌握FIR数字滤波器的设计与软件实现方法,了解滤波器的概念与基
本原理。
实验原理:
FIR数字滤波器全称为有限脉冲响应数字滤波器,其特点是具有有限
长度的脉冲响应。
滤波器通过一系列加权系数乘以输入信号的延迟值,并
将这些值相加得到输出信号。
FIR滤波器的频率响应由滤波器系数所决定。
实验步骤:
1.确定所需的滤波器的设计规格,包括截止频率、通带波纹、阻带衰
减等。
2.选择适当的滤波器设计方法,如窗函数、最佳近似法、最小二乘法等。
3.根据所选方法,计算滤波器的系数。
4.在MATLAB环境下,使用滤波器的系数实现滤波器。
5.输入所需滤波的信号,经过滤波器进行滤波处理。
6.分析输出的滤波信号,观察滤波效果是否符合设计要求。
实验要求:
1.完成FIR数字滤波器的设计和软件实现。
2.对比不同设计方法得到的滤波器性能差异。
3.分析滤波结果,判断滤波器是否满足设计要求。
实验器材与软件:
1.个人电脑;
2.MATLAB软件。
实验结果:
根据滤波器设计规格和所选的设计方法,得到一组滤波器系数。
通过
将滤波器系数应用于输入信号,得到输出滤波信号。
根据输出信号的频率
响应、通带波纹、阻带衰减等指标,评估滤波器的性能。
实验注意事项:
1.在选择设计方法时,需要根据滤波器要求和实际情况进行合理选择。
2.在滤波器实现过程中,需要注意滤波器系数的计算和应用。
3.在实验过程中,注意信号的选择和滤波结果的评估方法。
实验四FIR数字滤波器设计与软件实现
实验目的:
FIR(Finite Impulse Response)数字滤波器是一种常用的数字滤波器,本实验旨在通过设计和软件实现FIR数字滤波器,加深对数字滤波器的理解和应用。
实验材料和设备:
1.个人电脑
2. 数字信号处理软件(如MATLAB、Python等)
实验步骤:
1.确定滤波器的类型和设计要求,如低通滤波器、高通滤波器、带通滤波器等。
给定滤波器的截止频率、通带衰减和阻带衰减等参数。
2.使用指定的设计方法,如窗函数法、频率采样法等,进行FIR滤波器的设计。
根据设计要求选择合适的窗函数(如矩形窗、汉宁窗、布莱克曼窗等)或频率采样点。
3.进行FIR滤波器的软件实现。
在数字信号处理软件中,根据设计好的滤波器系数(也称为权值),通过卷积操作对输入信号进行滤波。
可以使用已有的滤波器设计函数或自行编写代码实现。
4.对输入信号进行滤波,观察滤波效果。
可以通过绘制输入信号和输出信号的时域图和频域图,分析滤波效果。
根据需要,可以对滤波器进行调整和优化。
5.根据实验结果,对滤波器的性能进行评估。
可以对比不同设计方法和参数选择的滤波器性能,分析其优缺点。
注意事项:
1.在选择滤波器的设计方法时,要根据实际需求和要求来选择。
不同方法有不同的适用范围和设计效果。
2.在进行滤波器实现时,要注意系数计算的精度和卷积操作的效率。
3.在进行滤波效果评估时,要综合考虑时域和频域等多个指标,避免单一指标的片面评价。
实验四FIR数字滤波器的设计
FIR数字滤波器也称作有限脉冲响应数字滤波器,是一种常见的数字滤波器设计方法。
在设计FIR数字滤波器时,需要确定滤波器的阶数、滤波器的类型(低通、高通、带通、带阻)以及滤波器的参数(截止频率、通带波纹、阻带衰减、过渡带宽等)。
下面是FIR数字滤波器的设计步骤:
1.确定滤波器的阶数。
阶数决定了滤波器的复杂度,一般情况下,阶数越高,滤波器的性能越好,但计算量也越大。
阶数的选择需要根据实际应用来进行权衡。
2.确定滤波器的类型。
根据实际需求,选择低通、高通、带通或带阻滤波器。
低通滤波器用于去除高频噪声,高通滤波器用于去除低频噪声,带通滤波器用于保留一定范围内的频率信号,带阻滤波器用于去除一定范围内的频率信号。
3.确定滤波器的参数。
根据实际需求,确定滤波器的截止频率、通带波纹、阻带衰减和过渡带宽等参数。
这些参数决定了滤波器的性能。
4.设计滤波器的频率响应。
使用窗函数、最小二乘法等方法,根据滤波器的参数来设计滤波器的频率响应。
5.将频率响应转换为滤波器的系数。
根据设计的频率响应,使用逆快速傅里叶变换(IFFT)等方法将频率响应转换为滤波器的系数。
6.实现滤波器。
将滤波器的系数应用到数字信号中,实现滤波操作。
7.优化滤波器性能。
根据需要,可以对滤波器进行进一步优化,如调整滤波器的阶数、参数等,以达到较好的滤波效果。
以上是FIR数字滤波器的设计步骤,根据实际需求进行相应的调整,可以得到理想的滤波器。
实验 用窗函数设计FIR 滤波器一、实验目的1、熟悉FIR 滤波器设计的基本方法。
2、熟悉线性相位FIR 滤波器的幅频特性和相位特性。
3、掌握用窗函数设计FIR 数字滤波器的原理及方法,了解各种不同窗函数对滤波器性能的影响。
二、实验原理1、FIR 滤波器的设计 在前面的实验中,我们介绍了IIR 滤波器的设计方法并实践了其中的双线性变换法,IIR 具有许多诱人的特性;但与此同时,也具有一些缺点。
例如:若想利用快速傅立叶变换技术进行快速卷积实现滤波器,则要求单位脉冲响应是有限长的。
此外,IIR 滤波器的优异幅度响应,一般是以相位的非线性为代价的,非线性相位会引起频率色散。
FIR 滤波器具有严格的相位特性,这对于许多信号的处理和数据传输是很重要的。
目前FIR 滤波器的设计方法主要有三种:窗函数法、频率采样法和切比雪夫等波纹逼近的最优化设计方法。
窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。
它是从时域出发,用一个窗函数截取理想的[]d h n 得到[]h n ,以有限长序列[]h n 近似理想的[]d h n ;如果从频域出发,用理想的[]j d h e ω在单位圆上等角度取样得到[]H k ,根据[]H k 得到[]H z 将逼近理想的[]d h z ,这就是频率采样法。
2 、窗函数设计法同其他的数字滤波器的设计方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。
一般是给定一个理想的频率响应[]j d H e ω,使所设计的FIR 滤波器的频率响应[]j H e ω去逼近所要求的理性的滤波器的响应[]j d H e ω。
窗函数法设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数1()[]N j j nn H e h n e ωω--==∑ (4.1)去逼近[]j d H e ω。
我们知道,一个理想的频率响应[]j d H e ω的傅立叶反变换201[]()2j j n d d h n H e e d πωωωπ=⎰(4.2)所得到的理想单位脉冲响应[]d h n 往往是一个无限长序列。
数字信号处理实验报告实验四IIR数字滤波器设计及软件实现(一) FIR数字滤波器设计及软件实现(二)2018 年 11 月 28 日一、实验目的(实验4_1)(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
(实验4_2)(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。
(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。
(3)掌握FIR滤波器的快速卷积实现原理。
(4)学会调用MATLAB函数设计与实现FIR滤波器。
二、实验原理与方法(实验4_1)设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。
基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。
第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。
本实验要求读者调用如上函数直接设计IIR数字滤波器。
本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
3、实验内容及步骤(实验4_1)(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。
由图可见,三路信号时域混叠无法在时域分离。
实验四:FIR数字滤波器设计与软件实现1.实验目的(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。
(2)学会调用MA TLAB函数设计FIR滤波器。
(3)通过观察频谱的相位特性曲线,建立线性相位概念。
(4)掌握FIR数字滤波器的MATLAB软件实现方法。
2.实验原理设计FIR数字滤波器一般采用直接法,如窗函数法和频率采样法。
本实验采用窗函数法设计FIR滤波器,要求能根据滤波需求确定滤波器指标参数,并按设计原理编程设计符合要求的FIR数字滤波器。
本实验软件实现是调用MATLAB提供的fftfilt函数对给定输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
3. 实验内容及步骤(1) FIR数字滤波器设计根据窗函数法设计FIR数字滤波器的原理和步骤,设计一个线性数字低通滤波器,要求通带临界频率fp=120Hz,阻带临界频率fs=150Hz,通带内的最大衰减Ap=0.1dB,阻带内的最小衰减As=60db,采样频率Fs=1000Hz。
观察设计的滤波器频率特性曲线,建立线性相位概念。
(2) FIR数字滤波器软件实现利用第(1)步设计的数字滤波器,调用fftfilt函数对信号进行滤波,观察滤波前后的信号波形变化。
4.思考题(1)简述窗函数法设计FIR数字滤波器的设计步骤。
(2)简述信号在传输过程中失真的可能原因。
5.实验报告要求(1)结合实验内容打印程序清单和信号波形。
(2)对实验结果进行简单分析和解释。
(3)简要回答思考题。
常用窗函数技术参数及性能比较一览表窗类型最小阻带衰减主瓣宽度精确过渡带宽窗函数矩形窗21dB 4π/M 1.8π/M boxcar三角窗25dB 8π/M 6.1π/M bartlett汉宁窗44dB 8π/M 6.2π/M hanning哈明窗53dB 8π/M 6.6π/M hamming 布莱克曼窗74dB 12π/M 11π/M blackman 取凯塞窗时用kaiserord函数来得到长度M和βkaiser附录:(1)FIR数字滤波器设计clear;clc;close all;format compactfp=120, Ap=0.1, fs=150, As=60 ,Fs=1000,wp=2*pi*fp/Fs,ws=2*pi*fs/Fs ,Bt=ws-wp; M=ceil(11*pi/Bt);if mod(M,2)==0; N=M+1, else N=M, end;wc=(wp+ws)/2,n=0:N-1;r=(N-1)/2;hdn=sin(wc*((n-r)+eps))./(pi*((n-r)+eps));win=blackman(N); hn=hdn.*win',figure(1);freqz(hn,1,512,Fs);grid on;图(一)FIR数字滤波器(2)FIR数字滤波器软件实现n=[0:190];xn=sin((2*pi*120/1000)*n)+sin((2*pi*150/1000)*n);yn=fftfilt(hn,xn);figure(2)subplot(2,1,1);plot(xn);title('滤波前信号') ;subplot(2,1,2);plot(yn);title('滤波后信号');图(2)FIR数字滤波器软件实现思考题:(1) 用升余弦窗设计一线性相位低通FIR数字滤波器,并读入窗口长度。
实验四 用窗函数设计FIR 滤波器一、 实验目的1、熟悉FIR 滤波器设计的基本方法。
2、掌握用窗函数设计FIR 数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。
3、熟悉线性相位FIR 滤波器的幅频特性和相位特性。
4、了解各种不同窗函数对滤波器性能的响应。
二、 实验原理和方法窗函数法设计的任务在于寻找一个可实现有限长单位脉冲响应的传递函数H(e jw )=∑-=10N n h(n)e -jwn 去逼近h d (n)=1/2π⎰π20H d (e jw )e jwn dw即h(n)=h d (n)w (n ) (一)几种常用的窗函数1、矩形窗 w(n)=R N (n)2、Hanning 窗 w(n)=0.5[1-cos(2πn /N-1)]R N (n)3、Hamming 窗 w(n)=[0.54-0.46cos(2πn /N-1)]R N (n)4、Blackman 窗 w(n)=[0.42-0.5 cos(2πn /N-1)+0.08 cos(4πn /N-1)] R N (n)5、Kaiser 窗 w(n)=I 0(β(1-[(2n /(N-1))-1]2)½)/I 0(β)(二)窗函数法设计线性相位FIR 滤波器的步骤1、确定数字滤波器的性能要求。
确定各临界频率{w k }和滤波器单位脉冲响应长度N 。
2、根据性能要求和N 值,合理地选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频率响应h d (e jw )的幅频特性和相位特性。
3、用傅里叶反变换公式求得理想单位脉冲响应h d (n)。
4、选择适当的窗函数W (n ),求得所设计的FIR 滤波器单位脉冲响应。
5、用傅里叶变换求得其频率响应H (e jw ),分析它的幅频特性,若不满足要求,可适当改变窗函数形式或长度N ,重复上述过程,直至得到满意的结果。
三、实验内容和步骤1、分别用矩形窗、Hanning 窗、Hamming 窗、Blackman 窗、Kaiser 窗(β=8.5)设计一个长度N=8的线性相位FIR 滤波器。
实验五 FIR滤波器的设计(一)一、实验目的(1) 掌握用窗函数法设计FIR滤波器的原理及方法,熟悉响应的计算机编程;(2) 熟悉线性相位FIR滤波器的幅频特性和相频特性;(3)了解各种不同窗函数对滤波器性能的影响。
二、实验原理与方法线性相位实系数FIR滤波器按其N值奇偶和h(n)的奇偶对称性分为四种: 1、h(n)为偶对称,N为奇数H(e jω)的幅值关于ω=0,π,2π成偶对称。
2、h(n)为偶对称,N为偶数H(e jω)的幅值关于ω=π成奇对称,不适合作高通。
3、h(n)为奇对称,N为奇数H(e jω)的幅值关于ω=0,π,2π成奇对称,不适合作高通和低通。
4、h(n)为奇对称,N为偶数H(e jω)ω=0、2π=0,不适合作低通。
窗函数法设计线性相位FIR滤波器步骤a)确定数字滤波器的性能要求:临界频率{ωk},滤波器单位脉冲响应长度N;b)根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应Hd(e jω)的幅频特性和相频特性;c)求理想单位脉冲响应h d(n),在实际计算中,可对H d(e jω)按M(M远大于N)点等距离采样,并对其求IDFT得hM (n),用hM(n)代替hd(n);d)选择适当的窗函数w(n),根据h(n)= h d(n)w(n)求所需设计的FIR滤波器单位脉冲响应;e)求H(e jω),分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。
窗函数的傅式变换W(e jω)的主瓣决定了H(e jω)过渡带宽。
W(e jω)的旁瓣大小和多少决定了H(e jω)在通带和阻带范围内波动幅度,常用的几种窗函数有:a)矩形窗 w(n)=R N(n);b)Hanning窗;c)Hamming窗;d)Blackmen窗;e)Kaiser窗。
(x)为零阶贝塞尔函数。
式中Io三、实验内容。
用Hanning窗设计一线性相位带通滤波器,(1)N=15,观察它的实际3dB和20dB带宽。
&实验四 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。
目录1. 滤波简介 (1)1.1 数字滤波技术 (1)1.2 FIR滤波器 (1)1.3 设计方法 (2)1.3.1 MATLAB结合窗函数设计方法 (2)1.3.2 设计函数的选取 (2)1.3.3 窗函数的构造 (3)1.3.4 窗函数的设计条件 (3)2. 基本窗函数 (5)2.1 矩形窗 (5)2.2 三角形窗 (5)2.3 汉宁窗(升余弦窗) (5)3. 各类窗函数比较 (7)3.1 窗函数绘图比较 (7)3.2 窗函数法设计步骤 (7)3.3 窗函数法设计比较 (8)4. 具体设计内容 (13)4.1 矩形窗设计 (13)4.2 三角窗设计 (14)4.3 布莱克曼窗设计 (16)4.4 结果分析 (18)5. 课设心得 (19)参考文献 (20)本科生课程设计成绩评定表 (21)1. 滤波简介1.1 数字滤波技术数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比例,所以实质上是一种程序滤波。
与此对应的就是模拟滤波,模拟滤波主要无源滤波(由电阻、电容、电感等不外接电源的元件组成)与有源滤波(由运算放大器等需要外接电源的元件组成),其目的是将信号中的噪音和干扰信号滤去或者将希望得到的频率信号滤出为我所用。
数字滤波的出现克服了模拟滤波的很多不足,具有以下优点:1.是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。
2.可以对频率很低的信号实现滤波,克服了模拟滤波的缺陷。
3.可以根据不同信号采用不同的滤波方法或参数,具有灵活、方便、功能强的特点。
1.2 FIR滤波器FIR滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,是稳定的系统。
FIR滤波器具有以下主要优点:1.FIR滤波器具有严格的线性相位;2.FIR滤波器永远稳定;3.FIR滤波器设计方法一般是线性的;4.FIR滤波器在硬件上具有更高的运行效率;5.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滤波器的单位冲激响应h (n)为一个N点序列,0 ≤ n ≤N —1,则滤波器的系统函数为H(z)=∑h(n)*z^-n。
就是说,它有(N—1)阶极点在z = 0处,有(N—1)个零点位于有限z平面的任何位置。
三.实验内容与要求1.编写用改进的升余弦窗设计FIR线性相应低通数字滤波器的程序,已知wc=0.5,N=21.这里wc为低通滤波器的截止频率,N为滤波器的长度,滤波器的阶数为N-1.2.调试运行程序,要求在屏幕上显示出单位脉冲响应h(n)的数值.画出其幅度响应 |H |及20lg |H |的曲线.3.画出窗口函数w(n)及其频谱W的幅度|W |和20lg |W |的曲线.四.试验程序及图谱1.N=21;Window=hamming(N);wc=0.5*pi;b=fir1(N-1,wc/pi,window);freqz(b,1,512);2.N=21;wc=0.5*pi;r=(N-1)/2;n=0:N-1;hdu=sin(wc*(n-r))/pi./(n-r);if rem(N,2)~=0;hdu(r+1)=wc/pi;endwn=hamming(N);h=hdu.*wn';H=fft(h,512);w=2*[0:511]/512;subplot(3,1,1);plot(w,20*log10(abs(H)));subplot(3,1,2);plot(hdu);subplot(3,1,3);plot(w,abs(H));3.N=21;wc=0.5*pi;r=(N-1)/2;n=0:N-1;hdu=sin(wc*(n-r))/pi./(n-r);if rem(N,2)~=0;hdu(r+1)=wc/pi;endwn=hamming(N);h=hdu.*wn';H=fft(h,512);Wn=fft(wn,100);magWn=abs(Wn);phaWn=angle(Wn);w=2*[0:511]/512;subplot(3,1,1);plot(wn);subplot(3,1,2);stem(magWn);subplot(3,1,3);stem(20*log10(magWn));一.实验目的1)掌握数字滤波器的计算机仿真方法。
《数字信号处理》实践报告题 目: 实验四 用窗函数法设计 FIR 数字滤波器实验四:用窗函数法设计 FIR 数字滤波器1. 实验目的(1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
(2) 熟悉线性相位FIR 数字滤波器特性。
(3) 了解各种窗函数对滤波特性的影响。
2. 实验原理与方法如果所希望的滤波器的理想频率响应函数为H d (e j ω),则其对应的单位脉冲响应为h d (n) =⎰-ππωωωπd e e Hn j j d)(21—— (4.1)窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。
由于h d(n)往往是无限长序列,且是非因果的,所以用窗函数。
w(n)将h d(n)截断,并进行加权处理,得到:h(n) = h d(n) w(n) ——(4.2)h(n)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数H(e jω)为H(e jω) =∑-=-1) (N nnjenhω——(4.3)式中,N为所选窗函数w(n)的长度。
由第七章可知,用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N的取值。
设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。
各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见第七章。
这样选定窗函数类型和长度N后,求出单位脉冲响应h(n) = h d(n)·w(n),并按式(4.3)求出H(e jω)。
H(e jω)是否满足要求,要进行验算。
一般在h(n)尾部加零使长度满足2的整数次幂,以便用FFT计算H(e jω)。
如果要观察细节,补零点数增多即可。
如果H(e jω)不满足要求,则要重新选择窗函数类型和长度N,再次验算,直至满足要求。
如果要求线性相位特性,则h(n)还必须满足:h(n) = ±h( N - 1 –n )根据上式中的正、负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。
实验四用窗函数法设计FIR数字滤波器%实验四:用窗函数法设计FIR数字滤波器clear allclose allN=input('输入窗函数长度N=?(输入0=退出)'); %注意加分号与不加分号的区别while(N~=0)wc=input('输入希望逼近的理想低通滤波器的截止频率Wc=?'); %注意截止频率pi/4的输入,matlab中已经默认定义了pin=0:(N-1);alpha=(N-1)/2;m=n-alpha+eps;hd=sin(wc*m)./(pi*m); %得到理想低通滤波器(教材P333式7-41)k=input('请选择窗函数类型(1=矩形;2=汉宁;3=海明;4=布莱克曼):');if k==1B=boxcar(N); %产生矩形窗string=['Boxcar, N=',num2str(N)]; %text函数使用字符串string在图中标明所用窗的类型及长度elseif k==2 %注意elseif与else if的区别, 有几个独立的if就要求有几个endB=hamming(N);string=['Hamming, N=',num2str(N)];elseif k==3B=hanning(N);string=['Hanning, N=',num2str(N)];elseB=blackman(N)string=['Blackman, N=',num2str(N)];endh=hd.*(B)'; %得到FIR数字滤波器h(n)=hd(n)w(n), 注意*是矩阵相乘,.*是矩阵的对应元素相乘[H,w]=freqz(h,[1],1024); %求滤波器h(n)的频率响应;对FIR而言, H(z)分子分母多项式的系数向量b=[1], a=h;返回向量H的点数N =1024db=20*log10(abs(H)+eps); %得到幅值pha=angle(H); %得到相位%绘制单位脉冲响应h(n)、幅频衰减特性20lg︱H(ejw)︱)、相频特性和幅频特性︱H(ejw)︱的波形figure; %加figure语句,下一个plot所绘出的图不会把上次的图给取代。
实验四 窗函数法设计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 可以提供不同的过渡带宽。
由于贝塞尔函数比较复杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。
已知给定的指标,,R p st p s A ωω和 ,滤波器长度N 和凯瑟窗参数β可以按如下凯瑟窗方程给出过渡带带宽:st p ωωω∆=-7.9512.285s A N ω-≈+∆0.40.1102(8.7),500.5842(21)0.07886(21),2150s s s s s A A A A A β-≥⎧⎪=⎨-+-<<⎪⎩频率取样设计FIR 滤波器 1.基本原理频率取样法从频域出发,把理想的滤波器()j d H e ω等间隔采样得到()d H k ,将()d H k 作为实际设计滤波器的()H k :2()()()|0,1,,1j d k NH k H k H e k N ωπω====-L得到()H k 以后可以由()H k 来确定唯一确定滤波器的单位脉冲响应()h n ,()j H e ω可以由()H k 求得:10()[()]2()()()N j k h n IDFT H k H e H k k Nωπφω-===-∑其中()x φ为内插函数:12sin(/2))sin(/2)N j N e N ωωφωω--=⋅(有()H k 求得的频率响应()j H e ω将逼近()j d H e ω。
如果我们设计的是线性相位FIR 滤波器,则()H k 的幅度和相位满足线性相位滤波器的约束条件。
我们将()H k 表示为如下形式()()()=()()j k j k r H k H k e H k e θθ=当()h n 为实数,则*()()H k H N k =-由此得到()()r r H k H N k =-即()/2r H k k N =以为中心偶对称。
在利用线性相位条件可知,对于1型和2型线性相位滤波器:121()0,,22()121()()1,122N kN k N k N N N k k N N πθπ⎧--⎢⎥-=⎪⎢⎥⎪⎣⎦=⎨--⎢⎥⎪-=+-⎢⎥⎪⎣⎦⎩L L对于3型和4型线性相位滤波器121()0,,222()121()()1,1222N kN k N k N N N k k N N ππθππ⎧--⎢⎥±-=⎪⎢⎥⎪⎣⎦=⎨--⎢⎥⎪-=+-⎢⎥⎪⎣⎦⎩L m L2.设计步骤(1)由给定的理想滤波器给出()r H k 和()k θ。
(2)由()()()=()()j k j k r H k H k eH k e θθ=求得()H k(3)根据()H k 求得()h n 或()j H e ω四、实验内容1、设计一个数字低通FIR 滤波器,其技术指标如下:0.2,0.25p p R dB ωπ==0.3,50st s A dB ωπ==分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。
结合实验结果,分别讨论采用上述方法设计的数字滤波器是否都能满足给定指标要求。
(1)矩形窗 程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp; N=ceil(1.8*pi/tr_width) n=0:N-1;wc=(wst+wp)/2; alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha)); w_boxcar=boxcar(N)'; h=hd.*w_boxcar; subplot(221);stem(n,hd,'filled');axis tight ;xlabel('n');ylabel('hd(n)'); [Hr,w1]=zerophase(h); subplot(222); plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled');axis tight ;xlabel('n');ylabel('h(n)'); [H,w]=freqz(h,1); subplot(224);plot(w/pi,20*log10(abs(H)/max(H)));axis tight ;xlabel('\omega/\pi');ylabel('dB'); grid on ;MATLAB 图形:(2)汉宁窗 程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp; N=ceil(6.2*pi/tr_width) n=0:N-1;wc=(wst+wp)/2; alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha)); w_boxcar=hanning(N)'; h=hd.*w_boxcar; subplot(221);stem(n,hd,'filled');axis tight ;xlabel('n');ylabel('hd(n)'); [Hr,w1]=zerophase(h); subplot(222); plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled');axis tight ;xlabel('n');ylabel('h(n)'); [H,w]=freqz(h,1); subplot(224);plot(w/pi,20*log10(abs(H)/max(H)));n h d (n )0.51-0.500.511.5ω/πH (ω)n h (n)0.20.40.60.8-80-60-40-20ω/πd Baxis tight ;xlabel('\omega/\pi');ylabel('dB'); grid on ; MATLAB 图形:(3)海明窗 程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp; N=ceil(6.6*pi/tr_width) n=0:N-1;wc=(wst+wp)/2;alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha)); w_boxcar=hamming(N)'; h=hd.*w_boxcar; subplot(221);stem(n,hd,'filled');axis tight ;xlabel('n');ylabel('hd(n)'); [Hr,w1]=zerophase(h); subplot(222); plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled'); axis tight ; xlabel('n');nh d (n )0.51-0.500.511.5ω/πH (ω)nh (n )0.20.40.60.8-120-100-80-60-40-200ω/πd Bylabel('h(n)'); [H,w]=freqz(h,1); subplot(224);plot(w/pi,20*log10(abs(H)/max(H)));axis tight ;xlabel('\omega/\pi');ylabel('dB'); grid on ; MATLAB 图形:(4)布莱克曼窗 程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp; N=ceil(11*pi/tr_width) n=0:N-1;wc=(wst+wp)/2;alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha)); w_boxcar=blackman(N)'; h=hd.*w_boxcar; subplot(221);stem(n,hd,'filled');axis tight ;xlabel('n');ylabel('hd(n)'); [Hr,w1]=zerophase(h); subplot(222); plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled');axis tight ;xlabel('n');ylabel('h(n)');nh d (n )-0.500.511.5ω/πH (ω)nh (n )0.20.40.60.8-100-50ω/πd B[H,w]=freqz(h,1); subplot(224);plot(w/pi,20*log10(abs(H)/max(H)));axis tight ;xlabel('\omega/\pi');ylabel('dB'); grid on ;MATLAB 图形为:(5)凯瑟窗 程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp;As=50; N=ceil((As-7.95)/(2.285*tr_width))+1; beta=0.1102*(As-8.7); n=0:N-1;wc=(wst+wp)/2;alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha)); w_boxcar=kaiser(N,beta)'; h=hd.*w_boxcar; subplot(221);stem(n,hd,'filled');axis tight ;xlabel('n');ylabel('hd(n)'); [Hr,w1]=zerophase(h); subplot(222); plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled');nh d (n )-0.500.511.5ω/πH (ω)nh (n )-150-100-50ω/πd Baxis tight ;xlabel('n');ylabel('h(n)'); [H,w]=freqz(h,1); subplot(224);plot(w/pi,20*log10(abs(H)/max(H)));axis tight ;xlabel('\omega/\pi');ylabel('dB'); grid on ; MATLAB 图形:2、设计一个数字带通FIR 滤波器,其技术指标如下: 下阻带边缘:10.2,60st s A dB ωπ== 下通带边缘:10.35,1p p R dB ωπ== 上通带边缘:20.65,1p p R dB ωπ== 上阻带边缘:20.8,60st s A dBωπ==程序代码:wp1=0.2*pi;Rp1=1; wst1=0.35*pi;A1=60; width1=wst1-wp1;N1=ceil(11*pi/width1)+1; n1=0:(N1-1);wc1=(wp1+wst1)/2; alpha=(N1-1)/2;wp2=0.65*pi;Rp2=1;wst2=0.8*pi;A2=60;nh d (n )-0.50.511.5ω/πH (ω)nh (n )-100-50ω/πd Bwidth2=wst2-wp2;N2=ceil(11*pi/width2)+1; n2=0:(N2-1);wc2=(wp2+wst2)/2; alpha=(N2-1)/2;hd=(wc2/pi)*sinc((wc2/pi)*(n2-alpha))-(wc1/pi)*sinc((wc1/pi)*(n1-alpha)); w_w=blackman(N1)'; h=hd.*w_w; subplot(221);stem(n1,h,'filled'); subplot(222); [H,w]=freqz(h,1);plot(w/pi,20*log10(abs(H)/max(abs(H)))); subplot(223);[Hr,w1]=zerophase(h); plot(w1/pi,Hr); subplot(224);stem(n1,hd,'filled'); [Hr,wl]=zerophase(h); grid on ; MATLAB 图形:3.采用频率取样法设计FIR 数字低通滤波器,满足以下指标2040608000.51-150-100-500.51-0.500.511.50204060800.2,0.250.3,50p p st s R dB A dBωπωπ====(1)取N=20,过渡带没有样本。