用窗函数法设计FIR数字低通滤波器资料

合集下载

fir滤波器的设计方法

fir滤波器的设计方法

fir滤波器的设计方法一、引言二、基本概念1.数字信号2.离散时间信号3.FIR滤波器三、FIR滤波器的设计方法1.窗函数法(1)矩形窗函数法(2)汉宁窗函数法(3)汉明窗函数法(4)布莱克曼窗函数法2.最小二乘法3.频率抽样法四、FIR滤波器设计实例五、总结一、引言数字信号处理在现代通信技术中得到了广泛的应用,其中滤波器是数字信号处理的重要组成部分。

FIR滤波器是一种常用的数字滤波器,具有无限冲击响应和线性相位特性。

本文将介绍FIR滤波器的基本概念和设计方法,并给出一个实例。

二、基本概念1.数字信号数字信号是在时间轴上取样后离散化的模拟信号。

在计算机中,数字信号由一系列离散的数值表示。

2.离散时间信号离散时间信号是以时间为自变量且取值为离散值的函数。

通常使用序列表示,如x(n)。

3.FIR滤波器FIR滤波器是一种数字滤波器,其系统函数是有限长冲击响应的线性时不变系统。

FIR滤波器的输出只与当前和过去的输入有关,与未来的输入无关。

FIR滤波器具有无限冲击响应和线性相位特性。

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

它通过在频域上对理想低通滤波器进行截止频率处理得到所需的频率响应,并使用窗函数将其转换为时域上的序列。

(1)矩形窗函数法矩形窗函数法是最简单的FIR滤波器设计方法。

它将理想低通滤波器在频域上乘以一个矩形窗函数,得到所需频率响应后再进行反变换得到时域上的系数序列。

(2)汉宁窗函数法汉宁窗函数法是一种常用的FIR滤波器设计方法。

它将理想低通滤波器在频域上乘以一个汉宁窗函数,得到所需频率响应后再进行反变换得到时域上的系数序列。

(3)汉明窗函数法汉明窗函数法是一种常用的FIR滤波器设计方法。

它将理想低通滤波器在频域上乘以一个汉明窗函数,得到所需频率响应后再进行反变换得到时域上的系数序列。

(4)布莱克曼窗函数法布莱克曼窗函数法是一种常用的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滤波器系统函数。

FIR数字低通滤波器的(汉宁)窗函数法设计

