实验五:FIR数字滤波器设计与软件实现

合集下载

FIR数字滤波器设计与软件实现实验报告222

FIR数字滤波器设计与软件实现实验报告222

FIR数字滤波器设计与软件实现实验报告222 FIR数字滤波器设计与软件实现实验报告222实验标题:FIR数字滤波器设计与软件实现实验目的:1.学习FIR数字滤波器的基本原理和设计方法;2.掌握使用MATLAB软件进行FIR数字滤波器设计的方法;3.通过实验验证FIR数字滤波器的性能和效果。

实验器材与软件:1.个人计算机;2.MATLAB软件。

实验步骤:1.确定所需的滤波器类型和设计要求;2.根据设计要求选择合适的滤波器设计方法,如窗函数法、最优化方法等;3.使用MATLAB软件进行滤波器设计,并绘制滤波器的频率响应曲线;4.将设计好的滤波器用于信号处理,观察滤波效果。

实验结果与分析:1.进行实验前,首先确定滤波器的类型和设计要求。

例如,我们选择低通滤波器,要求通带频率为1kHz,阻带频率为2kHz,通带最大衰减为1dB,阻带最小衰减为60dB。

2.在MATLAB软件中,我们选择窗函数法进行滤波器设计。

根据设计要求,选择合适的窗函数,如矩形窗、汉宁窗等。

根据设计要求和窗函数的特点,确定滤波器的长度N和窗函数的参数。

3. 使用MATLAB中的fir1函数进行滤波器设计,并绘制滤波器的频率响应曲线。

根据频率响应曲线,可以分析滤波器的性能是否符合设计要求。

4. 将设计好的滤波器用于信号处理,观察滤波效果。

在MATLAB中,可以使用filter函数对信号进行滤波处理,然后绘制原始信号和滤波后的信号的时域波形和频谱图进行对比分析。

实验结论:1.通过本次实验,我们学习了FIR数字滤波器的基本原理和设计方法;2.掌握了使用MATLAB软件进行FIR数字滤波器设计的方法;3.实验结果显示,设计的FIR数字滤波器可以满足设计要求,具有良好的滤波效果。

4.FIR数字滤波器在数字信号处理中具有广泛的应用前景,对于滤除噪声、改善信号质量等方面有重要意义。

实验5 FIR滤波器设计与实现

实验5 FIR滤波器设计与实现

实验5 FIR滤波器设计与实现以下为参考中文实验指导,原文请参见:\GuideSlide\DSP_Primer\chinese\print下:Xilinx_DSP_workbook_A4.pdf5.FIR滤波器在这一部分中,我们将利用多种不同方法实现FIR滤波器。

为了说明问题,首先来看一下如下图所示的简单的四抽头FIR滤波器:滤波器的系数按如下选择:w0= -10,w1= 20,w2= 50,w3= 80 [5.1] 这些系数并不是针对某个具体的频率响应而设计的,如此选择只是为了说明问题。

5.1.字长增长为了说明字长效应的影响,我们当然只能选择有限精度的信号。

在本例中,我们让输入信号为2位整数。

因此信号x[k]的范围在-2和1之间。

在下面各实验中,我们将考虑滤波器系数为8位的情况,即w的范围在-128和+127之间实验 5.1简单FIR滤波器打开以下系统:\filter\cut_set\FIR1\FIR1.mdl(a)在上图中画出关键路径,并回答在关键路径上共有多少乘法单元和加法单元。

答:(b)运行该系统并在示波器中观察其冲激响应。

(c) 观察加法链上的字长变化并验证字长由8位增长到10位。

(d) 使用System Generator 模块生成所需ISE 工程文件。

打开ISE 工程,对该设计经行时序模拟以及布局与布线(Place & Route ),然后完成下列表格。

(注意在本例中并没有使用到内嵌乘法器)实验 5.2 时序变更(Retiming)打开以下系统:\filter\cut_set\FIR2\FIR2.mdl对图中上面的系统应用cut sets 分割得到的割集进行适当变换便得到了下面的系统。

变换后的系统的关键路径长度被大大缩减。

但同时需要注意的是,系统的延迟增加了。

(a) 运行该系统并在示波器中观察其冲激响应。

可以看出该系统与之前的系统相比其关键路径大大缩短。

新系统的关键路径长度是多少? 答:(b) 使用System Generator 模块生成所需ISE 工程文件。

FIR数字滤波器设计与软件实现实验报告222

FIR数字滤波器设计与软件实现实验报告222

FIR数字滤波器设计与软件实现实验报告222 FIR数字滤波器设计与软件实现实验报告222实验名称:FIR数字滤波器设计与软件实现实验目的:1.了解数字滤波器的工作原理和设计方法。

2.学习使用MATLAB软件进行FIR数字滤波器的设计和实现。

