实验6FIR滤波器设计

合集下载

FIR滤波器设计实验报告

FIR滤波器设计实验报告

FIR滤波器设计实验报告实验报告:FIR滤波器设计一、实验目的:本实验旨在通过设计FIR滤波器,加深对数字信号处理中滤波器原理的理解,掌握FIR滤波器的设计方法和调试技巧。

二、实验原理:在窗函数法中,常用的窗函数有矩形窗、三角窗、汉明窗和黑曼窗等。

根据实际需求选择适当的窗口函数,并通过将窗口函数应用到理想低通滤波器的冲激响应中,得到FIR滤波器的冲激响应。

三、实验步骤:1.确定滤波器的阶数和截止频率。

2.选择适当的窗口函数,如汉明窗。

3.计算出理想低通滤波器的冲激响应。

4.将选定的窗口函数应用到理想低通滤波器的冲激响应中。

5.得到FIR滤波器的冲激响应。

四、实验结果:假设要设计一个阶数为10的FIR滤波器,截止频率为800Hz,采样频率为1600Hz。

1.选择汉明窗作为窗口函数。

2.根据采样频率和截止频率计算出理想低通滤波器的冲激响应。

假设截止频率为f_c,则理想低通滤波器的冲激响应为:h(n) = 2f_c * sinc(2f_c * (n - (N-1)/2))其中,sinc(x)为正弦函数sin(x)/x。

3.将汉明窗应用到理想低通滤波器的冲激响应中,得到FIR滤波器的冲激响应。

具体计算过程如下:h(n) = w(n) * h_ideal(n)其中,w(n)为汉明窗:w(n) = 0.54 - 0.46 * cos(2πn/(N-1))h_ideal(n)为理想低通滤波器的冲激响应。

4.计算得到FIR滤波器的冲激响应序列。

五、实验总结:本次实验通过设计FIR滤波器,加深了对数字信号处理中滤波器原理的理解。

掌握了FIR滤波器的设计方法和调试技巧。

通过设计阶数为10的FIR滤波器,截止频率为800Hz,采样频率为1600Hz的实例,了解了窗函数法设计FIR滤波器的具体步骤,并得到了滤波器的冲激响应。

【备注】以上内容仅为参考,具体实验报告内容可能根据实际情况有所调整。

数字信号处理实验FIR数字滤波器的设计

数字信号处理实验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滤波器设计实验报告实验目的:学习和掌握有限脉冲响应(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滤波器的设计中起着重要的作用。

常用的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等。

对于每种窗函数,都有不同的特性和性能指标,如主瓣宽度、副瓣抑制比等。

根据不同的应用需求,可以选择合适的窗函数。

窗函数法设计FIR滤波器的具体步骤如下:1.确定滤波器的阶数N。

阶数N决定了滤波器的复杂度,一般情况下,阶数越低,滤波器的简单度越高,但频率响应的近似程度也会降低。

2.确定滤波器的截止频率。

根据应用需求,确定滤波器的截止频率,并选择合适的窗函数。

3.根据窗函数长度和截止频率计算理想滤波器的频率响应。

根据所选窗函数的特性,计算理想滤波器的频率响应。

4.根据理想滤波器的频率响应和窗函数的频率响应,得到所需的FIR滤波器的频率响应。

将理想滤波器的频率响应与窗函数的频率响应进行乘积,即可得到所需滤波器的频率响应。

5.对所得到的频率响应进行逆傅里叶变换,得到时域的滤波器系数。

6.实现滤波器。

利用所得到的滤波器系数,可以通过卷积运算实现滤波器。

三、实验结果与分析本实验以Matlab软件为平台,利用窗函数法设计了一个低通滤波器。

滤波器的阶数为16,截止频率为500Hz,采样频率为1000Hz,选择了汉宁窗。

根据上述步骤,计算得到了所需的滤波器的频率响应和时域的滤波器系数。

利用这些系数,通过卷积运算,实现了滤波器。

为了验证滤波器的性能,将滤波器应用于输入信号,观察输出信号的变化。

FIR数字滤波器设计实验_完整版

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滤波器设计实验报告一、实验目的本次实验的目的是设计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滤波器

实验六用窗函数设计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)数字滤波器的设计