FIR数字低通滤波器的(汉宁)窗函数法设计

)(9cos 15.0)(12cos 15.0)(1919n R n n R N n n w ⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-=⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛--=ππ2.3进行语音信号的采集(1)按“开始”-“程序”-“附件”-“娱乐”-“录音机”的顺序操作打开W indo ws系统中的录音机软件。

如图1所示。

图1 wind ows 录音机(2)用麦克风录入自己的声音信号并保存成wav 文件。

如图2所示。

图2 保存文件保存的文件按照要求如下:① 音信号文件保存的文件名为“yuxue jiao .wav ”。

②语音信号的属性为“8.000KHz,8位,单声道 7KB/秒” ,其它选项为默认。

2.4语音信号的分析将“y ux uejia o.wav ”语音文件复制到计算机装有Matlab 软件的磁盘中相应图3语音信号的截取处理图在图3中,其中第一个图为原始语音信号;第二个图是截短后的信号图。

图4频谱分析图其中第二个图是信号的FFT 结果,其横坐标的具体值是X(k)中的序号k;第三个图是确定滤波频率范围的参考图,其横坐标的具体值应当是遵循D FT 定义式和频率分辨率求得的:∑-===10)()]([)(N n k N W n x n x DFT k X π当k 等于0时, 020j kn Njk knNe eW ==⋅-=π,从数字角频率上看,对应的正好是0=ω即直流的位置,也就是说,在取滤波频段时,当将主要能量(即红色框的部分)保留,其余频段部分的信号滤除。

)]([)(n x DFT k X =相当于是信号)(n x 的实际频谱)]([)(n x DFT ej X w =采样,而)(n x 又是连续时间语音信号)(t x 的采样。

)(k X 的每两个相邻取值之间的频率间隔大小对应到语音信号)(n x 的频谱中去,其频率间隔大小正好是采样结果的长度采样速率===∆L f f f s det f ∆称频率分辨率,其中Hz f s 8000=,10000=L ,p2=sum(s2.^2)-sum(s1.^2);SNR1=10*log10(p1/p2);p3=sum(s4.^2)/8000;p4=sum(s3.^2)/8000-sum(s4.^2)/8000;SNR2=10*log10(p3/p4);2.6噪声叠加图5 语音信号与加噪声后语音信号对比图五为语音信号与加噪声后语音信号对。

实验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数字滤波器的原理和窗函数对数字滤波器性能的影响二、实验内容与要求1.编写用改良的升余弦窗设计FIR线性相应低通数字滤波器的程序,已知wc=,N=21。

这里wc为低通滤波器的截止频次,N为滤波器的长度,滤波器的阶数为N-1。

2.调试运转程序,要求在屏幕上显示出单位脉冲响应h(n)的数值。

画出其幅度响应|H(ejw)|及20log10|H(ejw)|的曲线。

3.画出窗函数w(n)及其频谱|W(ejw)|和20log10|W(ejw)|的曲线。

三、实验程序与结果clear all;N=21;wc=*pi;b=fir1(N-1,wc/pi,hamming(N))freqz(b,1,512);h(n)的数值即b:b=Columns1through11Columns12through21 clear all;N=21;wc=*pi;r=(N-1)/2;n=0:N-1;hdn=sin(wc*(n-r))/pi./(n-r);if rem(N,2)~=0hdn(r+1)=wc/pi;endwn=hamming(N);h=hdn.*wn';H=fft(h,512);W=fft(wn,512);w=2*[0:511]/512;figure;subplot(3,1,1);plot(wn);subplot(3,1,2);plot(w,abs(W));ylabel('|W(eiw)|') subplot(3,1,3);plot(w,20*log10(abs(W))); ylabel('20lg|W(eiw)|'); figure;subplot(2,1,1);plot(w,abs(H));ylabel('|H(eiw)|') subplot(2,1,2);plot(w,20*log10(abs(H))); ylabel('20lg|H(eiw)|');四、仿真结果剖析图一是FIR低通滤波器的幅频和相频特征图图二是滤波器设计过以后的幅度特征图三是窗函数的幅度特征FIR滤波器的设计过程在于运用海明窗口进行设计,依据定义h(n)=hd(n)*w(n)出发来求出w(n)的值。

fir滤波器窗函数设计法

fir滤波器窗函数设计法

fir滤波器窗函数设计法
FIR (Finite Impulse Response)滤波器的窗函数设计法是一种经典的数字滤波器设计方法。

它通过选择一个合适的窗函数来对滤波器的频率响应进行加权,从而实现对信号的滤波。

窗函数设计法的基本步骤如下:
1. 确定滤波器的设计规格:包括截止频率、通带和阻带的幅频响应要求等。

2. 根据设计规格,计算出滤波器的理想频率响应:可以使用理想滤波器的频率响应作为目标。

3. 选择一个合适的窗函数:常用的窗函数有矩形窗、汉宁窗、汉明窗等。

选择窗函数的关键是考虑到主瓣宽度和副瓣衰减的平衡。

4. 将选择的窗函数应用于理想频率响应上,得到加权后的频率响应。

5. 对加权后的频率响应进行反变换,得到滤波器的时域响应。

6. 根据需要,对时域响应进行截断或零增益处理,以满足设计规格。

7. 最后,根据计算得到的滤波器系数,可以通过巴特沃斯频率抽样公式将其转换为巴特沃斯直接型或传输函数型,以便在数字系统中实现滤波。

需要注意的是,FIR滤波器的窗函数设计法是一种近似方法,设计的滤波器无法完全符合理想要求。

设计过程中需要权衡主瓣宽度和副瓣衰减等因素,以及选择合适的截断或零增益处理方式,以获得满
足实际需求的滤波器性能。

数字信号实验(4) 用窗函数设计FIR滤波器

数字信号实验(4) 用窗函数设计FIR滤波器

实验四用窗函数设计FIR滤波器一、实验目的1.熟悉FIR滤波器设计的基本方法。

2.掌握用窗函数设计FIR数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。

3.熟悉线性相位FIR滤波器的幅频特性和相位特性。

4.了解各种不同窗函数对滤波器性能的响应。

二、实验原理与方法(一)FIR滤波器的设计目前FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。

常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。

本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。

它是从时域出发,用一个窗函数截取理想的得到h(n),以有限长序列h(n)近似理想的;如果从频域出发,用理想的在单位圆上等角度取样得到H(k),根据h(k)得到H(z)将逼近理想的,这就是频率取样法。

(二)窗函数设计法同其它的数字滤波器的设计方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。

一般是给定一个理想的频率响应,使所设计的FIR滤波器的频率响应去逼近所要求的理想的滤波器的相应。

窗函数法设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数。

去逼近。

我们知道,一个理想的频率响应的傅理叶变换所得到的理想单位脉冲响应往往是一个无限长序列。

对经过适当的加权、截断处理才得到一个所需要的有限长脉冲响应序列。

对应不同的加权、截断,就有不同的窗函数。

所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积。

即,由此可见,窗函数的性质就决定了滤波器的品质。

以下是几种常用的窗函数:1.矩形窗:2.Hanning窗:3.Hamming窗:4.Blackman窗:5.Kaiser窗:窗函数法设计线性相位FIR滤波器可以按如下步骤进行:1.确定数字滤波器的性能要求。

确定各临界频率{}和滤波器单位脉冲响应长度N。

2.根据性能要求和N值,合理地选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频率响应的幅频特性和相位特性。

实验六用窗函数法设计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滤波器是数字信号处理中常用的一种滤波器,其特点是具有线性相位和稳定性。

在FIR滤波器中,窗函数是一种常用的设计方法,它可以用来控制滤波器的频率响应和滤波器的截止频率等参数。

窗函数的设计原理是基于信号的截断和补零,即将信号限制在一个有限的时间段内,并在信号的两端补零,使得信号在有限时间内变得平滑。

这样做的目的是为了避免信号在频域上出现不必要的波动,从而影响滤波器的性能。

在FIR滤波器中,窗函数的设计可以分为两个步骤:首先选择一个合适的窗函数,然后将该窗函数与理想滤波器的频率响应相乘,得到实际滤波器的频率响应。

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

其中,矩形窗是最简单的窗函数,其频率响应为常数,但其截止频率较高,不适合用于滤波器的设计。

汉明窗和汉宁窗的频率响应较为平滑,但其截止频率较低,适合用于低通滤波器的设计。

布莱克曼窗的频率响应最为平滑,但其计算较为复杂,适合用于高精度的滤波器设计。

在选择窗函数后,需要将其与理想滤波器的频率响应相乘,得到实际
滤波器的频率响应。

理想滤波器的频率响应可以通过傅里叶变换得到,其截止频率和通带宽度可以根据滤波器的设计要求进行调整。

将窗函
数与理想滤波器的频率响应相乘后,得到的实际滤波器的频率响应可
以通过傅里叶反变换得到时域响应,从而得到滤波器的系数。

总之,窗函数是一种常用的FIR滤波器设计方法,其原理是通过信号
的截断和补零来控制滤波器的频率响应和截止频率等参数。

在设计过
程中,需要选择合适的窗函数,并将其与理想滤波器的频率响应相乘,得到实际滤波器的频率响应,从而得到滤波器的系数。

窗函数法设计fir滤波器步骤

窗函数法设计fir滤波器步骤

窗函数法设计fir滤波器步骤
设计FIR滤波器的窗函数法步骤如下:
1. 确定滤波器的理想频率响应:根据滤波器的要求和设计目标,确定滤波器的理想频率响应。

例如,低通滤波器的理想频率响应为在截止频率以下通过全部信号,而在截止频率以上完全阻断信号。

2. 确定滤波器的截止频率:根据滤波器的要求,确定滤波器的截止频率,即理想频率响应中的-3dB截止点。

3. 计算滤波器的长度:根据滤波器的设计要求和所选窗函数的性能,计算滤波器的长度。

滤波器的长度通常与截止频率、过渡带宽和窗函数的主瓣宽度相关。

4. 选择合适的窗函数:根据滤波器的设计要求和性能需求,选择合适的窗函数。

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

5. 生成滤波器的理想冲激响应:根据滤波器的理想频率响应和截止频率,生成滤波器的理想冲激响应。

可以使用理想低通滤波器或频域采样方法生成。

6. 应用窗函数:将生成的理想冲激响应与所选的窗函数进行乘积,得到窗函数法设计的FIR滤波器的冲激响应。

7. 可选的调整和优化:根据需要,对生成的滤波器进行进一步的调整和优化,以满足特定的性能需求。

例如,可以通过改变窗函数的参数或使用多个窗函数的组合来调整主瓣宽度、副瓣抑制等。

8. 可选的滤波器实现:将得到的滤波器冲激响应进行频域或时域的变换,得到FIR滤波器的差分方程或频域表达式,然后进行滤波器的实现。

9. 滤波器性能评估:对设计的滤波器进行性能评估,包括频率响应、幅频特性、相位响应、群延迟等。

10. 如有需要,对滤波器的设计进行调整和优化,直至满足设计要求。

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

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

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

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

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

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

2. 两种设计FIR 滤波器的方法比较窗函数法简单方便,易于实现。

但存在以下缺点:滤波器边界频率不易精确控制。

窗函数法总使通带和阻带波纹幅度相等,不能分别控制通带和阻带波纹幅度。

所设计的滤波器在阻带边界频率附近的衰减最小,距阻带边界频率越远,衰减越大。

,所以如果在阻带边界频率附近的衰减刚好达到设计指标要求,则阻带中其他频段的衰减就有很大富余量,存在较大的资源浪费。

等波纹最佳逼近法是一种优化设计方法,克服了窗函数法的缺点,使最大误差最小化,并在整个逼近频段上均匀分布。

用等波纹最佳逼近法设计的FIR 数字滤波器的幅频响应在通带和阻带都是等波纹的,而且可以分别控制通带和阻带波纹幅度。

与窗函数法相比,由于这种设计法使最大误差均匀分布,所以设计的滤波器性能价格比最高。

阶数相同时,这种设计方法使滤波器的最大逼近误差最小,即通带最大衰减最小,阻带最小衰减最大。

指标相同时,这种设计法使滤波器阶数最低。

3. 滤波器参数及实验程序清单(1) 滤波器参数选取根据加噪信号频谱图和实验要求,可选择一低通滤波器进行滤波,确定滤波器指标参数:通带截止频率Hz f p 130=,阻带截至频率Hz f s 150=,换算成数字频率,通带截止频率ππω26.02==T f p p ,通带最大衰减为dB p 1.0=α,阻带截至频率ππω3.02==T f s s ,阻带最小衰减为dB s 60=α。

(2) 实验程序清单 图1 程序流程图信号产生函数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)的波形');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]);4. 实验结果在matlab 中键入以上程序,得到的仿真结果如下图2 具有加性噪声的信号x(t)及其频谱图3 窗函数法设计的滤波器损耗函数曲线及其滤波后的信号)(1t y图4 等波纹逼近法设计的滤波器损耗函数曲线及其滤波后的信号)(2t y由上述实验结果可见用窗函数法设计滤波器,滤波器长度 Nb=184。

FIR数字滤波器设计(窗函数法)C语言实现

FIR数字滤波器设计(窗函数法)C语言实现

FIR数字滤波器设计(窗函数法)C语⾔实现背景介绍:理想滤波器在物理上是不可实现的,其单位脉冲响应是⽆限长、⾮因果的。

窗函数法,就是从时域出发,⽤有限长、因果的单位脉冲响应h(n)去逼近理想滤波器的⽆限长、⾮因果的单位脉冲响应的⽅法。

窗函数法⼜叫傅⾥叶级数法。

更多背景资料,请看数字信号处理(李永全),P175。

⽅法简介:设N-1阶FIR数字滤波器的单位冲击响应为h(n),则传递函数H(z)为:窗函数法的设计步骤如下:1.根据给定的理想频率响应Hd(e^jw),利⽤傅⾥叶反变换,求出单位冲击响应hd(n):2.将hd(n)乘以窗函数w(n),得到所要求的FIR滤波器系数h(n):3.求卷积:使⽤说明⼦函数语句:void firwin(int n, int band, int wn, int fs, double h[], double kaiser=0.0, double fln=0.0, double fhn=0.0);形参说明n:滤波器的阶数band:滤波器的类型,取值1-4,分别为低通、带通、带阻、⾼通滤波器wn:窗函数的类型,取值1-7,分别对应矩形窗、图基窗、三⾓窗、汉宁窗、海明窗、布拉克曼窗和凯塞窗fs:采样频率h:存放滤波器的系数kaiser:beta值fln:带通下边界频率fhn:带通上边界频率源代码void firwin(int n, int band, int wn, int fs, double h[], double kaiser, double fln, double fhn){int i;int n2;int mid;double s;double pi;double wc1;double wc2;double beta;double delay;beta = kaiser;pi = 4.0 * atan(1.0); //pi=PI;if ((n % 2) == 0)/*如果阶数n是偶数*/{n2 = (n / 2) - 1;/**/mid = 1;//}else{n2 = n / 2;//n是奇数,则窗⼝长度为偶数mid = 0;}delay = n / 2.0;wc1 = 2 * pi * fln;wc2 = 2 * pi * fhn;switch (band){case 1:{for (i=0; i<=n2; ++i){s = i - delay;h[i] = (sin(wc1 * s / fs) / (pi * s)) * window(wn, n+1, i, beta);//低通,窗⼝长度=阶数+1,故为n+1h[n - i] = h[i];}if (mid == 1){h[n / 2] = wc1 / pi;//n为偶数时,修正中间值系数}break;}case 2:{for (i=0; i<=n2; i++){s = i - delay;h[i] = (sin(wc2 * s / fs) - sin(wc1 * s / fs)) / (pi * s);//带通h[i] = h[i] * window(wn, n+1, i, beta);h[n-i] = h[i];}if (mid == 1){h[n / 2] = (wc2 - wc1) / pi;}break;}case 3:{for (i=0; i<=n2; ++i){s = i - delay;h[i] = (sin(wc1 * s / fs) + sin(pi * s) - sin(wc2 * s / fs)) / (pi * s);//带阻 h[i] = h[i] * window(wn, n+1, i, beta);h[n - i] = h[i];}if (mid == 1){h[n / 2] = (wc1 + pi - wc2) / pi;}break;}case 4:{for (i=0; i<=n2; i++){s = i - delay;h[i] = (sin(pi * s) - sin(wc1 * s / fs)) / (pi * s);//⾼通h[i] = h[i] * window(wn, n+1, i, beta);h[n-i] = h[i];}if (mid == 1){h[n / 2] = 1.0 - wc1 / pi;}break;}}}//n:窗⼝长度 type:选择窗函数的类型 beta:⽣成凯塞窗的系数static double window(int type, int n, int i, double beta){int k;double pi;double w;pi = 4.0 * atan(1.0); //pi=PI;w = 1.0;switch (type){case 1:{w = 1.0; //矩形窗break;}case 2:{k = (n - 2) / 10;if (i <= k){w = 0.5 * (1.0 - cos(i * pi / (k + 1))); //图基窗}if (i > n-k-2){w = 0.5 * (1.0 - cos((n - i - 1) * pi / (k + 1)));}break;}case 3:{w = 1.0 - fabs(1.0 - 2 * i / (n - 1.0));//三⾓窗break;}case 4:{w = 0.5 * (1.0 - cos( 2 * i * pi / (n - 1)));//汉宁窗break;}case 5:{w = 0.54 - 0.46 * cos(2 * i * pi / (n - 1));//海明窗break;}case 6:{w = 0.42 - 0.5 * cos(2 * i * pi / (n - 1)) + 0.08 * cos(4 * i * pi / (n - 1));//布莱克曼窗 break;}case 7:{w = kaiser(i, n, beta);//凯塞窗break;}}return(w);}static double kaiser(int i, int n, double beta){double a;double w;double a2;double b1;double b2;double beta1;b1 = bessel0(beta);a = 2.0 * i / (double)(n - 1) - 1.0;a2 = a * a;beta1 = beta * sqrt(1.0 - a2);b2 = bessel0(beta1);w = b2 / b1;return(w);}static double bessel0(double x){int i;double d;double y;double d2;double sum;y = x / 2.0;d = 1.0;sum = 1.0;for (i=1; i<=25; i++){d = d * y / i;d2 = d * d;sum = sum + d2;if (d2 < sum*(1.0e-8)){break;}}return(sum);}得到系数之后,与输⼊信号求卷积即可!。

用窗函数法设计FIR滤波器

用窗函数法设计FIR滤波器

用窗函数法设计FIR滤波器窗函数法是一种常用的数字滤波器设计方法,特别是FIR(Finite Impulse Response)滤波器设计的一种方法。

FIR滤波器是一种非递归滤波器,可以实现信号的滤波,特定频率的增强或抑制,抗混叠等功能。

FIR滤波器设计过程可以分为两个步骤:确定滤波器的理论参数和设计窗函数。

第一步,确定滤波器的理论参数。

这些参数包括滤波器的采样频率,截止频率,通带和阻带的衰减要求等。

一般情况下,FIR滤波器的理论参数由滤波器的应用需求决定。

第二步,设计窗函数。

窗函数是用来限制FIR滤波器的单位冲激响应的长度的。

它决定了滤波器的频率响应特性和频率选择性。

窗函数可以通过Fourier级数展开来实现。

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

例如,以汉宁窗为例,下面是使用窗函数法设计FIR滤波器的具体步骤:1. 确定滤波器的理论参数。

如采样频率为fs,截止频率为fc,通带衰减要求为d1,阻带衰减要求为d22.将截止频率转化为数字频率。

由于数字信号是离散的,需要将模拟信号的截止频率转化为数字频率。

数字频率的单位为π。

3.根据截止频率和采样频率计算滤波器的长度N。

通常情况下,滤波器的长度N取一个奇数值,以确保能满足线性相位要求。

4.根据窗函数的性质确定窗函数的参数。

汉宁窗的参数为α=0.55.根据窗函数的长度N和参数α计算窗函数的系数。

例如,对于汉宁窗,窗函数的系数可通过下式计算得到:w(n) = 0.5 - 0.5 * cos(2πn/N) ,其中0≤ n ≤ N-16.根据窗函数的系数计算滤波器的单位冲激响应h(n)。

滤波器的单位冲激响应即为窗函数系数的离散时间傅里叶变换(DTFT),用于表示滤波器的频率响应特性。

7.根据滤波器的单位冲激响应h(n)可以计算出滤波器的频率响应H(f)。

频率响应可以通过滤波器的单位冲激响应h(n)的离散时间傅里叶变换(DTFT)计算得到。

8.根据设计要求来检验滤波器的频率响应特性是否满足要求。

窗函数法设计线性相位FIR数字滤波器

窗函数法设计线性相位FIR数字滤波器

fd(W)= -0.5MW +
3.按照下式计算IDTFT得hd[k]
1 π jfd ( W ) jkW hd [k ] A ( W ) e e dW -π d 2π
4.截短hd[k]得: h[k]= hd[k], 0k M
例1:设计一个幅度响应能逼近理想带通滤波器的线
性相位FIR滤波器。 解: (1) 确定线性相位FIR滤波器类型:可选用I型或II型 (2) 确定理想滤波器的幅度函数Ad(W):
0
2 N
3 N
W
4 N
3π W( ) N A -20lg W (0)
=13dB
二、吉伯斯现象
矩形窗设计FIR滤波器的频率响应H(ejW) 1 jW jW jW H (e ) * W (e ) H (e ) DTFT{hd (k )wN (k )} d N 2π 1 π jW -jWM / 2 j j( W- ) H (e ) A ( W )e H (e ) W (e )d d N d d π 2π jW -jWM / 2 WN (e ) W (W)e
1 π -j M / 2 -j(W- )M / 2 A ( )e W ( W )e d d 2π - π π -jWM / 2 1 e Ad ( )W (W - )d 2π - π 1 π Ad ( ) W (W - )d FIR滤波器的幅度函数: A(W) 2π - π
1-0.0002 0.0002
0
10
20
30
k
W Wc
11.4 π
N L
Ap 0.0017dB,As 74dB
三、常用窗函数
常用窗函数性质
窗的类型 矩形 Hann Hamming Blackman 主瓣宽度 4 / N 8 / N 8 / N 12 / N 近似过 渡带宽度 1.8 / N 6.2/N 7 / N 11.4/N

dsp实验报告 fir实验报告

dsp实验报告 fir实验报告

dsp实验报告 fir实验报告DSP实验报告:FIR实验报告引言:数字信号处理(Digital Signal Processing,DSP)是一门研究如何对数字信号进行处理和处理的学科。

其中,滤波器是数字信号处理中最常用的技术之一。

本实验报告旨在介绍FIR(Finite Impulse Response)滤波器的原理、设计和实现过程,并通过实验验证其性能。

一、FIR滤波器的原理FIR滤波器是一种线性时不变系统,其输出信号仅由输入信号的有限个历史样本决定。

其基本原理是将输入信号与滤波器的冲激响应进行卷积运算,以实现对输入信号的滤波处理。

二、FIR滤波器的设计方法1. 理想低通滤波器设计方法理想低通滤波器的频率响应在截止频率之前为1,在截止频率之后为0。

通过对理想低通滤波器的频率响应进行采样和离散化,可以得到FIR滤波器的系数序列。

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

其基本思想是将理想低通滤波器的频率响应与一个窗函数进行乘积,从而得到实际可实现的FIR滤波器的系数序列。

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

三、FIR滤波器的实现FIR滤波器可以通过直接形式和间接形式两种方式实现。

直接形式是按照滤波器的差分方程进行计算,而间接形式则是利用FFT(Fast Fourier Transform)算法将滤波器的系数序列转换为频域进行计算。

四、FIR滤波器的性能评估1. 幅频响应幅频响应是评估FIR滤波器性能的重要指标之一。

通过绘制滤波器的幅频响应曲线,可以直观地观察滤波器在不同频率下的衰减情况。

2. 相频响应相频响应是评估FIR滤波器性能的另一个重要指标。

相频响应描述了滤波器对输入信号的相位延迟情况,对于某些应用场景,相频响应的稳定性和线性性非常重要。

3. 稳态误差稳态误差是指FIR滤波器在达到稳态后输出信号与理想输出信号之间的差异。

通过对滤波器的输入信号进行模拟或实际测试,可以计算出滤波器的稳态误差,并评估其性能。

(完整word版)用窗函数法设计FIR数字滤波器

(完整word版)用窗函数法设计FIR数字滤波器

用窗函数法设计FIR 数字滤波器一、实验目的1.掌握用窗函数法设计FIR 数字滤波器的原理和方法。

2.熟悉线性相位FIR 数字滤波器特征。

3.了解各种窗函数对滤波特性的影响。

二、实验仪器微型计算机 matlab 软件 三、实验原理和方法如果所希望的滤波器的理想频率响应函数为 )(ωj d eH ,则其对应的单位脉冲响应为)(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 eH =∑-=-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 。

如果要观察细节,补零点数增多即可。

如果)(ωj eH 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。

如果要求线性相位特性,则)(n h 还必须满足)1()(n N h n h --±= (2-4)根据上式中的正负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。

FIR滤波器窗函数设计法详细步骤以及Matlab代码

FIR滤波器窗函数设计法详细步骤以及Matlab代码

FIR滤波器窗函数设计法详细步骤以及Matlab代码采⽤窗函数法设计理想低通,⾼通滤波器,参考北京交通⼤学陈后⾦主编的【数字信号处理】5.2节窗函数法设计线性相位FIR数字滤波器P164,和P188。

设计步骤如下:1)确定滤波器类型,不同的FIR类型可设计不同类型的滤波器,I型可设计LP(低通滤波器),HP(⾼通滤波器),BP(带通滤波器),BS(带阻滤波器)。

Fir I型Fir II型Fir III型Fir IV型LP,HP,BP,BS LP,BP BP HP,BP,BS2)确定设计的滤波器的参数Eg:若要设计⼀个低通滤波器,fp=20,fs=30;Ap=1,As=40,则3db截频Wc = 2*pi*(fs-fp)/Fs;Fs为采样频率。