实验器材:1.计算机2.MATLAB软件实验步骤:1.导入信号数据:首先,打开MATLAB软件,创建一个新的脚本文件,然后导入待滤波的信号数据。

可以通过以下代码实现:```matlabfs = 1000; % 采样频率为1000Hzt = 0:(1/fs):1; % 1秒的时间范围f1=10;%信号频率为10Hzf2=50;%信号频率为50Hzx = sin(2*pi*f1*t) + sin(2*pi*f2*t); % 生成两个正弦信号叠加```2.设计低通滤波器:使用fir1函数设计一个低通滤波器,并指定截止频率为100Hz,实现代码如下:```matlaborder = 64; % 滤波器阶数cutoff = 100; % 截止频率为100Hzb = fir1(order, cutoff/(fs/2)); % 设计低通滤波器系数```3.应用滤波器:将设计好的滤波器系数应用到信号上,实现代码如下:```matlabfiltered_signal = filter(b, 1, x); % 应用滤波器```4.绘制滤波前后的信号波形:使用plot函数分别绘制滤波前和滤波后的信号波形,实现代码如下:```matlabfigure; % 创建新的图形窗口plot(t, x);title('Original Signal'); % 设置图标题plot(t, filtered_signal);title('Filtered Signal'); % 设置图标题```5.显示滤波前后的频谱图:使用fft函数计算滤波前后信号的频谱,并使用plot函数显示频谱图,实现代码如下:```matlabfigure; % 创建新的图形窗口X = abs(fft(x)); % 计算滤波前信号的频谱f = (0:length(X)-1)*fs/length(X); % 计算频率轴的范围plot(f, X);title('Spectrum of Original Signal'); % 设置图标题filtered_X = abs(fft(filtered_signal)); % 计算滤波后信号的频谱plot(f, filtered_X);title('Spectrum of Filtered Signal'); % 设置图标题```实验结果与分析:通过实验设计的FIR数字滤波器,可以实现对输入信号的滤波功能。

fir数字滤波器设计与软件实现数字信号处理实验原理

fir数字滤波器设计与软件实现数字信号处理实验原理

fir数字滤波器设计与软件实现数字信号处理实验原理FIR数字滤波器设计的基本原理是从理想滤波器的频率响应出发,寻找一个系统函数,使其频率响应尽可能逼近滤波器要求的理想频率响应。

为了实现这一目标,通常会采用窗函数法进行设计。

这种方法的基本思想是,将理想滤波器的无限长单位脉冲响应截断为有限长因果序列,并用合适的窗函数进行加权,从而得到FIR滤波器的单位脉冲响应。

在选择窗函数时,需要考虑其频率响应和幅度响应。

常见的窗函数包括矩形窗、三角形窗、汉宁窗、汉明窗、布莱克曼窗和凯泽窗等。

每种窗函数都有其特定的特性,如主瓣宽度、旁瓣衰减等。

根据实际需求,可以选择合适的窗函数以优化滤波器的性能。

在软件实现上,可以使用各种编程语言和信号处理库进行FIR滤波器的设计和实现。

例如,在MATLAB中,可以使用内置的`fir1`函数来设计FIR滤波器。

该函数可以根据指定的滤波器长度N和采样频率Fs,自动选择合适的窗函数并计算滤波器的系数。

然后,可以使用快速卷积函数`fftfilt`对输入信号进行滤波处理。

此外,还可以使用等波纹最佳逼近法来设计FIR数字滤波器。

这种方法的目标是找到一个最接近理想滤波器频率响应的实数序列,使得在所有可能的实
数序列中,该序列的误差平方和最小。

通过优化算法,可以找到这个最优序列,从而得到性能更优的FIR滤波器。

总的来说,FIR数字滤波器设计与软件实现数字信号处理实验原理是基于对理想滤波器频率响应的逼近和优化,通过选择合适的窗函数和算法,实现信号的滤波处理。

实验五FIR数字滤波器的设计

实验五FIR数字滤波器的设计

实验五FIR数字滤波器的设计FIR数字滤波器(Finite Impulse Response)是一种数字滤波器,它的输出仅由有限数量的输入样本决定。

设计FIR数字滤波器的步骤如下:1.确定滤波器的要求:首先需要明确滤波器的频率响应、截止频率、通带和阻带的幅频响应等要求。

2.选择滤波器类型:根据实际需求选择合适的滤波器类型,如低通滤波器、高通滤波器、带通滤波器或带阻滤波器等。

3.确定滤波器的阶数:根据滤波器类型和要求,确定滤波器的阶数。

通常情况下,滤波器的阶数越高,能够实现更陡峭的频率响应,但会引入更多的计算复杂度。

4.设计滤波器的理想频率响应:根据滤波器的要求和类型,设计滤波器的理想频率响应。

可以使用常用的频率响应设计方法,如窗函数法、最小最大法或线性相位法等。

