FIR滤波器的窗函数设计法及性能比较

合集下载

基于汉明窗函数的FIR低通滤波器设计及性能优化

基于汉明窗函数的FIR低通滤波器设计及性能优化

基于汉明窗函数的FIR低通滤波器设计及性能优化FIR(有限脉冲响应)滤波器是一种常见的数字滤波器,常用于信号处理和通信系统中。

在这篇文章中,我们将讨论基于汉明窗函数的FIR低通滤波器的设计和性能优化。

一、FIR低通滤波器的基本原理FIR低通滤波器是一种只有有限个非零系数的滤波器。

它的输出信号只由输入信号和滤波器的系数决定,不存在反馈回路,所以它具有线性相位响应和稳定性。

FIR低通滤波器的设计目标是在给定的截止频率下,使得滤波器的幅频特性在截止频率之前尽可能平坦,截止频率之后衰减尽可能大。

这样可以实现对高频噪声的滤除,保留低频信号。

二、汉明窗函数汉明窗函数是一种常用的窗函数,常用于FIR滤波器的设计中。

它的表达式为:w(n) = 0.54 - 0.46 * cos(2πn/N),0 ≤ n ≤ N-1其中,w(n)表示窗函数在第n个采样点的取值,N为窗函数的长度。

汉明窗函数的特点是在窗函数的两侧具有较小的幅度,且其边界呈现光滑曲线,适合用于低通滤波器的设计。

三、基于汉明窗函数的FIR低通滤波器设计步骤1. 确定滤波器的截止频率:根据实际需求,确定滤波器工作的截止频率。

2. 确定滤波器的阶数:阶数决定了滤波器的复杂度和性能,一般可根据实际需求和计算资源进行选择。

3. 计算滤波器的总系数:根据滤波器的阶数和截止频率,计算出FIR滤波器的总系数。

4. 计算汉明窗函数:根据滤波器的长度,计算出汉明窗函数的系数。

5. 求解滤波器的系数:将汉明窗函数与总系数相乘,得到最终的滤波器系数。

6. 进行滤波器的性能优化:可以通过改变窗函数的长度、改变滤波器的阶数等方式进行滤波器的性能优化,以满足实际需求。

四、性能优化策略在设计FIR低通滤波器时,可以采取以下性能优化策略:1. 改变窗函数的长度:增加窗函数的长度可以减小滤波器的幅频特性的过渡带宽度,但会增加滤波器的计算复杂度。

2. 改变滤波器的阶数:增加滤波器的阶数可以增加滤波器的衰减能力,但也会增加滤波器的计算复杂度。

基于汉明窗函数的FIR低通滤波器设计与性能分析

基于汉明窗函数的FIR低通滤波器设计与性能分析

基于汉明窗函数的FIR低通滤波器设计与性能分析1. 引言在信号处理领域,滤波器是一种常用的工具,用于去除不需要的频率分量或对特定频率分量进行增强。

其中,低通滤波器常用于去除高频噪声或保留低频信号。

本文将介绍基于汉明窗函数设计的FIR低通滤波器,并对其性能进行分析。

2. 汉明窗函数汉明窗函数是一种常见的窗函数,其形式为:w[n] = 0.54 - 0.46 * cos(2πn/(N-1)), 0 ≤ n ≤ N-1汉明窗函数具有以下特性:- 主瓣宽度较窄,抑制能力强;- 窗函数的边界平滑,信号截断较小;- MMSE(均方误差最小估计)性能较好。

3. FIR低通滤波器设计FIR低通滤波器可通过卷积运算实现。

设计步骤如下:- 确定截止频率:根据应用需求确定滤波器的截止频率。

- 确定滤波器阶数:根据截止频率和滤波器性能要求来确定阶数N。

- 确定理想低通滤波器的频率响应:根据截止频率确定理想低通滤波器的频率响应Hd(ω)。

- 应用汉明窗函数:将汉明窗函数与理想低通滤波器的频率响应相乘,得到实际滤波器的频率响应H(ω)。

- 逆傅里叶变换:将H(ω)进行逆傅里叶变换,得到时域的系数序列h[n]。

- 对h[n]进行归一化:将h[n]的最大值设置为1或0dB。

4. 性能分析对设计好的FIR低通滤波器进行性能分析,可从以下几个方面入手:- 频率响应:分析滤波器的截止频率、通频带边界、抑制带边界等重要参数,确保滤波器的性能与设计要求相符。

