实验6FIR滤波器设计(可编辑修改word版)
实验六FIR滤波器的设计
实验六、用窗函数法设计FIR 数字滤波器一、实验目的:(1)熟悉基本的窗函数,及其特点。
(2)掌握用窗函数法设计FIR 数字滤波器的原理和方法。
(3)熟悉线性相位FIR 数字滤波器特性。
二.实验原理(一)FIR 滤波器的设计FIR 滤波器具有严格的相位特性,这对于语音信号处理和数据传输是很重要的。
目前FIR 滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。
本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。
它是从时域出发,用一个窗函数截取一个理想的)(n h d 得到h(n),以有限长序列h(n)近似理想的)(n h d :如果从频域出发,用理想的)(jw d e h 在单位圆上等角度取样得到H (k ),根据h(k)得到H(z)将逼近理想的)(z H d 这就是频率取样法。
(二)窗函数设计法同其它的的数字滤波器设计的方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。
一般是给定一个理想的频率响应)(jw d e h ,使所设计的FIR 滤波器的频率响应)(jw e h 去逼近所要求的理想的滤波器的响应)(jw d e h 窗函数设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数。
∑-=-=1)()(N n jw jwn e n h e H去逼近)(jw d e h 。
我们知道,一个理想的频率响应)(jw d e h 的傅里叶变换⎰=ππ20)(21)(dw e e H n h jwnjw d d 所得到的理想的单位脉冲响应)(n h d 往往是一个无限长序列,对)(n h d 经过适当的加权、截取处理才得到一个所需要的有限长脉冲响应序列。
对应不同的加权、截断,就有不同的窗函数。
所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积。
即:)()()(n w n h n h d =由此可见,窗函数的性质就决定了滤波器的品质。
数字信号处理实验报告-FIR滤波器的设计与实现
数字信号处理实验报告-FIR滤波器的设计与实现在数字信号处理中,滤波技术被广泛应用于时域处理和频率域处理中,其作用是将设计信号减弱或抑制被一些不需要的信号。
根据滤波器的非线性抑制特性,基于FIR(Finite Impulse Response)滤波器的优点是稳定,易设计,可以得到较强的抑制滤波效果。
本实验分别通过MATLAB编程设计、实现、仿真以及分析了一阶低通滤波器和平坦通带滤波器。
实验步骤:第一步:设计一阶低通滤波器,通过此滤波器对波型进行滤波处理,分析其对各种频率成分的抑制效果。
为此,采用零极点线性相关算法设计滤波器,根据低通滤波器的特性,设计的低通滤波器的阶次为n=10,截止频率为0.2π,可以使设计的滤波器被称为一阶低通滤波器。
第二步:设计平坦通带滤波器。
仿真证明,采用兩個FIR濾波器組合而成的阻礙-提升系統可以實現自定義的總三值響應的設計,得到了自定義的總三值響應函數。
实验结果:1、通过MATLAB编程,设计完成了一阶低通滤波器,并通过实验仿真得到了一阶低通滤波器的频率响应曲线,证明了设计的滤波器具有良好的低通性能,截止频率为0.2π。
在该频率以下,可以有效抑制波形上的噪声。
2、设计完成平坦通带滤波器,同样分析其频率响应曲线。
从实验结果可以看出,此滤波器在此频率段内的通带性能良好,通带范围内的信号透过滤波器后,损耗较小,滞后较小,可以满足各种实际要求。
结论:本实验经过实验操作,设计的一阶低通滤波器和平坦通带滤波器具有良好的滤波特性,均已达到预期的设计目标,证明了利用非线性抑制特性实现FIR滤波处理具有较强的抑制滤波效果。
本实验既有助于深入理解FIR滤波器的设计原理,也为其他应用系统的设计和开发提供了指导,进而提高信号的处理水平和质量。
FIR数字滤波器的设计实验报告
数字信号处理实验报告姓名:寇新颖 学号:026 专业:电子信息科学与技术实验五 FIR 数字滤波器的设计一、实验目的1.熟悉FIR 滤波器的设计基本方法2.掌握用窗函数设计FIR 数字滤波器的原理与方法,熟悉相应的计算机高级语言编程。
3.熟悉线性相位FIR 滤波器的幅频特性和相位特性。
4.了解各种不同窗函数对滤波器性能的影响。
二、实验原理与方法FIR 滤波器的设计问题在于寻求一系统函数)(z H ,使其频率响应)(ωj e H 逼近滤波器要求的理想频率响应)(ωj d eH ,其对应的单位脉冲响应)(n h d 。
1.用窗函数设计FIR 滤波器的基本方法设计思想:从时域从发,设计)(n h 逼近理想)(n h d 。
设理想滤波器)(ωj d e H 的单位脉冲响应为)(n h d 。
以低通线性相位FIR 数字滤波器为例。
⎰∑--∞-∞===ππωωωωωπd e e Hn h e n he H jn j dd jn n dj d )(21)()()()(n h d 一般是无限长的,且是非因果的,不能直接作为FIR 滤波器的单位脉冲响应。
要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断)()()(n w n h n h d =,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR 滤波器的单位脉冲响应。
按照线性相位滤波器的要求,h(n)必须是偶对称的。
对称中心必须等于滤波器的延时常数,即⎩⎨⎧-==2/)1()()()(N a n w n h n h d 用矩形窗设计的FIR 低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs )效应。
为了消除吉布斯效应,一般采用其他类型的窗函数。
2.典型的窗函数(1)矩形窗(Rectangle Window))()(n R n w N =其频率响应和幅度响应分别为:21)2/sin()2/sin()(--=N j j eN e W ωωωω,)2/sin()2/sin()(ωωωN W R =(2)三角形窗(Bartlett Window)⎪⎩⎪⎨⎧-≤<----≤≤-=121,122210,12)(N n N N n N n N n n w其频率响应为:212])2/sin()4/sin([2)(--=N j j e N N e W ωωωω(3)汉宁(Hanning)窗,又称升余弦窗)()]12cos(1[21)(n R N n n w N --=π其频率响应和幅度响应分别为:)]12()12([25.0)(5.0)()()]}12()12([25.0)(5.0{)()21(-++--+==-++--+=---N W N W W W e W eN W N W W e W R R R aj N j R R R j πωπωωωωπωπωωωωω(4)汉明(Hamming)窗,又称改进的升余弦窗)()]12cos(46.054.0[)(n R N n n w N --=π其幅度响应为:)]12()12([23.0)(54.0)(-++--+=N W N W W W R R R πωπωωω (5)布莱克曼(Blankman)窗,又称二阶升余弦窗)()]14cos(08.0)12cos(5.042.0[)(n R N n N n n w N -+--=ππ 其幅度响应为:)]14()14([04.0)]12()12([25.0)(42.0)(-++--+-++--+=N W N W N W N W W W R R R R R πωπωπωπωωω(6)凯泽(Kaiser)窗10,)())]1/(21[1()(020-≤≤---=N n I N n I n w ββ其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。
数字信号处理实验FIR数字滤波器的设计
数字信号处理实验:FIR数字滤波器的设计1. 引言数字滤波器是数字信号处理的关键技术之一,用于对数字信号进行滤波、降噪、调频等操作。
FIR (Finite Impulse Response) 数字滤波器是一种常见的数字滤波器,具有线性相应和有限的脉冲响应特性。
本实验旨在通过设计一个FIR数字滤波器来了解其基本原理和设计过程。
2. FIR数字滤波器的基本原理FIR数字滤波器通过对输入信号的每一个样本值与滤波器的冲激响应(滤波器的系数)进行线性加权累加,来实现对信号的滤波。
其数学表达式可以表示为:y(n) = b0 * x(n) + b1 * x(n-1) + b2 * x(n-2) + ... + bN * x(n-N)其中,y(n)表示滤波器的输出,x(n)表示滤波器的输入信号,b0~bN表示滤波器的系数。
FIR数字滤波器的脉冲响应为有限长度的序列,故称为有限冲激响应滤波器。
3. FIR数字滤波器的设计步骤FIR数字滤波器的设计主要包括以下几个步骤:步骤1: 确定滤波器的阶数和截止频率滤波器的阶数决定了滤波器的复杂度和性能,而截止频率决定了滤波器的通带和阻带特性。
根据实际需求,确定滤波器的阶数和截止频率。
步骤2: 选择滤波器的窗函数窗函数是FIR滤波器设计中常用的一种方法,可以通过选择不同的窗函数来实现不同的滤波器特性。
常用的窗函数有矩形窗、汉宁窗、汉明窗等。
根据实际需求,选择合适的窗函数。
步骤3: 计算滤波器的系数根据选择的窗函数和滤波器的阶数,使用相应的公式或算法计算滤波器的系数。
常见的计算方法有频率采样法、窗函数法、最小二乘法等。
步骤4: 实现滤波器根据计算得到的滤波器系数,可以使用编程语言或专用软件来实现滤波器。
步骤5: 评估滤波器性能通过输入测试信号,观察滤波器的输出结果,评估滤波器的性能和滤波效果。
常见评估指标有滤波器的幅频响应、相频响应、群延迟等。
4. 实验步骤本实验将以Matlab软件为例,演示FIR数字滤波器的设计步骤。
FIR滤波器设计实验报告
FIR滤波器设计实验报告实验目的:学习和掌握有限脉冲响应(FIR)滤波器的设计方法,了解数字滤波器的原理和实现。
实验器材:计算机、Matlab软件、FIR滤波器设计工具。
实验原理:1.确定滤波器的规格:包括通带频率、阻带频率、通带纹波、阻带衰减等参数。
2. 根据滤波器规格选择合适的FIR滤波器设计方法:常见的设计方法有窗函数法、频域近似法、Remez算法等。
3.根据设计方法计算FIR滤波器的系数:根据设计方法的不同,计算滤波器的系数也有所区别。
4.对FIR滤波器进行验证和优化:可以通过频率响应、幅频特性等指标对滤波器进行调整,并进行验证。
实验步骤:1.确定滤波器规格:设置通带频率为3kHz,阻带频率为5kHz,通带纹波为0.01dB,阻带衰减为40dB。
2.选择窗函数法进行FIR滤波器设计。
3.根据滤波器规格计算滤波器的阶数。
4.根据阶数选择合适的窗函数。
5.计算FIR滤波器的系数。
6.通过绘制滤波器的频率响应曲线进行验证。
7.分析滤波器的性能,并对滤波器进行优化。
实验结果:根据以上步骤进行设计和计算,得到了FIR滤波器的系数,利用Matlab绘制了滤波器的频率响应曲线。
分析和讨论:根据频率响应曲线,可以看出滤波器在通带频率范围内有较好的衰减效果,滤波器的阻带频率范围内衰减也满足要求。
但是在通带和阻带之间存在一定的过渡带,可能会对信号造成一部分的失真。
因此,可以考虑进一步优化滤波器的设计,使其在通带和阻带之间的过渡带更加平滑,减小失真的影响。
结论:通过本次实验,我们学习并掌握了FIR滤波器的设计方法,了解了数字滤波器的原理和实现。
在实际应用中,可以根据需要选择合适的FIR滤波器设计方法,并根据滤波器的规格进行计算和调整。
通过不断优化和验证,可以得到满足要求的FIR滤波器,实现对数字信号的滤波处理。
实验六用窗函数法设计FIR滤波器分析解析
实验六用窗函数法设计FIR滤波器分析解析一、引言数字滤波器是数字信号处理中的重要组成部分。
滤波器可以用于去除噪声、调整频率响应以及提取感兴趣的信号。
有许多方法可以设计数字滤波器,包括窗函数法、频域法和优化法等。
本实验将重点介绍窗函数法设计FIR滤波器的原理和过程。
二、窗函数法设计FIR滤波器窗函数法是设计FIR滤波器的一种常用方法。
其基本原理是将滤波器的频率响应与理想滤波器的频率响应进行乘积。
理想滤波器的频率响应通常为矩形函数,而窗函数则用于提取有限长度的理想滤波器的频率响应。
窗函数的选择在FIR滤波器的设计中起着重要的作用。
常用的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
对于每种窗函数,都有不同的特性和性能指标,如主瓣宽度、副瓣抑制比等。
根据不同的应用需求,可以选择合适的窗函数。
窗函数法设计FIR滤波器的具体步骤如下:1.确定滤波器的阶数N。
阶数N决定了滤波器的复杂度,一般情况下,阶数越低,滤波器的简单度越高,但频率响应的近似程度也会降低。
2.确定滤波器的截止频率。
根据应用需求,确定滤波器的截止频率,并选择合适的窗函数。
3.根据窗函数长度和截止频率计算理想滤波器的频率响应。
根据所选窗函数的特性,计算理想滤波器的频率响应。
4.根据理想滤波器的频率响应和窗函数的频率响应,得到所需的FIR滤波器的频率响应。
将理想滤波器的频率响应与窗函数的频率响应进行乘积,即可得到所需滤波器的频率响应。
5.对所得到的频率响应进行逆傅里叶变换,得到时域的滤波器系数。
6.实现滤波器。
利用所得到的滤波器系数,可以通过卷积运算实现滤波器。
三、实验结果与分析本实验以Matlab软件为平台,利用窗函数法设计了一个低通滤波器。
滤波器的阶数为16,截止频率为500Hz,采样频率为1000Hz,选择了汉宁窗。
根据上述步骤,计算得到了所需的滤波器的频率响应和时域的滤波器系数。
利用这些系数,通过卷积运算,实现了滤波器。
为了验证滤波器的性能,将滤波器应用于输入信号,观察输出信号的变化。
FIR数字滤波器设计实验_完整版
FIR数字滤波器设计实验_完整版本实验旨在设计一种FIR数字滤波器,以滤除信号中的特定频率成分。
下面是完整的实验步骤:材料:-MATLAB或其他支持数字信号处理的软件-计算机-采集到的信号数据实验步骤:1.收集或生成需要滤波的信号数据。
可以使用外部传感器采集数据,或者在MATLAB中生成一个示波器信号。
2. 在MATLAB中打开一个新的脚本文件,并导入信号数据。
如果你是使用外部传感器采集数据,请将数据以.mat文件的形式保存,并将其导入到MATLAB中。
3.对信号进行预处理。
根据需要,你可以对信号进行滤波、降噪或其他预处理操作。
这可以确保信号数据在输入FIR滤波器之前处于最佳状态。
4.确定滤波器的设计规范。
根据信号的特性和要滤除的频率成分,确定FIR滤波器的设计规范,包括滤波器的阶数、截止频率等。
你可以使用MATLAB中的函数来帮助你计算滤波器参数。
5. 设计FIR滤波器。
使用MATLAB中的fir1函数或其他与你所使用的软件相对应的函数来设计满足你的规范条件的FIR滤波器。
你可以选择不同的窗函数(如矩形窗、汉宁窗等)来平衡滤波器的频域和时域性能。
6. 对信号进行滤波。
将设计好的FIR滤波器应用到信号上,以滤除特定的频率成分。
你可以使用MATLAB中的conv函数或其他相应函数来实现滤波操作。
7.分析滤波效果。
将滤波后的信号与原始信号进行比较,评估滤波效果。
你可以绘制时域图、频域图或其他特征图来分析滤波效果。
8.优化滤波器设计。
如果滤波效果不理想,你可以调整滤波器设计参数,重新设计滤波器,并重新对信号进行滤波。
这个过程可能需要多次迭代,直到达到最佳的滤波效果。
9.总结实验结果。
根据实验数据和分析结果,总结FIR滤波器设计的优点和缺点,以及可能的改进方向。
通过完成以上实验步骤,你将能够设计并应用FIR数字滤波器来滤除信号中的特定频率成分。
这对于许多信号处理应用都是非常重要的,如音频处理、图像处理和通信系统等。
实验六FIR数字滤波器的设计
实验六FIR数字滤波器的设计实验六FIR数字滤波器的设计⼀、实验⽬的(1)掌握⽤窗函数法设计FIR数字滤波器的原理和⽅法。
(2)掌握⽤等波纹最佳逼近法设计FIR数字滤波器的原理和⽅法。
(3)掌握⽤海明窗设计FIR数字滤波器的原理和⽅法。
(4)学会调⽤MATLAB函数设计与实现FIR滤波器。
⼆、实验内容及步骤(1)掌握⽤窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;(2)调⽤信号产⽣函数xtg产⽣具有加性噪声的信号xt,并⾃动显⽰xt及其频谱;图1 具有加性噪声的信号x(t)及其频谱(3)请设计低通滤波器,从⾼频噪声中提取xt中的单频调幅信号,要求信号幅频失真⼩于0.1dB,将噪声频谱衰减60dB。
先观察xt的频谱,确定滤波器指标参数。
(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调⽤MATLAB函数fir1设计⼀个FIR低通滤波器。
并编写程序,调⽤MATLAB快速卷积函数fftfilt实现对xt的滤波。
绘图显⽰滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。
(5)重复(3),滤波器指标不变,但改⽤等波纹最佳逼近法,调⽤MATLAB函数remezord和remez设计FIR数字滤波器。
并⽐较两种设计⽅法设计的滤波器阶数。
(6)⽤海明窗设计⼀个阶数为48,通带范围为0.35pi≤w≤0.65pi 的带通线性相位滤波器。
提⽰:1.采样频率Fs=1000Hz,采样周期T=1/Fs;2.可选择滤波器指标参数:通带截⽌频率fp=120Hz,阻带截⾄频率fs=150Hz,换算成数字频率,通带截⽌频率p 20.24pfωπ=T=π,通带最⼤衰为0.1dB,阻带截⾄频率s 20.3sfωπ=T=π,阻带最⼩衰为60dB。
3.实验程序框图:图2 实验程序框图附件:(1)信号产⽣函数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=0.1;As=70; % 滤波器指标fb=[fp,fs];m=[0,1]; % 计算remezord函数所需参数f,m,devdev=[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,1.2]);xlabel('f/Hz');ylabel('幅度')(2)⽤窗函数法设计FIR滤波器% FIR数字滤波器设计及软件实现clear all;close all;%==调⽤xtg产⽣信号xt, xt长度N=1000,并显⽰xt及其频谱,=========N=1000;xt=xtg(N);fp=120; fs=150;Rp=0.2;As=60;Fs=1000; T=1/Fs; % 输⼊给定指标% (1) ⽤窗函数法设计滤波器wc=(fp+fs)/Fs; %理想低通滤波器截⽌频率(关于pi归⼀化)B=2*pi*(fs-fp)/Fs; %过渡带宽度指标Nb=ceil(11*pi/B); %blackman窗的长度Nhn=fir1(Nb-1,wc,blackman(Nb));Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性ywt=fftfilt(hn,xt,N); %调⽤函数fftfilt对xt滤波figure(2);subplot(3,1,1);myplot(hn,xt); %调⽤绘图函数myplot绘制损耗函数曲线y1t='y_w(t)';subplot(3,1,2);tplot(ywt,T,y1t);(3) % ⽤等波纹最佳逼近法设计滤波器fb=[fp,fs];m=[1,0]; % 确定remezord函数所需参数f,m,devdev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)]; [Ne,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数hn=remez(Ne,fo,mo,W); % 调⽤remez函数进⾏设计Hw=abs(fft(hn,1024)); % 求设计的滤波器频率特性yet=fftfilt(hn,xt,N); % 调⽤函数fftfilt对xt滤波figure(3);subplot(3,1,1);myplot(hn,xt); %调⽤绘图函数myplot绘制损耗函数曲线y2t='y_e(t)';subplot(3,1,2);tplot(yet,T,y2t)(4) 上⾯代码调⽤的⼦函数:(4-1) myplot:计算时域离散系统损耗函数并绘制曲线图。
fir滤波器设计实验报告
fir滤波器设计实验报告一、实验目的本次实验的目的是设计FIR滤波器,从而实现信号的滤波处理。
二、实验原理FIR滤波器是一种数字滤波器,它采用有限长的冲激响应滤波器来实现频率选择性的滤波处理。
在FIR滤波器中,系统的输出只与输入和滤波器的系数有关,不存在反馈环路,因此具有稳定性和线性相位的特性。
FIR滤波器的设计最常采用Window法和最小二乘法。
Window法是指先对理想滤波器的频率特性进行窗函数的处理,再通过离散傅里叶变换来得到滤波器的时域响应。
最小二乘法则是指采用最小二乘法来拟合理想滤波器的频率特性。
本次实验采用的是Window法。
三、实验步骤1.设计滤波器的频率响应特性:根据实际需要设计出需要的滤波器的频率响应特性,通常采用理想滤波器的底通、高通、带通、带阻等特性。
2.选择窗函数:根据设计的滤波器的频率响应特性选择相应的窗函数,常用的窗函数有矩形窗、汉宁窗、汉明窗等。
3.计算滤波器的时域响应:采用离散傅里叶变换将设计的滤波器的频率响应特性转化为时域响应,得到滤波器的冲激响应h(n)。
4.归一化:将得到的滤波器的冲激响应h(n)进行归一化处理,得到单位加权的滤波器系数h(n)。
5.实现滤波器的应用:将得到的滤波器系数h(n)应用于需要滤波的信号中,通过卷积的方式得到滤波后的信号。
四、实验结果以矩形窗为例,设计一阶低通滤波器,截止频率为300Hz,采样频率为8000Hz,得到的滤波器系数为:h(0)=0.0025h(1)=0.0025滤波效果良好,经过滤波后的信号频率响应相对于滤波前有较明显的截止效应。
五、实验总结通过本次实验,我们掌握了FIR滤波器的设计方法,窗函数的选择和离散傅里叶变换的应用,使我们能够更好地处理信号,实现更有效的信号滤波。
在日常工作和学习中,能够更好地应用到FIR滤波器的设计和应用,提高信号处理的精度和效率。
实验六 有限冲激响应(FIR)数字滤波器的设计
实验报告一、实验目的1.掌握用窗函数法设计FIR 数字滤波器的原理与方法;2.熟悉线性相位FIR 数字滤波器特性;3.了解各种窗函数对滤波特性的影响。
4.加深对数字滤波器的常用指标和设计过程的理解。
二、实验原理低通滤波器的常用指标:P P P for H Ω≤Ω+≤Ω≤-,1)(1δδπδ≤Ω≤Ω≤ΩS S for H ,)(通带边缘频率P Ω,阻带边缘频率S Ω ,通带起伏P δ,通带峰值起伏])[1(log 2010dB p p δα--=,阻带起伏s δ,最小阻带衰减])[(log 2010dB s S δα-=。
数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。
在Matlab 中,可以用b=fir1(N,Wn,’ftype’,taper) 等函数辅助设计FIR 数字滤波器。
N 代表滤波器阶数;Wn 代表滤波器的截止频率(归一化频率),当设计带通和带阻滤波器时,Wn 为双元素相量;ftype 代表滤波器类型,如’high ’高通,’stop ’带阻等;taper 为窗函数类型,默认为海明窗,窗系数需要实现用窗函数blackman, hamming,hanning chebwin, kaiser 产生。
三、实验设备微型计算机、Matlab7.0教学版。
S PP SPassband StopbandTransition bandFig 1 Typical magnitudespecification for a digital LPF四、实验内容1.编制能产生矩形窗、海明窗的窗函数子程序;2.编写主程序,用不同窗设计线性相位低通FIR数字滤波器;3.对结果进行分析。
五、实验数据1.用Matlab软件编写的实验程序1(采用矩形窗)为:图1 用Matlab软件编写的实验程序1(采用矩形窗)实验结果:①. 振幅、相位:图2 振幅、相位波形图(采用矩形窗)②. 输入、输出信号:图3 输入、输出信号波形图(采用矩形窗)2.用Matlab软件编写的实验程序2(采用海明窗)为:图4 用Matlab软件编写的实验程序2(采用海明窗)说明:程序中第11行程序右边的注释应为“%采用海明窗”。
实验6FIR滤波器设计
实验6FIR滤波器设计FIR(Finite Impulse Response)滤波器是一种数字滤波器,它的输出只取决于输入序列和固定的系数,没有反馈回路。
FIR滤波器在很多领域中都有广泛的应用,比如音频信号处理、图像处理等。
本实验中我们将设计一个FIR滤波器,主要包括滤波器的设计、滤波器的实现以及滤波器的性能评估。
首先,我们需要选择一个滤波器的类型和规格。
常用的滤波器类型包括低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。
在本实验中,我们选择设计一个低通FIR滤波器。
接下来,我们需要确定滤波器的规格,包括截止频率、滤波器阶数和滤波器的类型等。
根据实际需求,我们选择截止频率为2kHz、滤波器阶数为64阶,滤波器类型为汉宁窗设计。
然后,我们需要确定滤波器的系数。
在本实验中,我们使用频率采样法设计滤波器。
首先,确定归一化截止频率:将实际截止频率除以采样频率,即2kHz/1MHz=0.002、然后,根据阶数和归一化截止频率计算出滤波器的系数。
在设计完成后,我们需要将滤波器转化为差分方程。
差分方程的形式为:y[n]=b0*x[n]+b1*x[n-1]+b2*x[n-2]+...+bN*x[n-N]其中y[n]是输出序列,x[n]是输入序列,b0,b1,b2,...,bN是滤波器的系数。
接下来,我们需要实现设计好的滤波器。
可以使用现有的FIR滤波器实现库,比如MATLAB中的“fir1”函数。
将输入序列输入滤波器,即可得到滤波后的输出序列。
最后,我们需要评估滤波器的性能。
常用的评估指标有幅频响应、相频响应和滤波器的群延迟等。
可以利用这些指标来评估滤波器的性能是否达到设计要求。
比如,可以绘制滤波器的幅频响应曲线来观察滤波器在不同频率下的增益情况。
综上所述,本实验主要介绍了FIR滤波器的设计、实现以及性能评估。
通过掌握FIR滤波器的设计方法和实现步骤,可以更好地应用FIR滤波器进行信号处理和滤波。
fir数字滤波器设计实验报告
fir数字滤波器设计实验报告FIR数字滤波器设计实验报告概述数字滤波器是数字信号处理中的重要组成部分,广泛应用于音频、图像、视频等领域。
其中,FIR数字滤波器是一种常见的数字滤波器,具有线性相位、稳定性好、易于实现等优点。
本实验旨在设计一种基于FIR数字滤波器的信号处理系统,实现对信号的滤波和降噪。
实验步骤1. 信号采集需要采集待处理的信号。
本实验采用的是模拟信号,通过采集卡将其转换为数字信号,存储在计算机中。
2. 滤波器设计接下来,需要设计FIR数字滤波器。
为了实现对信号的降噪,我们选择了低通滤波器。
在设计滤波器时,需要确定滤波器的阶数、截止频率等参数。
本实验中,我们选择了8阶低通滤波器,截止频率为500Hz。
3. 滤波器实现设计好滤波器后,需要将其实现。
在本实验中,我们采用MATLAB 软件实现FIR数字滤波器。
具体实现过程如下:定义滤波器的系数。
根据滤波器设计的公式,计算出系数值。
利用MATLAB中的filter函数对信号进行滤波。
将采集到的信号作为输入,滤波器系数作为参数,调用filter函数进行滤波处理。
处理后的信号即为滤波后的信号。
4. 结果分析需要对处理后的信号进行分析。
我们可以通过MATLAB绘制出处理前后的信号波形图、频谱图,比较它们的差异,以评估滤波器的效果。
结果显示,经过FIR数字滤波器处理后,信号的噪声得到了有效的降低,滤波效果较好。
同时,频谱图也显示出了滤波器的低通特性,截止频率处信号衰减明显。
结论本实验成功设计并实现了基于FIR数字滤波器的信号处理系统。
通过采集、滤波、分析等步骤,我们实现了对模拟信号的降噪处理。
同时,本实验还验证了FIR数字滤波器的优点,包括线性相位、稳定性好等特点。
在实际应用中,FIR数字滤波器具有广泛的应用前景。
实验6 FIR数字滤波器设计
实验6 FIR 数字滤波器设计一、实验目的:1、掌握用窗函数法设计FIR 滤波器的原理及方法。
2、熟悉线性相位FIR 滤波器的幅频特性和相频特性。
3、了解各种不同窗函数对滤波器性能的影响。
二、实验原理:设欲设计滤波器的理想频率响应为H e d j ()ω,单位脉冲响应为h n d (),h n d ()与H e d j ()ω是一对傅氏变换,因此有H eh n ed j n d j n ()()ωω==-∞∞-∑h n H eed d d j j n ()()=-⎰12πωππωω根据给定的H e d j ()ω求得的h n d ()一般是无限长的且是非因果的。
为了得到一个因果的有限长的滤波器h n (),最直接的方法是截断h n d (),或者说用一个窗口函数w n ()对h n d ()进行加窗处理h n ()= h n d ()w n ()h n ()成为实际设计FIR 滤波器的单位脉冲响应,其频率响应为)(ωj e H 为:∑-==1)()(N n j j en h e H ωω其中N 为窗口w n ()的长度。
窗口函数的形状和窗口长度N 决定了窗函数法设计出的FIR 滤波器的性能。
设计时,要根据阻带的最小衰减和过渡带宽度来选择恰当的窗函数类型和窗口长度N 。
图1低通滤波器的常用指标低通滤波器的常用指标(如图1):(1)通带边缘频率; (2)阻带边缘频率;(3)通带起伏;(4)通带峰值起伏,(5)阻带起伏,最小阻带衰减。
在MA TLAB 中,可以用b=fir1(N,Wn,’ftype’,window) 等函数辅助设计FIR 数字滤波器。
N 代表滤波器阶数;Wn 代表滤波器的截止频率(归一化频率),当设计带通和带阻滤波器时,Wn 为双元素相量;ftype 代表滤波器类型,如’high ’高通,’stop ’带阻等;window 为窗函数类型,默认为海明窗,滤波器系数向量需要用窗函数boxcar ,blackman, hamming,hanning triang, kaiser 产生。
FIR滤波器设计与实现实验报告
FIR滤波器设计与实现实验报告实验报告:FIR滤波器设计与实现一、实验目的本实验旨在通过设计和实现FIR滤波器来理解数字滤波器的原理和设计过程,并且掌握FIR滤波器的设计方法和实现技巧。
二、实验原理1.选择滤波器的类型和阶数根据滤波器的类型和阶数的不同,可以实现不同的滤波效果。
常见的滤波器类型有低通滤波器、高通滤波器、带通滤波器和带阻滤波器。
选择适当的滤波器类型和阶数可以实现对不同频率分量的滤波。
2.确定滤波器的系数在设计FIR滤波器时,系数的选择对滤波器的性能有重要影响。
通常可以使用窗函数法、最小二乘法、频率采样法等方法来确定系数的值。
常见的窗函数有矩形窗、汉明窗和布莱克曼窗等。
三、实验步骤1.确定滤波器的类型和阶数根据实际需求和信号特点,选择合适的滤波器类型和阶数。
例如,如果需要设计一个低通滤波器,可以选择实验中使用的巴特沃斯低通滤波器。
2.确定滤波器的频率响应根据滤波器的类型和阶数,确定滤波器的频率响应。
可以通过matlab等软件来计算和绘制滤波器的频率响应曲线。
3.确定滤波器的系数根据频率响应的要求,选择合适的窗函数和窗长度来确定滤波器的系数。
可以使用matlab等软件来计算和绘制窗函数的形状和频率响应曲线。
4.实现滤波器的功能将滤波器的系数应用于输入信号,通过加权求和得到输出信号的采样点。
可以使用matlab等软件来模拟和验证滤波器的功能。
四、实验结果在实际实验中,我们选择了一个4阶低通滤波器进行设计和实现。
通过计算和绘制滤波器的频率响应曲线,确定了窗函数的形状和窗长度。
在实际实验中,我们通过实现一个滤波器功能的matlab程序来验证滤波器的性能。
通过输入不同频率和幅度的信号,观察滤波器对信号的影响,验证了设计的滤波器的功能有效性。
五、实验总结通过本实验,我们深入了解了FIR滤波器的设计原理和实现方法。
通过设计和实现一个具体的滤波器,我们掌握了滤波器类型和阶数的选择方法,以及系数的确定方法。
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数字滤波器设计实验报告fir数字滤波器设计实验报告引言数字滤波器是一种常见的信号处理工具,用于去除信号中的噪声或者滤波信号以达到特定的目的。
其中,FIR(Finite Impulse Response)数字滤波器是一种常见且重要的数字滤波器,其特点是具有有限冲击响应。
本实验旨在设计并实现一个FIR数字滤波器,通过对滤波器的设计和性能评估,加深对数字滤波器的理解。
设计过程1. 确定滤波器的要求在设计FIR数字滤波器之前,首先需要明确滤波器的要求。
这包括滤波器类型(低通、高通、带通或带阻)、截止频率、滤波器阶数等。
在本实验中,我们选择设计一个低通滤波器,截止频率为1kHz,滤波器阶数为32。
2. 设计滤波器的传递函数根据滤波器的要求,我们可以利用Matlab等工具设计出滤波器的传递函数。
在本实验中,我们选择使用窗函数法设计滤波器。
通过选择合适的窗函数(如矩形窗、汉宁窗等),可以得到滤波器的传递函数。
3. 确定滤波器的系数根据滤波器的传递函数,我们可以通过离散化的方法得到滤波器的系数。
这些系数将决定滤波器对输入信号的响应。
在本实验中,我们使用了Matlab的fir1函数来计算滤波器的系数。
4. 实现滤波器在得到滤波器的系数之后,我们可以将其应用于输入信号,实现滤波器的功能。
这可以通过编程语言(如Matlab、Python等)来实现,或者使用专用的数字信号处理器(DSP)来进行硬件实现。
实验结果为了评估设计的FIR数字滤波器的性能,我们进行了一系列的实验。
首先,我们使用了一个具有噪声的输入信号,并将其输入到滤波器中。
通过比较滤波器输出信号和原始信号,我们可以评估滤波器对噪声的去除效果。
实验结果显示,设计的FIR数字滤波器能够有效地去除输入信号中的噪声。
滤波后的信号更加平滑,噪声成分明显减少。
此外,滤波器的截止频率也得到了有效控制,滤波器在截止频率之后的信号衰减明显。
讨论与总结通过本次实验,我们深入了解了FIR数字滤波器的设计和实现过程。
fir滤波器的设计实验报告
fir滤波器的设计实验报告fir滤波器的设计实验报告引言:滤波器是信号处理中常用的工具,它可以对信号进行去噪、降噪、频率调整等操作。
在本次实验中,我们将设计一种fir滤波器,通过对信号进行滤波处理,实现对特定频率成分的增强或抑制。
本报告将详细介绍fir滤波器的设计原理、实验步骤和结果分析。
一、设计原理:fir滤波器是一种无限冲激响应滤波器,其特点是具有线性相位和稳定性。
其基本原理是通过对输入信号和滤波器的冲激响应进行线性卷积运算,得到输出信号。
fir滤波器的冲激响应由一组有限长的系数决定,这些系数可以通过不同的设计方法得到,如窗函数法、最小二乘法等。
二、实验步骤:1. 确定滤波器的频率响应需求:根据实际应用需求,确定滤波器需要增强或抑制的频率范围。
2. 选择滤波器的设计方法:根据频率响应需求和系统要求,选择合适的fir滤波器设计方法。
3. 设计滤波器的冲激响应:根据所选设计方法,计算得到fir滤波器的冲激响应系数。
4. 实现滤波器的数字滤波器:将fir滤波器的冲激响应系数转换为差分方程,得到数字滤波器的差分方程表示。
5. 实现滤波器的数字滤波器:将fir滤波器的冲激响应系数转换为差分方程,得到数字滤波器的差分方程表示。
6. 通过编程实现滤波器:使用编程语言(如MATLAB)编写代码,实现fir滤波器的数字滤波器。
7. 信号滤波处理:将待滤波的信号输入到fir滤波器中,通过数字滤波器进行滤波处理,得到输出信号。
8. 结果分析:对滤波后的信号进行分析,评估滤波器的性能和效果。
三、实验结果分析:在本次实验中,我们设计了一个fir滤波器,并对一段音频信号进行滤波处理。
通过实验结果分析,我们发现滤波器能够有效地增强或抑制指定频率范围内的信号成分。
滤波后的音频信号听起来更加清晰,噪音得到了有效的抑制。
同时,我们还对滤波器的性能进行了评估。
通过计算滤波器的幅频响应曲线和相频响应曲线,我们发现滤波器在指定频率范围内的增益和相位变化符合预期。
FIR数字滤波器设计实验_完整版
FIR数字滤波器设计实验_完整版FIR数字滤波器设计实验是一种以FIR(Finite Impulse Response)数字滤波器为主题的实验。
在这个实验中,我们将学习如何设计和实现一个FIR数字滤波器,以滤除特定频率范围内的噪声、增强信号或实现其他特定的信号处理功能。
以下是一个可能的FIR数字滤波器设计实验的完整版实验步骤和要求:实验目的:1.学习FIR数字滤波器的基本原理和设计方法。
2. 熟悉Matlab等数字信号处理软件的使用。
3.实践设计和实现一个FIR数字滤波器,以实现特定的信号处理功能。
实验步骤:1.确定实验所需的信号处理功能。
例如,设计一个低通滤波器以滤除高频噪声,或设计一个带通滤波器以增强特定频率范围内的信号。
2.确定数字滤波器的规格。
包括截止频率、滤波器阶数、滤波器类型(低通、高通、带通、带阻)等。
3. 使用Matlab等数字信号处理软件进行设计和仿真。
根据信号处理功能和滤波器规格,选择合适的设计方法(如窗函数法、频率采样法等),并设计出数字滤波器的系数。
4.对设计的数字滤波器进行性能评估。
通过模拟信号输入和滤波输出、频率响应曲线等方式,评估滤波器在实现信号处理功能方面的性能。
5.利用硬件平台(如DSP处理器、FPGA等)实现设计的FIR数字滤波器。
根据设计的滤波器系数,编程实现滤波器算法,并进行实时信号处理和输出。
同时,可以利用外部信号源输入不同类型的信号,进行滤波效果验证和性能测试。
6.对滤波器设计和实现进行综合分析。
根据实际效果和性能测试结果,分析滤波器设计中的优缺点,并提出改进方案。
实验要求:1.理解FIR数字滤波器的基本原理和设计方法。
2. 掌握Matlab等数字信号处理软件的使用。
3.能够根据信号处理要求和滤波器规格,选择合适的设计方法并设计出满足要求的滤波器。
4.能够通过模拟和实验验证滤波器的性能。
5.具备对滤波器设计和实现进行综合分析和改进的能力。
通过完成上述实验,学生可以深入理解FIR数字滤波器的原理和设计方法,掌握数字信号处理软件的使用,提升数字信号处理的实践能力,并了解数字滤波器在实际应用中的重要性和价值。
实验六_FIR滤波器的实现
实验六 FIR滤波器的实现一、实验目的1. 熟悉FIR滤波器的滤波的原理2. 熟悉FIR滤波器的汇编实现3. 掌握CCS的文件输入输出操作4. 学习用MATLAB设计滤波器二、程序说明这次实验的项目文件是fir.pjt,在实现FIR滤波器时采用了三种方法,分别是fir1:基于循环缓存、fir2:基于线性缓存以及fir3:当系数是对称时,利用dsp的内部命令firs,可减小一半的循环次数。
三、实验内容1. 编译项目,装载程序和数据。
2. 调试程序,注意执行过程,特别是对fir1、fir2和fir3的调用过程。
3. 比较程序段fir1、fir2和fir3的不同点,了解循环缓存和线性缓存的实现方法,理解语句firs的意义。
4. 在ccs中观察输入输出信号的频谱图,图形窗口设置如下,当要看输出图形时,将start Address一栏改为output1、output2或output3。
四、实验结果和提示1.输入信号频率图2. 输出信号频率图五、关于实验数据1. 滤波器系数程序中的系数段.data中的内容是基于以下要求在Matlab中求得的,该数据采用Q16格式:采样频率: 8000Hz截止频率: 1500Hz阻带衰减: -50dB以下滤波器级数: 81注:在项目目录中有相应的求系数的Matlab程序,数据放在fircoef.dat 中。
2. Matlab中设计FIR滤波器的函数简介fir1 基于窗函数的fir滤波器设计——标准响应fir2 基于窗函数的fir滤波器设计——任意响应fircls 约束最小二乘fir滤波器设计——任意响应fircls1 约束最小二乘fir滤波器设计——低通与高通firls 最小二乘fir滤波器设计firrcos 升余弦fir滤波器设计intfilt 内插fir滤波器设计remez Parks_McClellan最优fir滤波器设计remezord Parks_McClellan滤波器阶数选择所附程序中用的是fir1函数,求出滤波器响应如下:3. 关于输入数据输入数据是按照采用频率8000Hz,1000个采样点的三个正弦信号组合,幅度都是0.5,频率分别是500Hz(处在通带),1550Hz(处在过渡带),3600Hz(处在截止带)。
实验6FIR滤波器设计
课程编号实验项目序号本科学生实验卡和实验报告信息科学与工程学院通信工程专业2013级1301班课程名称:数字信号处理实验项目:FIR滤波器设计2015~~2016学年第二学期学号:201308030104_ 姓名:__ _王少丹_ __ 专业年级班级: ____通信1301_________四合院___ 实验室组别________ 实验日期 __2016 年_ 6__ 月___12_ 日实验步骤方法关键代码a. 设线性相位FIR 滤波器单位抽样响应分别为h(n )={ -4,1, -1,- 2,5,6,5, -2, -1,1, -4}h(n)={ -4,1, -1,- 2,5,6,6,5,- 2, -1,1,- 4}h(n)={ -4,1,- 1, -2,5,0,- 5,2,1,- 1,4}h(n)={ -4,1, -1, -2,5,6,- 6, -5,2,1, -1,4}分别求出滤波器的幅度频率响应H(ω),系统函数H(z)以及零极点分布,并绘制相应的波形和分布图。
Type2:Type3:Type4:b. 设计FIR 数字低通滤波器,技术指标为:ωp=0.2π,ωst=0.3π,δ1=0.25dB,δ2=50dB。
(1) 通过技术指标,选择一种窗函数进行设计;(2) 求滤波器的单位抽样响应、频率响应,并绘制波形。
(3) 选择凯塞窗函数设计该滤波器,并绘制相应的波形图。
c. 设计FIR 数字带通滤波器,技术指标为:下阻带边缘:ωst1=0.2π,δs1=60dB,下通带边缘:ωp1=0.35π,δp1=1dB;上通带边缘:ωp2=0.65π,δp1=1dB,上阻带边缘:ωst2=0.8π,δs2=60dB;(1) 通过技术指标,选择一种窗函数进行设计;(2) 求滤波器的单位抽样响应、频率响应,并绘制波形。
d. 设计FIR 数字带通滤波器,技术指标为:下阻带边缘:ωst1=0.2π,δs1=60dB,下通带边缘:ωp1=0.4π,δp1=1dB;上通带边缘:ωp2=0.6π,δp1=1dB,上阻带边缘:ωst2=0.8π,δs2=60dB;(1) 通过技术指标,选择一种窗函数进行设计;(2) 求滤波器的单位抽样响应、频率响应,并绘制波形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.课程编号实验项目序号本科学生实验卡和实验报告信息科学与工程学院通信工程专业2013 级1301 班课程名称:数字信号处理实验项目:FIR 滤波器设计2015~~2016 学年第二学期教育资料学号:201308030104_ 姓名:_王少丹_ 专业年级班级:通信1301 四合院实验室组别实验日期 2016 年_ 6 月12_ 日实验步骤方法关键代码a. 设线性相位 FIR 滤波器单位抽样响应分别为h(n )={ -4,1, -1,- 2,5,6,5, -2, -1,1, -4}h(n)={ -4,1, -1,- 2,5,6,6,5,- 2, -1,1,- 4}h(n)={ -4,1,- 1, -2,5,0,- 5,2,1,- 1,4}h(n)={ -4,1, -1, -2,5,6,- 6, -5,2,1, -1,4}分别求出滤波器的幅度频率响应H(ω),系统函数 H(z)以及零极点分布,并绘制相应的波形和分布图。
Type2:Type3:Type4:b. 设计FIR 数字低通滤波器,技术指标为:ωp=0.2π,ωst=0.3π,δ1=0.25dB,δ 2=50dB 。
(1) (2) (3) 通过技术指标,选择一种窗函数进行设计;求滤波器的单位抽样响应、频率响应,并绘制波形。
选择凯塞窗函数设计该滤波器,并绘制相应的波形图。
c. 设计 FIR 数字带通滤波器,技术指标为:下阻带边缘:ωst1=0.2π,δs1=60dB,下通带边缘:ωp1=0.35π,δp1=1dB;上通带边缘:ωp2=0.65π,δp1=1dB,上阻带边缘:ωst2=0.8π,δs2=60dB;(1)通过技术指标,选择一种窗函数进行设计;(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
d. 设计 FIR 数字带通滤波器,技术指标为:下阻带边缘:ωst1=0.2π,δs1=60dB,下通带边缘:ωp1=0.4π,δp1=1dB;上通带边缘:ωp2=0.6π,δp1=1dB,上阻带边缘:ωst2=0.8π,δs2=60dB;(1)通过技术指标,选择一种窗函数进行设计;(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
e. 设计 FIR 数字带通滤波器,技术指标为:下阻带边缘:ωst1=0.2π,δs1=20dB,下通带边缘:ωp1=0.4π,δp1=1dB;上通带边缘:ωp2=0.6π,δp1=1dB,上阻带边缘:ωst2=0.8π,δs2=20dB;(1)通过技术指标,选择一种窗函数进行设计;(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
f. 设计 FIR 数字高通滤波器,技术指标为:通带截止频率为ωp=15π/27,阻带截止频率为ωst=11π/27,通带最大衰减为δ1=2.5dB,阻带最小衰减为δ2=55dB。
(1)通过技术指标,选择一种窗函数进行设计;(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
系统一:g. 设计 FIR 数字高通滤波器,技术指标为:通带截止频率为ωp=0.6π,阻带截止频率为ωst=0.4π,通带最大衰减为δ1=0.25dB,阻带最小衰减为δ2=40dB。
(1)通过技术指标,选择一种窗函数进行设计;(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
h. 滤波器的技术指标为:通带截止频率为ωp=0.6π,阻带截止频率为ωst=0.4π,通带最大衰减为δ1=0.25dB,阻带最小衰减为δ2=40dB。
(1)通过技术指标,选择一种窗函数设计一个具有π/2 相移的 FIR 高通滤波器;(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
i. 设计 FIR 数字带阻滤波器,其技术指标为:低端阻带边缘:ωst1=0.4π,δs1=40dB,低端通带边缘:ωp1=0.2π,δp1=1dB;高端通带边缘:ωp2=0.8π,δp1=1dB,高端阻带边缘:ωst2=0.6π,δs2=40dB;(1)通过技术指标,选择一种窗函数进行设计;(2)求滤波器的单位抽样响应、频率响应,并绘制波形。
FIR 滤波器的单位抽样响应为h(n)=1/9{ },编制 MATLAB 程序求系统的频率采样型结构的系数,并画出频率抽样型结构。
m. 一个理想差分器的频率响应为:用长度为 21 的汉宁窗设计一个数字 FIR 差分器,并绘制其时域和频率的响应波形。
n. 利用汉宁窗设计一个长度为 25 的数字希尔伯特变换器,并绘制它的时域和频域的响应波形。
p. FIR 数字低通滤波器的技术指标为:ωp=0.2π,ωst=0.3π,δ1=0.25dB,δ 2=50dB。
利用频率采样方法设计 FIR 数字滤波器,并绘制滤波器的单位冲激响应、幅度频率响应的波形。
q. 用窗函数法设计一个线性相位的 FIR 数字低通滤波器,其技术指标为:ωp=0.2π,ωst=0.4π,δ1=0.25dB,δ2=50dB。
(1)求滤波器的单位抽样响应、频率响应,并绘制波形。
(2)对该滤波器输入一个宽度为 10 的矩形序列,求滤波器的输出信号,并绘制相应的波形图。
代码:wp = 0.2*pi;ws = 0.4*pi;tr_width = ws-wp;M = ceil(6.6*pi/tr_width)+1;n = [0:1:M-1];wc = (ws+wp)/2;hd = ideal_lp(wc,M);w_ham = (hamming(M))';h = hd.*w_ham;[db,mag,pha,H,w] = freqz_m3(h,[1]);delta_w = 2*pi/1000;Rp = -(min(db(1:1:wp/delta_w+1)));As = -round(max(db(ws/delta_w+1:1:501)));figure(1)subplot(221)stem(n,hd);title('Ideal Impulse Rresponse')axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('hd(n)') subplot(222)stem(n,w_ham);title('Hamming Window')axis([0 M-1 0 1.1]);xlabel('n');ylabel('w(n)')subplot(223)stem(n,h);title('Actual Impuse Response')axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('h(n)')subplot(224)plot(w/pi,db);title('Magnitude Response in db');gridaxis([0 1 -100 10]);xlabel('frequence in \pi unit');ylabel('decibels')%solution of problem (b)Rn = stepseq(0,0,9)n = 0:1:9dw = w(2)-(1)w = [-fliplr(w),w(2:501)]H = [fliplr(H),H(2:501)]xw = Rn*(exp(-j)).^(n'*w)answ = H.*xwRnn = answ*exp(-j).^(w'*n)*dw/(2*pi)figure(2)subplot(221)stem(n,Rn)xlabel('n');ylabel('Rn');title('input rectangle signal in T-domain')subplot(222)stem(w/pi,xw)xlabel('w/\pi');ylabel('Rw');title('input rectangle signal in F-domain')subplot(223)plot(w/pi,abs(answ))xlabel('w/\pi');ylabel('Magnitude of H(w)');title('output signal in F-domain after filteration')subplot(224)stem(n,abs(Rnn))xlabel('n');ylabel('Rnn');title('output signal in T-domain after filteration')M = 25; alpha = (M-1)/2; n = 0:M-1;hd = (2/pi)*((sin((pi/2)*(n-alpha)).^2)./(n-alpha)); hd(alpha+1)=0;w_han = (hann(M))'; h = hd .* w_han; [Hr,w,P,L] = Hr_Type3(h);subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response')axis([-1 M -1.2 1.2]); xlabel('n'); ylabel('hd(n)');subplot(2,2,2); stem(n,w_han);title('Hann Window')axis([-1 M 0 1.2]); xlabel('n'); ylabel('w(n)')subplot(2,2,3); stem(n,h);title('Actual Impulse Response')axis([-1 M -1.2 1.2]); xlabel('n'); ylabel('h(n)')w = w'; Hr = Hr';w = [-fliplr(w), w(2:501)]; Hr = [-fliplr(Hr), Hr(2:501)];subplot(2,2,4);plot(w/pi,Hr); title('Amplitude Response');grid;xlabel('frequency in pi units'); ylabel('Hr'); axis([-1 1 -1.1 1.1]);M = 20; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l;Hrs = [1,1,1,zeros(1,15),1,1]; %Ideal Amp Res sampledHdr = [1,1,0,0]; wdl = [0,0.25,0.25,1]; %Ideal Amp Res for plottingk1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1;angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)];H = Hrs.*exp(j*angH); h = real(ifft(H,M));[db,mag,pha,grd,w] = freqz_m(h,1); [Hr,ww,a,L] = Hr_Type2(h);subplot(2,2,1);plot(wl(1:11)/pi,Hrs(1:11),'o',wdl,Hdr);axis([0,1,-0.1,1.1]); title('Frequency Samples: M=20')xlabel('frequency in pi units'); ylabel('Hr(k)');subplot(2,2,2); stem(l,h); axis([-1,M,-0.1,0.3])title('Impulse Response'); xlabel('n'); ylabel('h(n)');subplot(2,2,3); plot(ww/pi,Hr,wl(1:11)/pi,Hrs(1:11),'o');axis([0,1,-0.2,1.2]); title('Amplitude Response')xlabel('frequency in pi units'); ylabel('Hr(w)')subplot(2,2,4);plot(w/pi,db); axis([0,1,-60,10]); gridtitle('Magnitude Response'); xlabel('frequency in pi units');ylabel('Decibels');Wpl=0.2*pi;Wph=0.8*pi;Wsl=0.4*pi;Wsh=0.6*pi;tr_width=min((Wsl-Wpl),(Wph-Wsh));M=ceil(6.2*pi/tr_width)n=0:1:M-1;Wcl=(Wsl+Wpl)/2;Wch=(Wsh+Wph)/2;hd=ideal_bs(Wcl,Wch,M);w_ham=(hanning(M))';h=hd.*w_ham;[db,mag,pha,w]=freqz_m2(h,[1]);delta_w=2*pi/1000;Ap=-(min(db(1:1:Wpl/delta_w+1)))As=-round(max(db(Wsl/delta_w+1:1:Wsh/delta_w+1)))subplot(221)stem(n,hd);title('Ideal Impulse Rresponse')axis([0 M-1 -0.1 0.7]);xlabel('n');ylabel('hd(n)')subplot(222)stem(n,w_ham);title('Hamming Window')axis([0 M-1 0 1.1]);xlabel('n');ylabel('w(n)')subplot(223)stem(n,h);title('Actual Impuse Response')axis([0 M-1 -0.1 0.7]);xlabel('n');ylabel('h(n)')subplot(224)plot(w/pi,db);title('Magnitude Response in db');gridaxis([0 1 -100 10]);xlabel('frequence in \pi unit');ylabel('decibels');clear allfigureWpl=0.2*pi;Wph=0.8*pi;Wsl=0.4*pi;Wsh=0.6*pi;tr_width=min((Wsl-Wpl),(Wph-Wsh));M=ceil(6.2*pi/tr_width)n=0:1:M-1;Wcl=(Wsl+Wpl)/2;Wch=(Wsh+Wph)/2;hd=ideal_bs(Wcl,Wch,M);w_ham=(hanning(M))';h=hd.*w_ham;[db,mag,pha,w]=freqz_m2(h,[1]);delta_w=2*pi/1000;Ap=-(min(db(1:1:Wpl/delta_w+1)))As=-round(max(db(Wsl/delta_w+1:1:Wsh/delta_w+1)))subplot(221)stem(n,hd);title('Ideal Impulse Rresponse')axis([0 M-1 -0.1 0.7]);xlabel('n');ylabel('hd(n)')subplot(222)stem(n,w_ham);title('Hamming Window')axis([0 M-1 0 1.1]);xlabel('n');ylabel('w(n)')subplot(223)stem(n,h);title('Actual Impuse Response')axis([0 M-1 -0.1 0.7]);xlabel('n');ylabel('h(n)')subplot(224)plot(w/pi,db);title('Magnitude Response in db');gridaxis([0 1 -100 10]);xlabel('frequence in \pi unit');ylabel('decibels');figurews1=0.2*pi;wp1=0.35*pi;ws2=0.8*pi;wp2=0.65*pi;Ap=60;Rp=1;tr_width=min((wp1-ws1),(ws2-wp2));M=ceil(11*pi/tr_width);n=[0:1:M-1];wc1=(ws1+wp1)/2;wc2=(wp2+ws2)/2;hd=ideal_lp(wc2,M)-ideal_lp(wc1,M);w_bla=(blackman(M))';h=hd.*w_bla;[H,W]=freqz(h,1);subplot(2,2,1);stem(n,hd);title('ÀíÏëÂö³å³éÑù');subplot(2,2,2);stem(n,w_bla);title('²¼À³¿ËÂü´°');subplot(2,2,3);stem(n,h);title('ʵ¼ÊÂö³å³éÑù');subplot(2,2,4);plot(W/pi,20*log10(abs(H)));title('·ù¶ÈÏìÓ¦£¨db£©');clear allfigurews1=0.2*pi;wp1=0.4*pi;ws2=0.8*pi;wp2=0.6*pi;Ap=60; Rp=1;tr_width=min((wp1-ws1),(ws2-wp2));M=ceil(11*pi/tr_width);n=[0:1:M-1];wc1=(ws1+wp1)/2;wc2=(wp2+ws2)/2;hd=ideal_lp(wc2,M)-ideal_lp(wc1,M);w_bla=( hamming(M))';h=hd.*w_bla;[H,W]=freqz(h,1);subplot(2,2,1);stem(n,hd);title('ÀíÏëÂö³å³éÑù');subplot(2,2,2);stem(n,w_bla);title('º£Ã÷´°');subplot(2,2,3);stem(n,h);title('ʵ¼ÊÂö³å³éÑù');subplot(2,2,4);plot(W/pi,20*log10(abs(H)));title('·ù¶ÈÏìÓ¦£¨db£©');clear allfigurews1=0.2*pi;wp1=0.4*pi;ws2=0.8*pi;wp2=0.6*pi;Ap=20; Rp=1;tr_width=min((wp1-ws1),(ws2-wp2));M=ceil(11*pi/tr_width);n=[0:1:M-1];wc1=(ws1+wp1)/2;wc2=(wp2+ws2)/2;hd=ideal_lp(wc2,M)-ideal_lp(wc1,M);w_bla=( boxcar(M))';h=hd.*w_bla;[H,W]=freqz(h,1);subplot(2,2,1);stem(n,hd);title('ÀíÏëÂö³å³éÑù');subplot(2,2,2);stem(n,w_bla);title('¾ØÐδ°');subplot(2,2,3);stem(n,h);title('ʵ¼ÊÂö³å³éÑù');subplot(2,2,4);plot(W/pi,20*log10(abs(H)));title('·ù¶ÈÏìÓ¦£¨db£©');clear allfigureAs=55;ws=11*pi/27;wp=15*pi/27;tr_width=wp-ws;%¼ÆËã¹ý¶É´øM=ceil((As-7.95)*2*pi/(14.36*tr_width)+1)+1; %°´¿Ôó´°¼ÆËãÂ˲¨Æ÷µÄ³¤¶Èdisp(['Â˲¨Æ÷µÄ³¤¶È',num2str(M)]);beta=0.1102*(As-8.7); %¼ÆËã¿Ôó´°µÄbetaÖµn=[0:1:M-1];disp(['ÏßÐÔÏàλÂ˲¨Æ÷',num2str(beta)]);w_kai=(kaiser(M,beta))';%Çó¿Ôó´°º¯Êýwc=(ws+wp)/2;hd=ideal_lp(pi,M)-ideal_lp(wc,M); %ÇóÀíÏëÂö³åÏìÓ¦h=hd.*w_kai;[db,mag,pha,grd,w]=freqz_m(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(wp/delta_w+1:1:501)));disp(['ʵ¼Êͨ´ø²¨¶¯Îª',num2str(Rp)]);As=-round(max(db(1:1:ws/delta_w+1)));disp(['×îС×è´øË¥¼õΪ?',num2str(As)]);subplot(2,2,1);stem(n,hd);title('ÀíÏëÂö³åÏìÓ¦');axis([0 M-1 -0.4 0.8]);ylabel('hd(n)');subplot(2,2,2);stem(n,w_kai);title('¿Ôó´°');axis([0 M-1 0 1.1]);ylabel('wd(n)');subplot(2,2,3);stem(n,h);title('ʵ¼ÊÂö³åÏìÓ¦');axis([0 M-1 -0.4 0.8]);xlabel('n');ylabel('h(n)');subplot(2,2,4);plot(w/pi,db);title('?·ù¶ÈÏìÓ¦/dB');axis([0 1 -100 10]);grid;xlabel('ÒÔpiΪµ¥Î»µÄƵÂÊ');ylabel('?·Ö±´Êý/dB');clear allfigure%ÔÚmatlabÖÐн¨º¯Êýg£¬´úÂëÈçÏ£ºWp=0.6*pi;Ws=0.4*pi;tr_width=Wp-Ws;M=ceil(6.2*pi/tr_width);n=0:1:M-1;Wc=(Ws+Wp)/2;hd=ideal_lp(pi,M)-ideal_lp(Wc,M);w_ham=(hanning(M))';h=hd.*w_ham;[db,mag,pha,w]=freqz_m2(h,[1]);delta_w=2*pi/1000;Ap=-(min(db(Wp/delta_w+1:1:501)))As=-round(max(db(1:1:Ws/delta_w+1)))subplot(221)stem(n,hd);title('Ideal Impulse Rresponse')axis([0 M-1 -0.4 0.5]);xlabel('n');ylabel('hd(n)') subplot(222)stem(n,w_ham);title('Hamming Window')axis([0 M-1 0 1.1]);xlabel('n');ylabel('w(n)') subplot(223)stem(n,h);title('Actual Impuse Response')axis([0 M-1 -0.4 0.5]);xlabel('n');ylabel('h(n)')subplot(224)plot(w/pi,db);title('Magnitude Response in db');gridaxis([0 1 -100 10]);xlabel('frequence in \pi unit');ylabel('decibels');clear allfigureWp=0.6*pi;Ws=0.4*pi;tr_width=Wp-Ws;M=ceil(6.2*pi/tr_width)n=0:1:M-1;Wc=(Ws+Wp)/2;hd=ideal_lp(pi,M)-ideal_lp(Wc,M);w_ham=(hanning(M));h=hd.*rot90(w_ham);[db,mag,pha,w]=freqz_m2(h,[1]);delta_w=2*pi/1000;Ap=-(min(db(Wp/delta_w+1:1:501)))As=-round(max(db(1:1:Ws/delta_w+1)))figuresubplot(221)stem(n,hd);title('Ideal Impulse Rresponse')axis([0 M-1 -0.4 0.5]);xlabel('n');ylabel('hd(n)')subplot(222)stem(n,w_ham);title('Hamming Window')axis([0 M-1 0 1.1]);xlabel('n');ylabel('w(n)')subplot(223)stem(n,h);title('Actual Impuse Response')axis([0 M-1 -0.4 0.5]);xlabel('n');ylabel('h(n)')subplot(224)plot(w/pi,db);title('Magnitude Response in db');gridaxis([0 1 -100 10]);xlabel('frequence in \pi unit');ylabel('decibels');%ÓÃHamming´°º¯ÊýÉè¼ÆFIRÊý×ÖÂ˲¨Æ÷figurewp=0.2*pi;ws=0.3*piN=61n=[0:1:N-1]wc=(ws+wp)/2;%ÀíÏëµÍͨÂ˲¨Æ÷hd=ideal_lp(wc,N);%ÀíÏëµÍͨµÄ³å¼¤ÏìÓ¦w_ham=(hamming(N))';h=hd.*w_ham;%FIRÂ˲¨Æ÷³å¼¤ÏìÓ¦[db,mag,pha,grd,w]=freqz_m(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(1:1:wp/delta_w+1)))%ʵ¼ÊµÄͨ´øË¥¼õAs=-round(max(db(ws/delta_w+1:1:501)))%ʵ¼ÊµÄ×îС×è´øË¥¼õsubplot(221);stem(n,hd);title('ÀíÏë³å¼¤ÏìÓ¦')axis([0 N-1 -0.1 0.3]);xlabel('n');ylabel('hd(n)')subplot(222);stem(n,w_ham);title('hamming´°')axis([0 N-1 0 1.1]);xlabel('n');ylabel('w(n)');subplot(223);stem(n,h);title('ʵ¼Ê³å¼¤ÏìÓ¦')axis([0 N-1 -0.1 0.3]);xlabel('n');ylabel('h(n)')subplot(224);plot(w/pi,db);axis([0 0.8 -100 0]);xlabel('ÒÔPIΪµ¥Î»µÄƵÂÊ');ylabel('¶ÔÊý·ù¶È/db');clear allfigure%ÓÃKaiser´°º¯ÊýÉè¼ÆFIRÊý×ÖÂ˲¨Æ÷wp=0.2*pi;ws=0.3*pi;As=50tr_width=ws-wpN=ceil((As-7.95)/(14.36*tr_width/(2*pi))+1)+1n=[0:1:N-1]beta=0.1102*(As-8.7)wc=(wp+ws)/2%ÀíÏëµÍͨµÄ½ØֹƵÂÊhd=ideal_lp(wc,N)w_kai=(kaiser(N,beta))'h=hd.*w_kai[db,mag,pha,grd,w]=freqz_m(h,[1])delta_w=2*pi/1000Rp=-(min(db(1:1:wp/delta_w+1)))%?ʵ¼ÊµÄͨ´øË¥¼õAs=-round(max(db(ws/delta_w+1:1:501)))%ʵ¼ÊµÄ×îС×è´øË¥¼õsubplot(211);plot(w/pi,db);title('¿É´°·ù¶ÈÏìÓ¦(dB)');grid axis([0 0.5 -100 0])ylabel('¶ÔÊý·ù¶È/db');xlabel('ÒÔ/piΪµ¥Î»µÄƵÂÊ')subplot(212);plot(w/pi,pha);title('ÏàλÏìÓ¦');gridaxis([0 0.5 -4 4])ylabel('Ïàλ');xlabel('ÒÔ/piΪµ¥Î»µÄƵÂÊ')figureh1=[-4,1,-1,-2,5,6,5,-2,-1,1,-4];M=length(h1);n=0:M-1;[A,w,type,tao]=amplres(h1);typesubplot(2,1,1),stem(n,h1);title('³å¼¤ÏìÓ¦h1');ylabel('h(n)');xlabel('n');subplot(2,1,2),plot(w/pi,A);ylabel('A');xlabel('\pi');title('?·ùƵÏìÓ¦');figurerz=roots(h1)for i=1:8r(i)=1/rz(i);endr'zplane(h1,1);title('h1Á㼫µãͼ');clear allfigureh2=[-4,1,-1,-2,5,6,6,5,-2,-1,1,-4];M=length(h2);n=0:M-1;[A,w,type,tao]=amplres(h2);typesubplot(2,1,1),stem(n,h2);title('³å¼¤ÏìÓ¦h2');ylabel('h(n)');xlabel('n');subplot(2,1,2),plot(w/pi,A);ylabel('A');xlabel('\pi');title('·ùƵÏìÓ¦');figure rz=roots(h2)for i=1:8r(i)=1/rz(i);endr'zplane(h2,1);title('?h2Á㼫µãͼ');clear allfigureh3=[-4,1,-1,-2,5,0,-5,2,1,-1,4];M=length(h3);n=0:M-1;[A,w,type,tao]=amplres(h3);type subplot(2,1,1),stem(n,h3);title('³å¼¤ÏìÓ¦h3');ylabel('h(n)');xlabel('n');subplot(2,1,2),plot(w/pi,A);ylabel('A');xlabel('\pi');title('·ùƵÏìÓ¦?');figurerz=roots(h3)for i=1:8r(i)=1/rz(i);endr'zplane(h3,1);title('h3Á㼫µãͼ');clear allfigureh4=[-4,1,-1,-2,5,6,-6,-5,2,1,-1,4]; M=length(h4);n=0:M-1;[A,w,type,tao]=amplres(h4);type subplot(2,1,1),stem(n,h4);title('³å¼¤ÏìÓ¦h4');ylabel('h(n)');xlabel('n');subplot(2,1,2),plot(w/pi,A);ylabel('A');xlabel('\pi');title('?·ùƵÏìÓ¦?');figurerz=roots(h4)for i=1:8r(i)=1/rz(i);endr'zplane(h4,1);title('h4Á㼫µãͼ');h = [1,2,3,2,1];M = 5;n = (M-3)/2;a = 2*h(3-n)k = -500:500;K = 500;w = k*pi/K;p = a*cos(w*n);plot(w,p);ylabel('p(w)'); xlabel('w');function[db,mag,pha,H,w]=freqz_m3(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);endfunction [db,mag,pha,grd,w] = freqz_m(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);grd = grpdelay(b,a,w);function [db, mag, pha, w]=freqz_m2(b,a);%Modified version of freqz subroutine[H,w]=freqz(b,a,1000,'whole');H=(H(1:501))'; w=(w(1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);function [Hr,w,b,L] = Hr_Type2(h);M = length(h); L = M/2;b = 2*[h(L:-1:1)]; n = [1:1:L]; n = n-0.5;w = [0:1:500]'*pi/500; Hr = cos(w*n)*b';endfunction [Hr,w,c,L] = Hr_Type3(h);% Computes Amplitude response Hr(w) of a Type-3 LP FIR filter %% [Hr,w,c,L] = Hr_Type3(h)% Hr = Amplitude Response% w = frequencies between [0 pi] over which Hr is computed% c = Type-3 LP filter coefficients% L = Order of Hr% h = Type-3 LP impulse response%M = length(h); L = (M-1)/2;c = [2*h(L+1:-1:1)]; n = [0:1:L];w = [0:1:500]'*pi/500; Hr = sin(w*n)*c';end。