3)确定窗函数窗的类型主瓣宽度近似过渡带宽度δp,δs Ap(dB)As(dB)矩形窗4pi/N 1.8pi/N0.090.8221Hann8pi/N 6.2pi/N0.00640.05644Hamming8pi/N7pi/N0.00220.01953Blackman12pi/N11.4pi/N0.00020.001774Kaiser可调窗,需要确定β值 50<A , β = 0.1102(A-8.7); 21<=A<=50, β=0.5842(A-21)^0.4 + 0.07886(A-21); A<21, β = 0;4) 确定滤波器的阶数M,⾸先确定滤波器的长度N。

对于除凯撒窗以外的窗函数,N值由以下公式确定:N>=(窗函数近似过渡带宽度)/(Wp-Ws)Fir I型Fir II型Fir III型Fir IV型脉冲响应h[k]为偶对称h[k]为偶对称h[k]为奇对称h[k]为奇对称窗函数长度:N=mod(N+1,2)+N N=mod(N,2)+N N=mod(N+1,2)+N N=mod(N,2)+N阶数M=N-1为偶数M=N-1为奇数M=N-1为偶数M=N-1为奇数若采⽤Kaiser窗,则M≈(A-7.95)÷ 2.285*|Wp-Ws|,A>21。

用MATLAB设计FIR数字滤波器