实验报告一、实验目的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滤波器设计

实验6FIR滤波器设计FIR (Finite Impulse Response)滤波器是一种数字滤波器,其输出信号仅取决于振荡器的输入以前的有限个值。

FIR滤波器设计的目的是通过调整滤波器的系数以实现所需的频率响应。

在FIR滤波器设计中,首先确定滤波器的类型和频率响应的规格。

常见的滤波器类型有低通滤波器、高通滤波器、带通滤波器和带阻滤波器。

频率响应的规格由滤波器的截止频率、通带增益和阻带衰减等参数决定。

FIR滤波器的设计步骤如下:1.确定滤波器的类型和频率响应规格。

根据应用的需求,选择适当的滤波器类型和定义频率响应的参数。

2.确定滤波器的阶数。

阶数决定了滤波器的复杂度和性能。

一般而言,阶数越高,滤波器的性能越好,但计算复杂度也越高。

3.根据频率响应规格和系统设计的约束,选择一种滤波器设计方法。

常见的设计方法有窗函数法、频率采样法、最小均方误差法等。

4.设计滤波器的理想频率响应。

根据所选的设计方法,确定滤波器的理想频率响应。

这通常是一个分段线性函数,其中包括通带增益和阻带衰减。

5.将理想频率响应转换为时域的冲激响应。

这可以通过将理想频率响应进行反傅里叶变换来实现。

6.通过选择合适的窗函数,对冲激响应进行窗函数变换。

窗函数的选择是设计滤波器性能的重要因素。

7.通过窗函数变换得到滤波器的系数。

通过将窗函数变换应用于冲激响应,可以得到设计滤波器的系数。

这些系数确定了滤波器的时间响应和频率响应。

8.可选地,通过优化算法对滤波器的系数进行优化。

优化算法可以用来进一步改善滤波器的性能。

常用的优化算法包括加权最小二乘方法、梯度下降法等。

9.实现滤波器。

将设计好的滤波器系数应用于输入信号,得到滤波器输出。

可以使用编程语言或滤波器设计工具来实现滤波器。

10.验证滤波器的性能。

通过将滤波器应用于不同的输入信号,检验滤波器输出是否符合设计要求。

可以使用频谱分析工具和滤波器性能评估指标来评估滤波器的性能。

FIR滤波器设计是数字信号处理中重要的课题之一、设计一个性能良好的FIR滤波器需要对滤波器原理和设计方法有深入的了解,以及熟练的使用滤波器设计工具和编程工具。

实验6FIR滤波器设计

实验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数字滤波器是一种常见的数字滤波器,具有线性相位、稳定性好、易于实现等优点。

本实验旨在设计一种基于FIR数字滤波器的信号处理系统,实现对信号的滤波和降噪。

实验步骤1. 信号采集需要采集待处理的信号。

本实验采用的是模拟信号,通过采集卡将其转换为数字信号,存储在计算机中。

2. 滤波器设计接下来,需要设计FIR数字滤波器。

为了实现对信号的降噪,我们选择了低通滤波器。

在设计滤波器时,需要确定滤波器的阶数、截止频率等参数。

本实验中,我们选择了8阶低通滤波器,截止频率为500Hz。

3. 滤波器实现设计好滤波器后,需要将其实现。

在本实验中,我们采用MATLAB 软件实现FIR数字滤波器。

具体实现过程如下:定义滤波器的系数。

根据滤波器设计的公式,计算出系数值。

利用MATLAB中的filter函数对信号进行滤波。

将采集到的信号作为输入,滤波器系数作为参数,调用filter函数进行滤波处理。

处理后的信号即为滤波后的信号。

4. 结果分析需要对处理后的信号进行分析。