这些方法可以实现平滑的频率响应或者良好的阻带衰减。

5.确定滤波器的系数:根据设计的理想频率响应,通过反变换或优化算法确定滤波器的系数。

常用的优化算法包括频域方法、时域方法、最小二乘法或最小相位法等。

6.实现滤波器:将所得的滤波器系数转化为滤波器的差分方程形式或直接计算滤波器的频域响应。

7.评估滤波器性能:使用合适的测试信号输入滤波器,并对滤波器的输出进行评估。

可以使用指标,如频率响应曲线、幅度响应误差、相位响应误差或阻带衰减等指标来评估滤波器性能。

8.优化滤波器性能:根据评估结果,进行必要的修改和优化设计,以满足滤波器的要求。

通过以上步骤,可以设计出满足需求的FIR数字滤波器。

需要注意的是,FIR数字滤波器设计的复杂度和性能需要权衡与平衡,以满足实际应用的要求。

实验五 FIR数字滤波器的设计

实验五  FIR数字滤波器的设计

实验六 FIR 数字滤波器的设计一、实验目的1.熟悉FIR 滤波器的设计基本方法2.掌握用窗函数设计FIR 数字滤波器的原理与方法。

二、实验内容1.FIR 数字滤波器的设计方法FIR 滤波器的设计问题在于寻求一系统函数)(z H ,使其频率响应)(ωj e H 逼近滤波器要求的理想频率响应)(ωj d e H ,其对应的单位脉冲响应为)(n h d 。

(1)用窗函数设计FIR 滤波器的基本原理设计思想:从时域从发,设计)(n h 逼近理想)(n h d 。

设理想滤波器)(ωj d e H 的单位脉冲响应为)(n h d 。

以低通线性相位FIR 数字滤波器为例。

⎰∑--∞-∞===ππωωωωωπd e e H n h e n he H jn j d d jn n d j d )(21)()()( (6-1) )(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 (6-2) 用矩形窗设计的FIR 低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs )效应。

为了消除吉布斯效应,一般采用其他类型的窗函数。