- 平均功率:计算滤波后信号的平均功率,评估滤波器的增益特性。

- 相位响应:分析滤波器的相位特性,检测滤波器对信号的引入的延迟。

- 稳态和瞬态特性:观察滤波器的稳态和瞬态响应,检验滤波器对不同类型输入信号的处理效果。

- 线性相位特性:验证滤波器是否具有线性相位特性,因为线性相位滤波器可以保持信号的波形不失真。

5. 实验与结果分析为了验证基于汉明窗函数设计的FIR低通滤波器的性能,可以进行一系列实验,并对结果进行分析。

(整理)FIR数字滤波器的(海明)窗函数法设计.

(整理)FIR数字滤波器的(海明)窗函数法设计.

FIR数字滤波器的(海明)窗函数法设计1.课程设计目的(1)熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数。

(2)加深对FIR数字滤波器设计的理解,并用窗函数法进行FIR数字滤波器的设计。

(3)将设计出来的FIR数字滤波器利用MATLAB进行仿真。

(4)对一段音频文件进行加入噪声处理,对带有噪声的文件进行滤波处理。

2.设计方案论证2.1 Matlab语言概述MATLAB是一种以矩阵运算为基础的交互式程序语言,专门针对科学、工程计算及绘图的需求。

随着版本的不断升级,内容不断扩充,功能更加强大,从而被广泛应用于仿真技术、自动控制和数字信号处理领域。

此高级语言可用于技术计算此开发环境可对代码、文件和数据进行管理交互式工具可以按迭代的方式探查、设计及求解问题数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数积分等二维和三维图形函数可用于可视化数据各种工具可用于构建自定义的图形用户界面各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM 以及Microsoft Excel)集成不支持大写输入,内核仅仅支持小写2.2声音处理语音是人类获取信息的重要来源和利用信息的重要手段。

语音信号处理是一门发展十分迅速,应用非常广泛的前沿交叉学科,同时又是一门跨学科的综合性应用研究领域和新兴技术。

声音是一种模拟信号,而计算机只能处理数字信息0和1。

因此,首先要把模拟的声音信号变成计算机能够识别和处理的数字信号,这个过程称为数字化,也叫“模数转换”。

在计算机对数字化后的声音信号处理完后,得到的依然是数字信号。

必须把数字声音信号转变成模拟声音信号,然后再图1 选择windows下的录音机”或是点击快捷按钮图5 加噪后语音信号和频谱图7 滤波器幅频特性与相频特性设计的滤波器是用单位采样响应h(n)表示的,可以利用带噪声语音图8滤波器系统函数。

实验7 窗函数法设计FIR数字滤波器

实验7 窗函数法设计FIR数字滤波器

实验7窗函数法设计FIR数字滤波器一、实验目的掌握窗函数法设计F1R数字滤波器的原理和具体方法二、实验设备与环境计算机、Mat1ab软件环境三、实验基础理论1>基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器Hd(,3),然后用窗函数截取它的单位脉冲响应%(九),得到线性相位和因果的FIR滤波器,这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。