我们可以通过MATLAB绘制出处理前后的信号波形图、频谱图,比较它们的差异,以评估滤波器的效果。

结果显示,经过FIR数字滤波器处理后,信号的噪声得到了有效的降低,滤波效果较好。

同时,频谱图也显示出了滤波器的低通特性,截止频率处信号衰减明显。

结论本实验成功设计并实现了基于FIR数字滤波器的信号处理系统。

通过采集、滤波、分析等步骤,我们实现了对模拟信号的降噪处理。

同时,本实验还验证了FIR数字滤波器的优点,包括线性相位、稳定性好等特点。

在实际应用中,FIR数字滤波器具有广泛的应用前景。

六章节FIR数字滤波器设计

六章节FIR数字滤波器设计
对称中心必须等于滤波器的延时常数 a (N 1) / 2
h(n) a (
N
hd (n)RN 1) / 2
(n)
2、吉布斯(Gibbs)效应
∵频率响应是单位脉冲响应的傅立叶变换 ∴矩形窗截取后滤波器的频率响应为:
N 1
H (e j ) hd (n)e jn
n0
版权所有 违者必究
第六章第1讲
∵该式为有限项, ∴N越大,误差越 小。但对矩形窗截 取还存在“吉布斯 (Gibbs)效应”, 这将使滤波器的特 性很差。
下面以理想低通滤波器为例说明其设计过程
设理想低通滤波器的频率响应 Hd (e j )为:
Hd
(e j
)
e 0
ja
c
c
其中c为滤波器的截止频率;a 为时延常数
∴单位脉冲响应为:
sin[ c (n a)]
hd
(n)
1
2
c e jae jnd
c
c
(n
a)
na na
为一 “ 以a 为对称中心的、偶对称的、无限长的、
显然:相位特性同样为一
严格的直线,但在零点处 有 的截距。
2
版权所有 违者必究
第六章第1讲
6
FIR数字滤波器的性质
结论: 无论是奇对称或偶对称,其群延时均为常数,
等于 N 1个抽样间隔。
2
即群延时 () d() N 1
d
2
线性相位FIR滤波器的幅频特性
分四种情况讨论
情形h(1n):偶h对(N称,1Nn取) 奇数
n0
N 1
N 1
h(n)z (N 1n) z (N 1) h(n)z n
n0
n0

FIR滤波器设计与实现实验报告

FIR滤波器设计与实现实验报告

FIR滤波器设计与实现实验报告实验报告:FIR滤波器设计与实现一、实验目的本实验旨在通过设计和实现FIR滤波器来理解数字滤波器的原理和设计过程,并且掌握FIR滤波器的设计方法和实现技巧。

二、实验原理1.选择滤波器的类型和阶数根据滤波器的类型和阶数的不同,可以实现不同的滤波效果。

常见的滤波器类型有低通滤波器、高通滤波器、带通滤波器和带阻滤波器。

选择适当的滤波器类型和阶数可以实现对不同频率分量的滤波。

2.确定滤波器的系数在设计FIR滤波器时,系数的选择对滤波器的性能有重要影响。

通常可以使用窗函数法、最小二乘法、频率采样法等方法来确定系数的值。

常见的窗函数有矩形窗、汉明窗和布莱克曼窗等。

三、实验步骤1.确定滤波器的类型和阶数根据实际需求和信号特点,选择合适的滤波器类型和阶数。

例如,如果需要设计一个低通滤波器,可以选择实验中使用的巴特沃斯低通滤波器。

2.确定滤波器的频率响应根据滤波器的类型和阶数,确定滤波器的频率响应。

可以通过matlab等软件来计算和绘制滤波器的频率响应曲线。

3.确定滤波器的系数根据频率响应的要求,选择合适的窗函数和窗长度来确定滤波器的系数。

可以使用matlab等软件来计算和绘制窗函数的形状和频率响应曲线。

4.实现滤波器的功能将滤波器的系数应用于输入信号,通过加权求和得到输出信号的采样点。

可以使用matlab等软件来模拟和验证滤波器的功能。