(2) 典型的窗函数① 矩形窗(Rectangle Window))()(n R n w N = (6-3)② 三角形窗(Bartlett Window)⎪⎩⎪⎨⎧-≤<----≤≤-=121,122210,12)(N n N N n N n N n n w (6-4) ③ 汉宁(Hanning)窗,又称升余弦窗)()]12cos(1[21)(n R N n n w N --=π (6-5) ④ 汉明(Hamming)窗,又称改进的升余弦窗)()]12cos(46.054.0[)(n R N n n w N --=π (6-6) ⑤ 布莱克曼(Blankman)窗,又称二阶升余弦窗)()]14cos(08.0)12cos(5.042.0[)(n R N n N n n w N -+--=ππ (6-7) ⑥ 凯泽(Kaiser)窗 10,)())]1/(21[1()(020-≤≤---=N n I N n I n w ββ (6-8) 其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。

实验五FIR数字滤波器的设计

实验五FIR数字滤波器的设计

实验五FIR数字滤波器的设计
FIR数字滤波器的设计可以分为以下几个步骤:
1.确定滤波器的类型和规格:根据实际需求确定滤波器的类型(如低通、高通、带通等)以及滤波器的截止频率、通带衰减以及阻带衰减等规格。

2.选择滤波器的窗函数:根据滤波器的规格,选择合适的窗函数(如矩形窗、汉宁窗、布莱克曼窗等)。

窗函数的选择会影响滤波器的频率响应以及滤波器的过渡带宽度等特性。

3.确定滤波器的阶数:根据滤波器的规格和窗函数的选择,确定滤波器的阶数。

通常来说,滤波器的阶数越高,滤波器的性能越好,但相应的计算和处理也会更加复杂。

4.设计滤波器的频率响应:通过在频率域中设计滤波器的频率响应来满足滤波器的规格要求。

可以使用频率采样法、窗函数法或优化算法等方法。

5. 将频率响应转换为差分方程:通过逆Fourier变换或其他变换方法,将频率响应转换为滤波器的差分方程表示。

6.量化滤波器的系数:将差分方程中的连续系数离散化为滤波器的实际系数。

7.实现滤波器:使用计算机编程、数字信号处理芯片或FPGA等方式实现滤波器的功能。

8.测试滤波器性能:通过输入一组测试信号并观察输出信号,来验证滤波器的性能是否符合设计要求。

需要注意的是,FIR数字滤波器的设计涉及到频率域和时域的转换,以及滤波器系数的选择和调整等过程,需要一定的信号处理和数学背景知识。

数字信号管理方案计划实验报告实验五

数字信号管理方案计划实验报告实验五

物理与电子信息工程学院实验报告实验课程名称:数字信号处理实验名称:FIR数字滤波器设计与软件实现班级:1012341姓名:严娅学号:101234153成绩:_______实验时间:2012年12月20 日一、实验目的(1)掌握用窗函数法设计FIR 数字滤波器的原理和方法。

(2)掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法。

(3)掌握FIR 滤波器的快速卷积实现原理。

(4)学会调用MATLAB 函数设计与实现FIR 滤波器。

二、实验原理1、用窗函数法设计FIR 数字滤波器的原理和方法。

如果所希望的滤波器的理想频率响应函数为 )(ωj d e H ,则其对应的单位脉冲响应为)(n h d =π21ωωωππd e e H j j d )(⎰- (2-1)窗函数设计法的基本原理是用有限长单位脉冲响应序列)(n h 逼近)(n h d 。

由于)(n h d 往往是无限长序列,且是非因果的,所以用窗函数)(n ω将)(n h d 截断,并进行加权处理,得到:)(n h =)(n h d )(n ω (2-2))(n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数)(ωj d e H 为:)(ωj d e H =∑-=-1)(N n j e n h ω (2-3) 式中,N 为所选窗函数)(n ω的长度。

由第七章可知,用窗函数法设计的滤波器性能取决于窗函数)(n ω的类型及窗口长度N 的取值。

设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。

各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见第七章。

这样选定窗函数类型和长度N 后,求出单位脉冲响应)(n h =)(n h d ·)(n ω,并按式(2-3)求出)(ωj e H 。

)(ωj e H 是否满足要求,要进行验算。

一般在)(n h 尾部加零使长度满足于2的整数次幂,以便用FFT 计算)(ωj e H 。

FIR数字滤波器设计与软件实现实验报告222

FIR数字滤波器设计与软件实现实验报告222

FIR数字滤波器设计与软件实现实验报告222 FIR数字滤波器设计与软件实现实验报告222实验报告标题:FIR数字滤波器设计与软件实现实验目的:1.掌握FIR数字滤波器的设计原理;2.学会使用软件进行FIR数字滤波器设计;3.实现FIR数字滤波器的软件仿真。

实验材料与设备:1.计算机;2.FIR滤波器设计软件。

实验原理:FIR(Finite Impulse Response)数字滤波器是一种线性时不变滤波器,具有无穷冲击响应长度。

其传递函数表达式为:H(z)=b0+b1*z^(-1)+b2*z^(-2)+...+bM*z^(-M)其中,H(z)为滤波器的传递函数,z为z变换的复数变量,b0,b1,...,bM为滤波器的系数,M为滤波器的阶数。

FIR滤波器的设计包括理想滤波器的设计和窗函数法的设计两种方法。

本实验使用窗函数法进行FIR滤波器的设计。

窗函数法的步骤如下:1.确定滤波器的阶数M;2.设计理想低通滤波器的频率响应Hd(w);3.根据滤波器的截止频率选择合适的窗函数W(n);4.计算滤波器的单位脉冲响应h(n);5.调整滤波器的单位脉冲响应h(n)的幅度;6.得到滤波器的系数b0,b1,...,bM。

实验步骤:1.在计算机上安装并打开FIR滤波器设计软件;2.根据实验要求选择窗函数法进行FIR滤波器的设计;3.输入滤波器的阶数M和截止频率,选择合适的窗函数;4.运行软件进行滤波器设计,得到滤波器的系数;5.使用软件进行FIR滤波器的软件仿真。

实验结果:经过软件仿真,得到了FIR数字滤波器的单位脉冲响应和频率响应曲线,满足设计要求。

滤波器的阶数和截止频率对滤波器的响应曲线有一定影响。

通过调整滤波器阶数和截止频率,可以得到不同的滤波效果。

实验结论:本实验通过窗函数法进行FIR数字滤波器的设计,并通过软件进行了仿真。

实验结果表明,FIR数字滤波器具有良好的滤波效果,可以用于信号处理和通信系统中的滤波需求。

FIR数字滤波器设计与软件实现

FIR数字滤波器设计与软件实现

实验四: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滤波器设计与实现实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新实验5FIR数字滤波器设计与软件实现

最新实验5FIR数字滤波器设计与软件实现

信息院 14电信(师范)1实验五:FIR数字滤波器设计与软件实现23一、实验指导41.实验目的5(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。

6(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。

7(3)掌握FIR滤波器的快速卷积实现原理。

8(4)学会调用MATLAB函数设计与实现FIR滤波器。

92.实验内容及步骤1011(1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;1213(2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及14其频谱,如图1所示;1516图1 具有加性噪声的信号x(t)及其频谱如图17程序代码:(信号产生函数xtg程序清单)18function xt=xtg(N)19%ʵÑéÎåÐźÅx(t)²úÉú,²¢ÏÔʾÐźŵķùƵÌØÐÔÇúÏß20%xt=xtg(N)21²úÉúÒ»¸ö³¤¶ÈΪN,ÓмÓÐÔ¸ßƵÔëÉùµÄµ¥Æµµ÷·ùÐźÅxt,²ÉÑùƵÂÊ22Fs=1000Hz23%Ôز¨ÆµÂÊfc=Fs/10=100Hz,µ÷ÖÆÕýÏÒ²¨ÆµÂÊf0=fc/10=10Hz.24N=1000;Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;2526fc=Fs/10;f0=fc/10; %Ôز¨ÆµÂÊfc=Fs/10£¬µ¥Æµµ÷ÖÆÐźÅƵÂÊΪf0=Fc/10;2728mt=cos(2*pi*f0*t); %²úÉúµ¥ÆµÕýÏÒ²¨µ÷ÖÆÐźÅmt£¬ÆµÂÊΪf 29ct=cos(2*pi*fc*t); %²úÉúÔز¨ÕýÏÒ²¨ÐźÅct£¬ÆµÂÊΪfc3031xt=mt.*ct; %Ïà³Ë²úÉúµ¥Æµµ÷ÖÆÐźÅxt32nt=2*rand(1,N)-1; %²úÉúËæ»úÔëÉùnt33%=======Éè¼Æ¸ßͨÂ˲¨Æ÷hn,ÓÃÓÚÂ˳ýÔëÉùntÖеĵÍƵ³É·Ö, 34Éú³É¸ßͨÔëÉù=======35fp=150; fs=200;Rp=0.1;As=70; % Â˲¨Æ÷Ö¸±êfb=[fp,fs];m=[0,1]; %3637¼ÆËãremezordº¯ÊýËùÐè²ÎÊýf,m,dev38dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs); %3940È·¶¨remezº¯ÊýËùÐè²ÎÊý41hn=remez(n,fo,mo,W); %42µ÷ÓÃremezº¯Êý½øÐÐÉè¼Æ,ÓÃÓÚÂ˳ýÔëÉùntÖеĵÍƵ³É·Ö43yt=filter(hn,1,10*nt); %Â˳ýËæ»úÔëÉùÖеÍƵ³É·Ö£¬Éú44³É¸ßͨÔëÉùyt45%======================================================= 46=========47xt=xt+yt; %ÔëÉù¼ÓÐźÅ48fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t4950)');51axis([0,Tp/5,min(xt),max(xt)]);title('(a)52ÐźżÓÔëÉù²¨ÐÎ')53subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title 54('(b) ÐźżÓÔëÉùµÄƵÆ×')55axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('·ù¶È')56输出波形:5758(3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。

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数字滤波器的设计一:实验目的(1)掌握用窗函数法,频率采样法及优化设计法设计FIR滤波器的原理及方法,熟悉响应的matlab编程;(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π成奇对称,不适合作高通和低通。

=0,不适合作低通。

4、h(n)为奇对称,N为偶数;H(e jω)ω=0、2π(二) 窗口法窗函数法设计线性相位FIR 滤波器步骤确定数字滤波器的性能要求:临界频率{ωk },滤波器单位脉冲响应长度N ;根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应H d (e jω)的幅频特性和相频特性;求理想单位脉冲响应h d (n),在实际计算中,可对H d (e jω)按M(M 远大于N)点等距离采样,并对其求IDFT 得h M (n),用h M (n)代替h d (n);选择适当的窗函数w(n),根据h(n)= h d (n)w(n)求所需设计的FIR 滤波器单位脉冲响应; 求H(e jω),分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N ,重复上述设计过程,以得到满意的结果。

窗函数的傅式变换W(e jω)的主瓣决定了H(e jω)过渡带宽。

W(e jω)的旁瓣大小和多少决定了H(e jω)在通带和阻带范围内波动幅度,常用的几种窗函数有:(1)矩形窗(Rectangle Window))()(n R n w N =(2)汉宁(Hanning)窗,又称升余弦窗)()]12cos(1[21)(n R N n n w N --=π (3)汉明(Hamming)窗,又称改进的升余弦窗)()]12cos(46.054.0[)(n R N n n w N --=π(4)布莱克曼(Blankman)窗,又称二阶升余弦窗 )()]14cos(08.0)12cos(5.042.0[)(n R N n N n n w N -+--=ππ(5)凯塞(Kaiser)窗 10,)())]1/(21[1()(020-≤≤---=N n I N n I n w ββ其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。

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数字滤波器的设计

实验五FIR数字滤波器的设计
设计FIR数字滤波器的步骤如下:
1.确定滤波器的类型:低通、高通、带通或带阻。

2.确定滤波器的规格:截止频率、通带增益、阻带衰减等。

3.选择合适的滤波器设计方法:窗函数法、最小二乘法、频率采样法等。

4.根据滤波器的类型和规格选择适当的滤波器长度。

5.根据所选择的设计方法,设计滤波器的频率响应。

6.进行滤波器的频率响应修正,以满足滤波器的规格要求。

7.将滤波器的频率响应转换为时域表示,得到滤波器的冲激响应。

8.如果需要,对滤波器进行进一步的优化和调整。

9.实现滤波器的数字滤波器。

10.验证滤波器的设计是否符合规格要求,对设计进行测试和优化。

注意:在设计FIR数字滤波器时,可以利用不同的工具和软件,如MATLAB、Python等。

根据具体的设计要求和软件使用方式,可以采取不同的设计方法和工具来实现FIR数字滤波器的设计。

Fir数字滤波器设计及软件实现

Fir数字滤波器设计及软件实现

信号产生函数xtg程序清单function xt=xtg%产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz.N=1600;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;figure(1);subplot(2,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/4,min(xt),max(xt)]);title('信号加噪声波形');subplot(2,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('信号加噪声的频谱');axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度');FIR数字滤波器设计及软件实现程序清单clear all;close allxt=xtg; %调用xtg产生信号xt, xt长度N=1600,并显示xt及其频谱fp=130;fs=150;Rp=0.1;As=60;Fs=1000; % 输入给定指标%用窗函数法设计滤波器wc=(fp+fs)/Fs; %理想低通滤波器截止频率(关于pi归一化)B=2*pi*(fs-fp)/Fs;Nb=ceil(11*pi/B);hn=fir1(Nb-1,wc,blackman(Nb));y1t=fftfilt(hn,xt,1600); %调用函数fftfilt对xt滤波figure(2);t=0:0.001:1.599; %绘制滤波后的信号时域波形图subplot(2,1,1);plot(t,y1t);grid;xlabel('t/s');ylabel('y_1(t)');title('滤波后的y_1(t)的波形');axis([0 0.5 -1 1]);subplot(2,1,2);[h w]=freqz(hn); %绘制低通滤波器的损耗函数曲线plot(w/pi,20*log10(abs(h)));grid;xlabel('ω/π');ylabel('幅度(dB)');title('窗函数法低通滤波器的损耗函数曲线');axis([0 1 -120 5]);%用等波纹最佳逼近法设计滤波器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函数进行设计y2t=fftfilt(hn,xt,1600); %调用函数fftfilt对xt滤波figure(3);t=0:0.001:1.599; %绘制滤波后的信号时域波形图subplot(2,1,1);plot(t,y2t);grid;xlabel('t/s');ylabel('y_2(t)');title('滤波后的y_2(t)的波形');%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz.N=1600;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;figure(1);subplot(2,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/4,min(xt),max(xt)]);title('信号加噪声波形');subplot(2,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('信号加噪声的频谱');axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度');%调用xtg产生信号xt, xt长度N=1600,并显示xt及其频谱fp=130;fs=150;Rp=0.1;As=60;Fs=1000; % 输入给定指标%用窗函数法设计滤波器wc=(fp+fs)/Fs; %理想低通滤波器截止频率(关于pi归一化)B=2*pi*(fs-fp)/Fs;Nb=ceil(11*pi/B);hn=fir1(Nb-1,wc,blackman(Nb));y1t=fftfilt(hn,xt,1600); %调用函数fftfilt对xt滤波figure(2);t=0:0.001:1.599; %绘制滤波后的信号时域波形图subplot(2,1,1);plot(t,y1t);grid;xlabel('t/s');ylabel('y_1(t)');title('滤波后的y_1(t)的波形');axis([0 0.5 -1 1]);subplot(2,1,2);[h w]=freqz(hn); %绘制低通滤波器的损耗函数曲线plot(w/pi,20*log10(abs(h)));grid;xlabel('ω/π');ylabel('幅度(dB)');title('窗函数法低通滤波器的损耗函数曲线');axis([0 1 -120 5]);%用等波纹最佳逼近法设计滤波器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函数进行设计y2t=fftfilt(hn,xt,1600); %调用函数fftfilt对xt滤波figure(3);t=0:0.001:1.599; %绘制滤波后的信号时域波形图subplot(2,1,1);plot(t,y2t);grid;xlabel('t/s');ylabel('y_2(t)');title('滤波后的y_2(t)的波形');axis([0 0.5 -1 1]);subplot(2,1,2);[h w]=freqz(hn); %绘制低通滤波器的损耗函数曲线plot(w/pi,20*log10(abs(h)));grid;xlabel('ω/π');ylabel('幅度(dB)');title('等波纹逼近法低通滤波器的损耗函数曲线');axis([0 1 -80 5]);。

FIR数字滤波器设计与软件实现实验

FIR数字滤波器设计与软件实现实验

实验三:FIR 数字滤波器设计与软件实现1、 实验目的(1)掌握用窗函数法设计FIR 数字滤波器的原理和方法(2)掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法 (3)掌握FIR 滤波器的快速卷积实现原理(4)学会调用MATLAB 函数设计与实现FIR 滤波器2、 实验步骤及内容(1) 认真复习第七章中用窗函数法和等波纹最佳逼近方法设计FIR 数字滤波器的原理;(2) 调用信号产生函数xtg 产生具有加性噪声的信号xt ,并自动显示xt 及其频谱,如图10.5.1所示。

(3) 请设计低通滤波器,从高频噪声中提取xt 中的单频抑制载波调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB 。

观察xt 的频谱,确定滤波器指标参数。

(4) 根据滤波器指标选择合适的窗函数,计算窗函数的长度N ,调用MATLAB函数firl 设计一个FIR 低通滤波器。

并编写程序,调用MATLAB 快速卷积函数fftfilt 实现对xt 的滤波。

绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。

(5) 重复(3),滤波器指标不变,但改用等纹波最佳逼近法设计FIR 滤波器,调用MATLAB 函数remezord 和remez 设计FIR 数字滤波器。

比较两种设计方法设计的滤波器阶数。

00.020.040.060.080.10.120.140.160.180.2-1010t/sx (t )(a)信号加噪声波形5010015020025030035040045050000.51(b)信号加噪声的频谱f/Hz幅度3、程序清单clc;clear;NN=1000;fs1=1000;T=1/fs1;t=0:T:(NN-1)*T;Tp=NN*T;k=0:NN-1;f=k/Tp;%rs等于60dB,因此采用布克莱曼窗fp=120;fs=150;%转换为数字频率wp=2*pi*fp/fs1;ws=2*pi*fs/fs1;bt=ws-wp; %计算过渡带宽度N0=ceil(11*pi/bt);%计算滤波器阶数N1=N0+mod(N0+1,2);%确保好h(n)长度N1是奇数wc=(wp+ws)/2/pi;%计算理想高通滤波器通带截止频率hn=fir1(N1-1,wc,blackman(N1));%调用firl 计算高通FIR数字滤波器的h(n)figure;[H,W]=freqz(hn,1,512,2);plot(W,20*log10(abs(H)));y1=filter(hn,1,xtg);%调用fftfilt用重叠相加法计算卷积y1_fft=fft(y1,NN);figure;subplot(2,1,1);plot(t,y1)axis([0,0.5*Tp,min(y1),max(y1)]);subplot(2,1,2);stem(f,abs(y1_fft)/max(abs(y1_fft)),'.'); axis([0,fs1/5,0,1.2]);grid;functionxt=xtg %实验五信号x(t)产生函数,并显示信号的时域波形和幅频特性曲线%xt=xtg产生一个长度为N,有加性高频噪声的単频调幅信号xt,N=1000%采样频率Fs=1000Hz%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10HzN=1000;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/10mt=cos(2*pi*f0*t);%产生単频正弦波调制信号mt,频率为f0ct=cos(2*pi*fc*t);%产生载波正弦波信号mt,频率为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/2 0)+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(2,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/5,min(xt),max(xt)]);title('(a)信号加噪声波形')subplot(2,1,2);plot(f,abs(fst)/max(abs(fst))); grid;title('(b)信号加噪声的频谱')axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')4、仿真波形00.020.040.060.080.10.120.140.160.180.2-1010t/sx (t )(a)信号加噪声波形5010015020025030035040045050000.51(b)信号加噪声的频谱f/Hz幅度0.050.10.150.20.250.30.350.40.450.5-1-0.50.5120406080100120140160180200。

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

实验五:FIR数字滤波器设计与软件实现一、实验指导1.实验目的(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。

(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。

(3)掌握FIR滤波器的快速卷积实现原理。

(4)学会调用MATLAB函数设计与实现FIR滤波器。

2.实验容及步骤(1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理;(2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示;图1 具有加性噪声的信号x(t)及其频谱如图(3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。

先观察xt的频谱,确定滤波器指标参数。

(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。

并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。

绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。

(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord 和remez设计FIR数字滤波器。

并比较两种设计方法设计的滤波器阶数。

提示:○1MATLAB函数fir1的功能及其调用格式请查阅教材;○2采样频率Fs=1000Hz,采样周期T=1/Fs;○3根据图1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz ,换算成数字频率,通带截止频率p 20.24p f ωπ=T =π,通带最大衰为0.1dB ,阻带截至频率s 20.3s f ωπ=T =π,阻带最小衰为60dB 。

○4实验程序框图如图2所示,供读者参考。

图2 实验程序框图4.思考题(1)如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?请写出设计步骤.(2)如果要求用窗函数法设计带通滤波器,且给定通带上、下截止频率为pl ω和pu ω,阻带上、下截止频率为sl ω和su ω,试求理想带通滤波器的截止频率cl cu ωω和。

(3)解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低?5.信号产生函数xtg 程序清单(见教材)二、 滤波器参数及实验程序清单1、滤波器参数选取根据实验指导的提示③选择滤波器指标参数:通带截止频率fp=120Hz ,阻带截至频率fs=150Hz 。

代入采样频率Fs=1000Hz ,换算成数字频率,通带截止频率p 20.24p f ωπ=T =π,通带最大衰为0.1dB ,阻带截至频率s 20.3sfωπ=T=π,阻带最小衰为60dB。

所以选取blackman窗函数。

与信号产生函数xtg 相同,采样频率Fs=1000Hz。

按照图2 所示的程序框图编写的实验程序为exp2.m。

2、实验程序清单% FIR数字滤波器设计及软件实现clear all;close all;%======调用xtg产生信号xt, xt长度N=1000,并显示xt及其频谱,======N=1000;xt=xtg;fp=120; fs=150;Rp=0.2;As=60;Fs=1000; % 输入给定指标% (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滤波%以下为用窗函数法设计法的绘图部分(滤波器损耗函数,滤波器输出信号波形)f=[0:1023]*Fs/1024;figure(2)subplot(2,1,1)plot(f,20*log10(Hw/max(Hw)));grid;title('(a) 低通滤波器幅频特性')axis([0,Fs/2,-120,20]);xlabel('f/Hz');ylabel('幅度')t=[0:N-1]/Fs;Tp=N/Fs;subplot(2,1,2)plot(t,ywt);grid;axis([0,Tp/2,-1,1]);xlabel('t/s');ylabel('y_w(t)');title('(b) 滤除噪声后的信号波形')% (2) 用等波纹最佳逼近法设计滤波器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(2,1,1)f=[0:1023]*Fs/1024;plot(f,20*log10(Hw/max(Hw)));grid;title('(c) 低通滤波器幅频特性')axis([0,Fs/2,-80,10]);xlabel('f/Hz');ylabel('幅度')subplot(2,1,2);plot(t,yet);grid;axis([0,Tp/2,-1,1]);xlabel('t/s');ylabel('y_e(t)');title('(d) 滤除噪声后的信号波形')信号产生函数xtg程序清单:function xt=xtg%xt=xtg产生一个长度为N,有加性高频噪声的单频调幅信号xt,N=1000,%采样频率Fs=1000 Hz%载波频率fc=Fs/10=100 Hz,调制正弦波频率f0=fc/10=10 Hz.N=1000;Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;fc=Fs/10;f0=fc/10;mt=cos(2*pi*f0*t);ct=cos(2*pi*fc*t);xt=mt.*ct;nt=2*rand(1,N)-1;%=====设计高通滤波器hn,用于滤波噪声nt中的低频成分,生成高通噪声=====fp=120;fs=150;Rp=0.2;As=60;fb=[fp,fs];m=[0,1];dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs);hn=remez(n,fo,mo,W);yt=filter(hn,1,10*nt);%=====以下为绘图部分=====xt=xt+yt;fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(2,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/5,min(xt),max(xt)]);title('(a)信号加噪声波形');subplot(2,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b)信号加噪声的频谱');axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度');三、实验程序运行结果用窗函数法设计滤波器,滤波器长度 Nb=184。

滤波器损耗函数和滤波器输出yw(nT)分别如图3(a)和(b)所示。

用等波纹最佳逼近法设计滤波器,滤波器长度 Ne=83。

滤波器损耗函数和滤波器输出ye(nT)分别如图3(c)和(d)所示。

两种方法设计的滤波器都能有效地从噪声中提取信号,但等波纹最佳逼近法设计的滤波器阶数低得多,当然滤波实现的运算量以及时延也小得多,从图3(b)和(d)可以直观地看出时延差别。

图3 实验程序exp2.m运行结果四、简答思考题(1) 用窗函数法设计线性相位低通滤波器的设计步骤:a.根据对阻带衰减及过渡带的指标要求,选择窗函数的类型,并估计窗口的长度N;b.构造希望逼近的频率响应函数;c.计算h d(n);d.加窗得到设计结果h(n)=h d(n)w(n)。

(2) 希望逼近的理想带通滤波器的截止频率cl cu ωω和分别为:cl sl pl cu su pu ()/2, ()/2ωωωωωω=+=+(3)解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低? ①用窗函数法设计的滤波器,如果在阻带截止频率附近刚好满足,则离开阻带截止频率越远,阻带衰减富裕量越大,即存在资源浪费;② 几种常用的典型窗函数的通带最大衰减和阻带最小衰减固定,且差别较大,又不能分别控制。

所以设计的滤波器的通带最大衰减和阻带最小衰减通常都存在较大富裕。

如本实验所选的blackman 窗函数,其阻带最小衰减为74dB,而指标仅为60dB 。

③ 用等波纹最佳逼近法设计的滤波器,其通带和阻带均为等波纹特性,且通带最大衰减和阻带最小衰减可以分别控制,所以其指标均匀分布,没有资源浪费,所以其阶数低得多。

相关文档
最新文档