2、设计步骤(1)给定理想滤波器的频率响应Hd("3),在通带上具有单位增益和线性相位,在阻带上具有零响应。

一个带宽为g(3c<Tr)的低通滤波器由下式给定h(e j^=(eW∣ω∣≤ωc虱)一1Oωc<∣ω∣<π其中α为采样延迟,其作用是为了得到因果的系统。

(2)确定这个滤波器的单位脉冲响应为了得到一个h(n)长度为N的因果的线性相位FIR滤波器,我们令N-Ia=-2-(3)用窗函数截取hd(τι)得到所设计FIR数字滤波器h(n)h(n)=h d(n)w(n)3、窗函数的选择常用的窗函数有矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗等。

Mat1ab提供了一些函数用于产生窗函数,如下表所示:在设计过程中我们需要根据给定的滤波器技术指标,选择滤波器长度N 和窗函数3(n)°表7.2列出了常用的窗函数的一些特性,可供设计时参考。

其中幻是修正的零阶贝塞尔函数,参数B 控制最小阻带衰减,这种窗函数对于相同的N 可以提供不同的过渡带宽。

由于贝塞尔函数比较更杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。

已知给定的指标叫Msc,Rp 和4,滤波器长度N 和凯瑟窗参数B 可以按如下凯瑟窗设计方程给出过渡带宽:∆ω=ωst -ωp入一7.95 2.285∆ω_(0.1102(4-8.7) ,P=iθ.5842(4-21)04+0.07886(4-21), 四、实验内容1、设计一个数字低通FIR 滤波器,其技术指标如下ωp =0.2τr,RP=0.25dBωst =0.3τr,A s =50dB分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。

fir窗函数设计法

fir窗函数设计法

fir窗函数设计法
FIR(有限脉冲响应)滤波器是一种常见的数字滤波器,而窗函数设计法是一种用于设计FIR滤波器的方法。

窗函数设计法的基本思想是将所需的频率响应与理想的频率响应进行比较,并使用窗函数来调整滤波器的频率响应以满足设计要求。

下面我将从几个方面来详细介绍窗函数设计法。

首先,窗函数设计法的第一步是选择一种窗函数,常见的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等。

每种窗函数都有其特定的频域特性和时域特性,选择合适的窗函数对于滤波器设计至关重要。

其次,一旦选择了窗函数,接下来需要确定滤波器的理想频率响应。

这包括确定所需的通带增益、阻带衰减、通带边缘频率和阻带边缘频率等参数。

这些参数将直接影响到窗函数的选择以及最终设计出的滤波器性能。

然后,利用所选的窗函数对理想频率响应进行加权,得到实际的频率响应。

这一步通常涉及到将窗函数与理想频率响应进行卷积运算,得到最终的滤波器频率响应。

最后,通过反变换(如离散傅立叶变换)将频率域的滤波器响应转换为时域的脉冲响应,即得到了滤波器的系数。

这些系数将用于实现滤波器的数字滤波器算法,从而实现对信号的滤波处理。

总的来说,窗函数设计法是一种常用的FIR滤波器设计方法,通过选择合适的窗函数并将其应用于理想频率响应上,可以设计出满足特定要求的数字滤波器。

在实际应用中,工程师们需要根据具体的设计要求和性能指标来选择合适的窗函数,并进行频域和时域的转换,以得到最终的滤波器系数。

希望这个回答能够帮助你更好地理解窗函数设计法。

用MATLAB结合窗函数法设计数字带通FIR滤波器

用MATLAB结合窗函数法设计数字带通FIR滤波器

武汉理工大学《Matlab课程设计》报告目录摘要 (I)Abstract (II)1 原理说明 (1)1.1 数字滤波技术 (1)1.2 FIR滤波器 (1)1.3 窗函数 (2)1.4 MATLAB简介 (4)1.5 MATLAB结合窗函数设计法原理 (4)2 滤波器设计 (2)2.1 滤波器设计要求 (2)2.2 设计函数的选取 (2)2.3 窗函数构造 (3)2.4 设计步骤 (4)2.5 利用MATLAB自带函数设计 (4)3 滤波器测试 (9)3.1 滤波器滤波性能测试 (9)3.2 滤波器时延测量................................................................................错误!未定义书签。

3.3 滤波器稳定性测量............................................................................错误!未定义书签。

5 参考文献 (12)附件一: ........................................................................................................ 错误!未定义书签。

摘要现代图像、语声、数据通信对线性相位的要求是普遍的。

数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。

根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。

与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。

因此,具有线性相位的FIR数字滤波器在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。

实验六用窗函数法设计FIR滤波器分析解析

实验六用窗函数法设计FIR滤波器分析解析

实验六用窗函数法设计FIR滤波器分析解析一、引言数字滤波器是数字信号处理中的重要组成部分。

滤波器可以用于去除噪声、调整频率响应以及提取感兴趣的信号。

有许多方法可以设计数字滤波器,包括窗函数法、频域法和优化法等。

本实验将重点介绍窗函数法设计FIR滤波器的原理和过程。

二、窗函数法设计FIR滤波器窗函数法是设计FIR滤波器的一种常用方法。

其基本原理是将滤波器的频率响应与理想滤波器的频率响应进行乘积。

理想滤波器的频率响应通常为矩形函数,而窗函数则用于提取有限长度的理想滤波器的频率响应。

窗函数的选择在FIR滤波器的设计中起着重要的作用。

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

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

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

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

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

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

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

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

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

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

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

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

6.实现滤波器。

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

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

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

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

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

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

FFT滤波器和FIR滤波器性能比较分析

FFT滤波器和FIR滤波器性能比较分析

FFT滤波器和FIR滤波器性能比较分析
1.原理和算法:
FIR滤波器是一种时域滤波器,它的输出信号是输入信号的加权和。

FIR滤波器使用有限长的冲击响应序列来实现滤波操作。

FIR滤波器的设计方法有很多,如窗函数法、最小二乘法等。

2.系统复杂度:
FIR滤波器的系统复杂度与滤波器的阶数相关,阶数越高,系统复杂度越高。

FIR滤波器的阶数决定了滤波器的频率响应的分辨率和滤波效果的准确度。

通常情况下,FIR滤波器的阶数比较低,系统复杂度较低。

3.频率响应:
FIR滤波器的频率响应一般更为准确,可以实现更为精细的频率选择特性。

通过FIR滤波器设计算法,可以设计出各种滤波响应的滤波器,如低通、高通、带通、带阻等。

FIR滤波器的响应可以实现极高的抑制比和较窄的过渡带宽。

4.实时性:
FIR滤波器具有很好的实时性能,适用于对实时信号进行滤波。

FIR 滤波器的输出可以在采样信号进入滤波器后的一个采样周期内得到。

5.存储需求:
FIR滤波器的存储需求主要取决于滤波器的系数,通常只需要存储滤波器的系数矩阵。

综上所述,FIR滤波器和FFT滤波器都具有各自的特点和优势。

FIR 滤波器具有更高的频率响应准确度和更好的实时性能;FFT滤波器则适用于离线频谱分析,并且可以实现较高的频域分辨率。

在具体应用中,需要根据实际需求选择适合的滤波器类型。

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

MATLAB课程设计报告学院:地球物理与石油资源学院班级:姓名:学号:班内编号:指导教师:完成日期: 2013年6月3日一、 题目 FIR 滤波器的窗函数设计法及性能比较1. FIR 滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。

根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。

与IIR 滤波器相比,FIR 滤波器的主要特点为: a. 线性相位;b.非递归运算。

2. FIR 滤波器的设计FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法; 这里我主要讨论在MA TLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。

窗函数法设计FIR 滤波器的一般步骤如下:a. 根据实际问题确定要设计的滤波器类型;b. 根据给定的技术指标,确定期望滤波器的理想频率特性;c. 求期望滤波器的单位脉冲响应;d. 求数字滤波器的单位脉冲响应;e. 应用。

常用的窗函数有同。

时与布莱克曼窗结果相当时与海明窗结果相同;时与矩形窗一致;当当885.84414.50]!)2/([1)(120===+=∑∞=x x x m x x I m m3.窗函数的选择标准1. 较低的旁瓣幅度,尤其是第一旁瓣;2. 旁瓣幅度要下降得快,以利于增加阻带衰减;3. 主瓣宽度要窄,这样滤波器过渡带较窄。

函数,可定义为是零阶式中Bessel x I n R I N n I n w windowKaiser n R N n N n n w windowBalckm an n R N n n w windowHam m ing n R N n n w windowHanning N N N N )()5.2.9()(])(})]1/(2[1{[)()4()4.2.9()()]14cos(08.0)12cos(5.042.0[)()3()3.2.9()()]12cos(46.054.0[)()2()2.2.9()()]1cos(5.05.0[)()1(0020ββππππ--=-+--=--=--=4. 常用窗函数的参数5.FIR滤波器的MATLAB实现方式在MATLAB信号分析与处理工具箱中提供了大量FIR窗函数的设计函数,本次用到主要有以下几种:hanning(N) hanning窗函数的调用hamming(N) hamming窗函数的调用blackman(N) blackman窗函数的调用kaiser(n+1,beta) kaiser窗函数的调用kaiserord 计算kaiser窗函数的相关参数freqz 求取频率响应filter 对信号进行滤波的函数6.实验具体步骤本次实验分别通过调用hanning ,hamming ,Blackman,kaiser窗函数,给以相同的技术参数,来设计低通,带通,高通滤波器,用上述窗函数的选择标准来比较各种窗函数的优劣,并给以一个简谐波进行滤波处理,比较滤波前后的效果。

达到综合比较的效果。

二、源代码1.利用hanning hamming blackman kaiser窗,设计一个低通FIRfunction lowpassfilterclc;clear all;Fs=100;%采样频率fp=20;%通带截止频率fs=30;%阻带起始频率wp=2*pi*fp/Fs;%将模拟通带截止频率转换为数字滤波器频率ws=2*pi*fs/Fs;%将模拟阻带起始频率转换为数字滤波器频率wn=(wp+ws)/2/pi;%标准化的截止频率响应Bt=ws-wp;N0=ceil(6.2*pi/Bt);%滤波器长度N=N0+mod(N0+1,2);window1=hanning(N);%使用hanning窗函数window2=hamming(N);%使用hamming窗函数window3=blackman(N);%使用blackman窗函数[n,Wn,beta,ftype]=kaiserord([20 25],[1 0],[0.01 0.01],100); window4=kaiser(n+1,beta);%使用kaiser窗函数%设计加窗函数fir1b1=fir1(N-1,wn,window1);b2=fir1(N-1,wn,window2);b3=fir1(N-1,wn,window3);b4=fir1(n,Wn/pi,window4 ,'noscale');%求取频率响应[H1,W1]=freqz(b1,1,512,2);[H2,W2]=freqz(b2,1,512,2);[H3,W3]=freqz(b3,1,512,2);[H4,W4]=freqz(b4,1,512,2);figure(1);subplot(2,2,1),plot(W1,20*log10(abs(H1)));%绘制频率响应图形axis([0,1,-100,100]);title('低通hanning窗的频率响应图形');xlabel('频率(Hz)');ylabel('幅值');subplot(2,2,2),plot(W2,20*log10(abs(H2)));%绘制频率响应图形axis([0,1,-100,100]);title('低通hamming窗的频率响应图形');xlabel('频率(Hz)');ylabel('幅值');subplot(2,2,3),plot(W3,20*log10(abs(H3)));%绘制频率响应图形axis([0,1,-100,100]);title('低通blackman窗的频率响应图形');xlabel('频率(Hz)');ylabel('幅值');subplot(2,2,4),plot(W4,20*log10(abs(H4)));%绘制频率响应图形axis([0,1,-100,100]);title('低通kaiser窗的频率响应图形');xlabel('频率(Hz)');ylabel('幅值');T=1/Fs;L=100;%信号长度t=(0:L-1)*T;%定义时间范围和步长y=sin(2*pi*5*t)+5*sin(2*pi*15*t)+8*sin(2*pi*40*t);%滤波前的图形NFFT = 2^nextpow2(L); % Next power of 2 from length of yY = fft(y,NFFT)/L;%将时域信号变换到频域f = Fs/2*linspace(0,1,NFFT/2+1);%频域采样figure(2);plot(f,2*abs(Y(1:NFFT/2+1)));xlabel('frequency/Hz');ylabel('Amuplitude') ;%滤波前频谱title('滤波前的频谱');%滤波后频谱%采用hanning窗滤波器yy1=filter(b1,1,y);%调用滤波函数YY1=fft(yy1,NFFT)/L;%进行傅里叶变换,下同。

f1=Fs/2*linspace(0,1,NFFT/2+1);figure(3);subplot(2,2,1),plot(f1,2*abs(YY1(1:NFFT/2+1))) ;xlabel('frequency/Hz');ylabel('Amuplitude'); title('hanning窗的滤波效果');%采用hammning窗滤波器yy2=filter(b2,1,y);YY2=fft(yy2,NFFT)/L;f1=Fs/2*linspace(0,1,NFFT/2+1);subplot(2,2,2),plot(f1,2*abs(YY2(1:NFFT/2+1))) ;xlabel('frequency/Hz');ylabel('Amuplitude'); title('hamming窗的滤波效果');%采用blackman窗滤波器yy3=filter(b3,1,y);YY3=fft(yy3,NFFT)/L;f1=Fs/2*linspace(0,1,NFFT/2+1);subplot(2,2,3), plot(f1,2*abs(YY3(1:NFFT/2+1))) ;xlabel('frequency/Hz');ylabel('Amuplitude'); title('blackman窗的滤波效果');%采用kaiser窗滤波器yy4=filter(b4,1,y);YY4=fft(yy4,NFFT)/L;f1=Fs/2*linspace(0,1,NFFT/2+1);subplot(2,2,4),plot(f1,2*abs(YY4(1:NFFT/2+1))) ;xlabel('frequency/Hz');ylabel('Amuplitude'); xlabel('frequency/Hz');ylabel('Amuplitude');title('kaiser窗函数滤波效果');%滤波前后的信号的时域对比figure(4);plot(y);xlabel('时间/s');ylabel('振幅');title('滤波前振幅特性');figure(5);subplot(2,2,1),plot(yy1);xlabel('时间/s');ylabel('振幅');title('hanning窗函数滤波振幅特性'); subplot(2,2,2),plot(yy2);xlabel('时间/s');ylabel('振幅');title('hamming窗函数滤波振幅特性'); subplot(2,2,3),plot(yy3);xlabel('时间/s');ylabel('振幅');title('blackman窗函数滤波振幅特性'); subplot(2,2,4),plot(yy4);xlabel('时间/s');ylabel('振幅');title('kaiser窗函数滤波振幅特性');%滤波前后的信号的相位对比figure(6);plot(angle(Y));xlabel('时间/s');ylabel('相位');title('滤波前的相位特性');figure(7);subplot(2,2,1),plot(angle(YY1));xlabel('时间/s');ylabel('相位');title('hanning窗函数滤波相位特性');subplot(2,2,2),plot(angle(YY2));xlabel('时间/s');ylabel('相位');title('hamming窗函数滤波相位特性');subplot(2,2,3),plot(angle(YY3));xlabel('时间/s');ylabel('相位');title('blackman窗函数滤波相位特性');subplot(2,2,4),plot(angle(YY4));xlabel('时间/s');ylabel('相位');title('kaiser窗函数滤波相位特性');2.设计一个hanning hamming blackman kaiser窗函数bandpass_FIR%设计一个hanning hamming blackman kaiser窗函数bandpass_FIRfunction bandpassfilterFs=100;%采样频率fp1=15;%通带下限截止频率fp2=20;%通带上限截止频率fs1=10;fs2=25;wp1=2*pi*fp1/Fs;%将通带下限截止频率转换为数字滤波器频率wp2=2*pi*fp2/Fs;%将通带上限截止频率转换为数字滤波器频率ws1=2*pi*fs1/Fs;%将通带下限截止频率转换为数字滤波器频率ws2=2*pi*fs2/Fs;%将通带上限截止频率转换为数字滤波器频率Bt=wp1-ws1;N0=ceil(6.2*pi/Bt);N=N0+mod(N0+1,2);wn=[(wp1+ws1)/2/pi,(wp2+ws2)/2/pi];window1=hanning(N);%使用hanning窗函数window2=hamming(N);%使用hamming窗函数window3=blackman(N);%使用blackman窗函数%设过渡带宽度为5Hz[n,Wn,beta,ftype]=kaiserord([10 15 20 25],[0 1 0],[0.01 0.01 0.01],100);%求阶数n以及参数beta window4=kaiser(n+1,beta);%使用kaiser窗函数%设计加窗函数fir1b1=fir1(N-1,wn,window1);b2=fir1(N-1,wn,window2);b3=fir1(N-1,wn,window3);b4=fir1(n,Wn,window4,'noscale');%求取频率响应[H1,W1]=freqz(b1,1,512,2);[H2,W2]=freqz(b2,1,512,2);[H3,W3]=freqz(b3,1,512,2);[H4,W4]=freqz(b4,1,512,2);figure(1);subplot(2,2,1),plot(W1,20*log10(abs(H1)));%绘制频率响应图形axis([0,1,-100,100]);title('带通hanning窗的频率响应图形');xlabel('频率(Hz)');ylabel('幅值');subplot(2,2,2),plot(W2,20*log10(abs(H2)));%绘制频率响应图形axis([0,1,-100,100]);title('带通hamming窗的频率响应图形');xlabel('频率(Hz)');ylabel('幅值');subplot(2,2,3),plot(W3,20*log10(abs(H3)));%绘制频率响应图形axis([0,1,-100,100]);title('带通blackman窗的频率响应图形');xlabel('频率(Hz)');ylabel('幅值');subplot(2,2,4),plot(W4,20*log10(abs(H4)));%绘制频率响应图形axis([0,1,-100,100]);title('带通kaiser窗的频率响应图形');xlabel('频率(Hz)');ylabel('幅值');T=1/Fs;L=100;%信号长度t=(0:L-1)*T;%定义时间范围和步长y=sin(2*pi*5*t)+5*sin(2*pi*15*t)+8*sin(2*pi*40*t);%滤波前的图形NFFT = 2^nextpow2(L); % Next power of 2 from length of yY = fft(y,NFFT)/L;%将时域信号变换到频域f = Fs/2*linspace(0,1,NFFT/2+1);%频域采样figure(2);plot(f,2*abs(Y(1:NFFT/2+1)));xlabel('frequency/Hz');ylabel('Amuplitude') ;%滤波前频谱title('滤波前的频谱');%滤波后频谱%采用hanning窗滤波器yy1=filter(b1,1,y);%调用滤波函数YY1=fft(yy1,NFFT)/L;%进行傅里叶变换,下同。

相关文档
最新文档