用MATLAB设计FIR数字滤波器

实验八 用MATLAB 设计FIR 数字滤波器(二)一、实验目旳:1、加深对窗函数法设计FIR 数字滤波器旳基本原理旳理解。

2、学习用MATLAB 语言旳窗函数法编写设计FIR 数字滤波器旳程序。

3、理解MATLAB 语言有关窗函数法设计FIR 数字滤波器旳常用函数用法。

二、实验原理:1、用窗函数法设计FIR 数字滤波器 FIR 数字滤波器旳系统函数为N-1-n n=0H(z)=h(n)z ∑这个公式也可以当作是离散LSI 系统旳系统函数M-m -1-2-mmm=0012m N -1-2-k-k12k k k=1bz b +b z +b z ++b z Y(z)b(z)H(z)====X(z)a(z)1+a z +a z ++a z1+a z ∑∑ 分母a 0为1,其他a k 全都为0时旳一种特例。

由于极点所有集中在零点,稳定和线性相位特性是FIR 滤波器旳突出长处,因此在实际中广泛使用。

FIR 滤波器旳设计任务是选择有限长度旳h(n),使传播函数H(e j ω)满足技术规定。

重要设计措施有窗函数法、频率采样法和切比雪夫等波纹逼近法等。

本实验重要简介窗函数法。