四、实验结果在实际实验中,我们选择了一个4阶低通滤波器进行设计和实现。

通过计算和绘制滤波器的频率响应曲线,确定了窗函数的形状和窗长度。

在实际实验中,我们通过实现一个滤波器功能的matlab程序来验证滤波器的性能。

通过输入不同频率和幅度的信号,观察滤波器对信号的影响,验证了设计的滤波器的功能有效性。

五、实验总结通过本实验,我们深入了解了FIR滤波器的设计原理和实现方法。

通过设计和实现一个具体的滤波器,我们掌握了滤波器类型和阶数的选择方法,以及系数的确定方法。

FIR实验报告范文

FIR实验报告范文

FIR实验报告范文实验报告:FIR滤波器设计与实现一、实验目的1.了解和掌握FIR滤波器的基本概念和设计原理;2. 学会使用Matlab软件设计和实现FIR滤波器;3.分析和评价不同阶数(N)和窗函数类型对FIR滤波器性能的影响。

二、实验设备和原材料1.计算机;2. Matlab 2024a 软件;3.信号发生器。

三、实验原理1.FIR滤波器概念:FIR(Finite Impulse Response)即有限脉冲响应滤波器,是一种非递归滤波器。

其输出是当前输入和过去若干个输入的加权和。

2.FIR滤波器设计原理:FIR滤波器的设计一般通过确定滤波器系数实现。

常用的设计方法有直接设计法、频率采样法、窗函数法等。

其中,窗函数法是最常用的设计方法之一窗函数法步骤:a.选择适当的滤波器阶数N;b.选择合适的窗函数;c.根据滤波器的频率响应要求,计算出窗函数长度L;d.确定滤波器的理想频率响应;e.执行窗函数和理想频率响应的点乘运算得到滤波器的系数。

四、实验步骤step1. 设计滤波器频率响应:a. 确定采样频率fs和截止频率fc;b. 根据fs和fc确定滤波器通带、阻带宽度;c.设计理想频率响应,生成指定的通带增益和阻带衰减。

step2. 确定滤波器阶数和窗函数类型:a.根据滤波器的过渡带宽度、通带纹波和阻带衰减要求,选择适当的滤波器阶数N;b. 对于给定的滤波器长度L和滤波器阶数N,结合通带和阻带宽度,借助Matlab软件选择合适的窗函数类型。

step3. 确定窗函数长度L:根据滤波器的过渡带宽度,计算滤波器的窗函数长度L。

一般,L=N+1step4. 生成滤波器系数:通过窗函数与理想频率响应的点乘运算,生成滤波器的系数。

step5. 滤波器模拟与实现:a. 在Matlab软件中,使用fir1函数生成滤波器系数h;b. 使用filter函数实现滤波器的模拟和实现。

五、实验结果与分析本实验选择了截止频率fc = 1000Hz,采样频率fs = 8000Hz。

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数字滤波器设计实验报告引言数字滤波器是一种常见的信号处理工具,用于去除信号中的噪声或者滤波信号以达到特定的目的。

其中,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滤波器是一种无限冲激响应滤波器,其特点是具有线性相位和稳定性。

其基本原理是通过对输入信号和滤波器的冲激响应进行线性卷积运算,得到输出信号。

fir滤波器的冲激响应由一组有限长的系数决定,这些系数可以通过不同的设计方法得到,如窗函数法、最小二乘法等。

二、实验步骤:1. 确定滤波器的频率响应需求:根据实际应用需求,确定滤波器需要增强或抑制的频率范围。

2. 选择滤波器的设计方法:根据频率响应需求和系统要求,选择合适的fir滤波器设计方法。

3. 设计滤波器的冲激响应:根据所选设计方法,计算得到fir滤波器的冲激响应系数。

4. 实现滤波器的数字滤波器:将fir滤波器的冲激响应系数转换为差分方程,得到数字滤波器的差分方程表示。

5. 实现滤波器的数字滤波器:将fir滤波器的冲激响应系数转换为差分方程,得到数字滤波器的差分方程表示。