用窗函数法设计FIR 数字滤波器旳基本环节如下:(1)根据过渡带和阻带衰减指标选择窗函数旳类型,估算滤波器旳阶数N 。

(2)由数字滤波器旳抱负频率响应H(e j ω)求出其单位脉冲响应h d (n)。

可用自定义函数ideal_lp实现抱负数字低通滤波器单位脉冲响应旳求解。

程序清单如下:function hd=ideal_lp(wc,N) %点0到N-1之间旳抱负脉冲响应%wc=截止频率(弧度)%N=抱负滤波器旳长度tao=(N-1)/2;n=[0:(N-1)];m=n-tao+eps; %加一种小数以避免0作除数hd=sin(wc*m)./(pi*m);其他选频滤波器可以由低通频响特性合成。

如一种通带在ωc1~ωc2之间旳带通滤波器在给定N值旳条件下,可以用下列程序实现:Hd=ideal_lp(wc2,N)-ideal_lp(wc1,N)(3)计算数字滤波器旳单位冲激响应h(n)=w(n)h d(n)。

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. 计算滤波器的冲激响应利用所选窗函数和滤波器的阶数,计算滤波器的冲激响应。

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

河北科技大学课程设计报告学生姓名:学号:专业班级:课程名称:学年学期指导教师:20 年月课程设计成绩评定表目录1. 窗函数设计低通滤波器1.1设计目的 (1)1.2设计原理推导与计算 (1)1.3设计内容与要求 (2)1.4设计源程序与运行结果 (3)1.5思考题 (10)1.6心得体会 (14)参考文献 (15)1.窗函数设计低通滤波器1.1设计目的1. 熟悉设计线性相位数字滤波器的一般步骤。

2. 掌握用窗函数法设计FIR 数字滤波器的原理和方法。

3. 熟悉各种窗函数的作用以及各种窗函数对滤波器特性的影响。

4. 学会根据指标要求选择合适的窗函数。

1.2设计原理推导与计算如果所希望的滤波器的理想的频率响应函数为()ωj d e H ,则其对应的单位脉冲响应为()()ωπωωππd e e H n h j j d d ⎰-=21(4.1) 窗函数设计法的基本原理是设计设计低通FIR 数字滤波器时,一般以理想低通滤波特性为逼近函数()ωj e H ,即()⎪⎩⎪⎨⎧≤<≤=-πωωωωωαωc c j jd ,,ee H 0,其中21-=N α()()()[]()a n a n d e e d e eH n h c j j j j d d cc--===⎰⎰---πωωπωπωαωωωαωππωsin 2121用有限长单位脉冲响应序列()n h 逼近()n h d 。

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

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

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

各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表(一)。

表(一) 各种窗函数的基本参数这样选定窗函数类型和长度N 之后,求出单位脉冲响应()()()n n h n h d ω•=,并按照式(4.3)求出()ωj e H 。

()ωj e H 是否满足要求,如果()ωj e H 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。

1.3设计内容与要求(一)设计要求:1. 学会计算滤波器各项性能指标及如何来满足给定的指标要求。