6. 通过编程实现滤波器:使用编程语言(如MATLAB)编写代码,实现fir滤波器的数字滤波器。

7. 信号滤波处理:将待滤波的信号输入到fir滤波器中,通过数字滤波器进行滤波处理,得到输出信号。

8. 结果分析:对滤波后的信号进行分析,评估滤波器的性能和效果。

三、实验结果分析:在本次实验中,我们设计了一个fir滤波器,并对一段音频信号进行滤波处理。

通过实验结果分析,我们发现滤波器能够有效地增强或抑制指定频率范围内的信号成分。

滤波后的音频信号听起来更加清晰,噪音得到了有效的抑制。

同时,我们还对滤波器的性能进行了评估。

通过计算滤波器的幅频响应曲线和相频响应曲线,我们发现滤波器在指定频率范围内的增益和相位变化符合预期。

fir数字滤波器设计实验报告

fir数字滤波器设计实验报告

fir数字滤波器设计实验报告fir数字滤波器设计实验报告引言:数字滤波器是一种广泛应用于信号处理和通信系统中的重要工具。

其中,有一类常见的数字滤波器是FIR(Finite Impulse Response)数字滤波器。

FIR数字滤波器具有线性相位特性、稳定性好、易于设计和实现等优点,被广泛用于音频处理、图像处理、通信系统等领域。

本实验旨在通过设计一个FIR数字滤波器,探索其设计原理和实际应用。

一、实验目的本实验的目的是通过设计一个FIR数字滤波器,实现对特定信号的滤波处理。

具体来说,我们将学习以下几个方面的内容:1. FIR数字滤波器的基本原理和特点;2. FIR数字滤波器的设计方法和流程;3. 使用MATLAB软件进行FIR数字滤波器的设计和仿真。

二、实验原理1. FIR数字滤波器的基本原理FIR数字滤波器是一种线性时不变系统,其输出仅与当前输入和过去若干个输入有关,没有反馈回路。

这种特性使得FIR数字滤波器具有线性相位特性,适用于对信号的频率响应要求较高的应用场景。

FIR数字滤波器的输出可以通过卷积运算来计算,即将输入信号与滤波器的冲激响应进行卷积运算。

2. FIR数字滤波器的设计方法FIR数字滤波器的设计方法有很多种,常见的包括窗函数法、频率采样法和最优化方法等。

在本实验中,我们将使用窗函数法进行FIR数字滤波器的设计。

窗函数法的基本思想是将理想滤波器的频率响应与一个窗函数相乘,从而得到实际可实现的滤波器。

三、实验步骤1. 确定滤波器的设计要求在设计FIR数字滤波器之前,我们首先需要明确滤波器的设计要求。

包括滤波器的通带、阻带、过渡带的频率范围和响应要求等。

2. 选择窗函数和滤波器的阶数根据设计要求,选择合适的窗函数和滤波器的阶数。

常见的窗函数有矩形窗、汉宁窗、汉明窗等。

不同的窗函数对滤波器的性能有一定影响,需要根据实际情况进行选择。

3. 计算滤波器的冲激响应利用所选窗函数和滤波器的阶数,计算滤波器的冲激响应。

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数字滤波器的原理和设计方法,掌握数字信号处理软件的使用,提升数字信号处理的实践能力,并了解数字滤波器在实际应用中的重要性和价值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程编号实验项目序号本科学生实验卡和实验报告信息科学与工程学院通信工程专业2013级1301班课程名称:数字信号处理实验项目:FIR滤波器设计2015~~2016学年第二学期学号:0104_ 姓名:__ _王少丹_ __ 专业年级班级: ____通信1301_________四合院___ 实验室组别________ 实验日期 __2016 年_ 6__ 月___12_ 日(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 数字低通滤波器,其技术指标为:ω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)');gridaxis([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);type subplot(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);type subplot(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('·ùƵÏìÓ¦');figurerz=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。

相关文档
最新文档