2. 用MATLAB 语言编程实现给定指标要求的滤波器的设计。

3. 熟悉MATLAB 语言,独立编写程序。

4. 设计低通FIR 滤波器的指标:通带最大波动0.25,p R dB =,0.2p ωπ=阻带最小衰减 50,s A dB =,0.3s ωπ=(二)、设计内容:1.熟悉各种窗函数,在MATLAB 命令窗下浏览各种窗函数,绘出(或打印)所看到的窗函数图。

2.编写计算理想低通滤波器单位抽样响应hd(n)的m 函数文件ideal.m 。

3. 编写计算N 阶差分方程所描述系统频响函数()j H e ω的m 函数文件fr.m 。

4.根据指标要求选择窗函数的形状与长度N 。

(至少选择两种符合要求的窗函数及其对应的长度)。

5.编写.m 程序文件,通过调用ideal.m 和fr .m 文件,计算你设计的实际低通FIR 滤波器的单位抽样响应h(n)和频率响应()j H e ω,打印在频率区间[O ,π]上的幅频响应特性曲线()~j H e ωω,幅度用分贝表示。

6.验证所设计的滤波器是否满足指标要求。

1.4设计的源程序及运行结果:1、利用MATLAB 窗口观察各种窗函数: %巴特利特窗 w=bartlett(20); subplot(3,2,1); plot(w);stem(w,'y');%'y'表示黄色 %stem 表示以离散图输出 title('巴特利特床窗'); xlabel('n');%横坐标为n ylabel('w(n)');%纵坐标为w(n)%布莱克曼窗 w=blackman(20);subplot(3,2,2); plot(w);stem(w,'b');%'b'表示蓝色 title('布莱克曼窗'); xlabel('n'); ylabel('w(n)'); %矩形窗 w=boxcar(20); subplot(3,2,3); plot(w); stem(w,'r'); title('矩形窗');xlabel('n');ylabel('w(n)');%海明窗w=hamming(20);plot(w);stem(w,'m');%'m'表示紫色title('海明窗');xlabel('n');ylabel('w(n)');%汉宁窗w=hanning(20);subplot(3,2,5);plot(w);stem(w,'g');%'g'表示绿色title('汉宁窗');xlabel('n');ylabel('w(n)');%凯泽窗beta=5.6533;w=kaiser(20,beta);subplot(3,2,6);plot(w);stem(w,'k');%'k'表示黑色title('凯泽窗,beta=5.6533');xlabel('n');ylabel('w(n)');常用窗函数的图形2、理想低通滤波器单位抽样响应hd(n)的m函数文件ideal.m。

function hd=ideal(wc,M)%理想低通滤波器计算%hd为0到M-1之间的理想脉冲响应%wc为截止频率%M为理想滤波器的长度alpha=(M-1)/2;n=0:M-1;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);3、N阶差分方程所描述的系统频响函数的m函数文件fr.m。

function[db,mag,pha,gfd,w]=fr(b,a)%求解系统响应%db为相位振幅(db)%mag为绝对振幅%pha为相位响应%grd为群延时%w为频率样本点矢量%b为Ha(z)分析多项式系数(对FIR而言,b=h)%a为Hz(z)分母多项式系数(对FIR而言,a=1)[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);gfd=grpdelay(b,a,w);4、实际低通滤波器FIR:%用海明窗设计低通滤波器wp=0.2*pi;ws=0.3*pi;tr_width=ws-wp;disp(['海明窗设计低通滤波器参数:']);M=ceil(6.6*pi/tr_width)+1;disp(['滤波器的长度为',num2str(M)]);n=0:M-1;wc=(ws+wp)/2; %理想LPF的截止频率hd=ideal(wc,M);w_ham=(hamming(M))';h=hd.*w_ham;[db,mag,pha,gfd,w]=fr(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(1:1:wp/delta_w+1))); %求出实际通带波动disp(['实际带通波动为',num2str(Rp)]);As=-round(max(db(ws/delta_w+1:1:501))); %求出最小阻带衰减disp(['最小阻带衰减为-',num2str(As)],’db’);%绘图subplot(1,1,1)subplot(2,6,1)stem(n,hd);title('理想冲击响应');axis([0 M-1 -0.1 0.3]);ylabel('hd(n)');subplot(2,6,2)stem(n,w_ham);title('海明窗');axis([0 M-1 0 1.1]);ylabel('w(n)');subplot(2,6,7)stem(n,h);title('实际冲激响应');axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('h(n)');subplot(2,6,8)plot(w/pi,db);title('幅度响应(db)');axis([0 1 -100 10]);grid;xlabel('以pi为单位的频率');ylabel('分贝数');图(1)海明窗设计的FIR 海明窗设计低通滤波器参数:滤波器的长度为67实际带通波动为0.03936最小阻带衰减为-52db%用布莱克曼窗设计低通滤波器wp=0.2*pi;ws=0.3*pi;tr_width=ws-wp;disp(['布莱克曼窗设计低通滤波器的参数:']);M=ceil(11.0*pi/tr_width)+1;disp(['滤波器的长度为',num2str(M)]);n=0:M-1;%理想LPF的截止频率wc=(ws+wp)/2;hd=ideal(wc,M);w_bla=(blackman(M))';h=hd.*w_bla;[db,mag,pha,gfd,w]=fr(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(1:1:wp/delta_w+1))); %求出实际通带波动disp(['实际带通波动为',num2str(Rp)]);As=-round(max(db(ws/delta_w+1:1:501))); %求出最小阻带衰减disp(['最小阻带衰减-',num2str(As)],’db’);%绘图subplot(2,6,3)stem(n,hd);title('理想冲击响应');axis([0 M-1 -0.1 0.3]);ylabel('hd(n)');subplot(2,6,4)stem(n,w_bla);title('布莱克曼窗');axis([0 M-1 0 1.1]);ylabel('w(n)');subplot(2,6,9)stem(n,h);title('实际冲激响应');axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('h(n)');subplot(2,6,10)plot(w/pi,db);title('幅度响应(db)');axis([0 1 -100 10]);grid;xlabel('以pi为单位的频率');ylabel('分贝数');图(2)布莱克曼窗设计的FIR 布莱克曼窗设计低通滤波器的参数:滤波器的长度为111 实际带通波动为0.0033304 最小阻带衰减为-73db 5、技术指标比较:(1)海明窗设计低通滤波器参数: 滤波器的长度为67 实际带通波动为0.03936 最小阻带衰减为-52db(2)布莱克曼窗设计低通滤波器的参数: 滤波器的长度为111 实际带通波动为0.0033304 最小阻带衰减为-73db在相同的技术指标下用布莱克曼窗设计的低通滤波器实际带通波动实际带通波动最小,最小阻带衰减,滤波器的长度最大;海明窗和凯泽窗最小阻带衰减差不多,滤波器的长度页差不多,但是海明窗实际波动小于凯泽窗;所以用布莱克曼窗用设计的FIR 最逼近理想单位冲击响应。

相关文档
最新文档