窗函数法设计FIR数字滤波器
窗函数法设计FIR滤波器

FIR 数字滤波器的设计方法IIR 数字滤波器最大缺点:不易做成线性相位,而现代图像、语声、数据通信对线性相位的要求是普遍的。
正是此原因,使得具有线性相位的FIR 数字滤波器得到大力发展和广泛应用。
1. 线性相位FIR 数字滤波器的特点FIR DF 的系统函数无分母,为∑∑-=--=-==11)()(N n n N i ii z n h zb z H ,系统频率响应可写成:∑-=-=10)()(N n jwn jwe n h e H ,令)(jw e H =)()(w j e w H Φ,H(w)称为幅度函数,)(w Φ称为相位函数。
这与模和幅角的表示法有所不同,H(w)为可正可负的实数,这是为了表达上的方便。
如某系统频率响应)(jw e H =wj we34sin -,如果采用模和幅角的表示法,w 4sin 的变号相当于在相位上加上)1(ππj e =-因,从而造成相位曲线的不连贯和表达不方便,而用)()(w j e w H Φ这种方式则连贯而方便。
线性相位的FIR 滤波器是指其相位函数)(w Φ满足线性方程:)(w Φ=βα+-w (βα,是常数)根据群时延的定义,式中α表示系统群时延,β表示附加相移。
线性相位的FIR 系统都具有恒群时延特性,因为α为常数,但只有β=0的FIR 系统采具有恒相时延特性。
问题:并非所有的FIR 系统都是线性相位的,只有当它满足一定条件时才具有线性相位。
那么应满足什么样的条件?从例题入手。
例题:令h(n)为FIR 数字滤波器的单位抽样相应。
N n n ≥<或0时h(n)=0,并假设h(n)为实数。
(a ) 这个滤波器的频率响应可表示为)()()(w j jwew H e H Φ=(这是按幅度函数和相位函数来表示的,不是用模和相角的形式),)(w H 为实数。
(N 要分奇偶来讨论) (1) 当h(n)满足条件)1()(n N h n h --=时,求)(w H 和)(w Φ(π≤≤w 0) (2) 当h(n)满足条件)1()(n N h n h ---=时,求)(w H 和)(w Φ(π≤≤w 0)(b ) 用)(k H 表示h(n)的N 点DFT(1) 若h(n)满足)1()(n N h n h ---=,证明H(0)=0; (2) 若N 为偶数,证明当)1()(n N h n h --=时,H(N/2)=0。
(整理)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滤波器系统函数。
数字信号实验(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滤波器的具体步骤如下:1.确定滤波器的阶数N。
阶数N决定了滤波器的复杂度,一般情况下,阶数越低,滤波器的简单度越高,但频率响应的近似程度也会降低。
2.确定滤波器的截止频率。
根据应用需求,确定滤波器的截止频率,并选择合适的窗函数。
3.根据窗函数长度和截止频率计算理想滤波器的频率响应。
根据所选窗函数的特性,计算理想滤波器的频率响应。
4.根据理想滤波器的频率响应和窗函数的频率响应,得到所需的FIR滤波器的频率响应。
将理想滤波器的频率响应与窗函数的频率响应进行乘积,即可得到所需滤波器的频率响应。
5.对所得到的频率响应进行逆傅里叶变换,得到时域的滤波器系数。
6.实现滤波器。
利用所得到的滤波器系数,可以通过卷积运算实现滤波器。
三、实验结果与分析本实验以Matlab软件为平台,利用窗函数法设计了一个低通滤波器。
滤波器的阶数为16,截止频率为500Hz,采样频率为1000Hz,选择了汉宁窗。
根据上述步骤,计算得到了所需的滤波器的频率响应和时域的滤波器系数。
利用这些系数,通过卷积运算,实现了滤波器。
为了验证滤波器的性能,将滤波器应用于输入信号,观察输出信号的变化。
实验六 用窗函数法设计FIR数字滤波器

实验六 用窗函数法设计FIR 数字滤波器一,实验目的1.掌握窗函数法设计FIR 数字滤波器的原理及具体方法;2.深入理解吉布斯现象,理解不同窗函数的特点。
二,实验内容例6.1 利用fir1函数和矩形窗设计一个N=51,截止频率ωc =0.5π的低通滤波器,画出幅频特性。
MATLAB 程序: clearN=51;wc=0.5;h=fir1(50,wc,boxcar(N)) [H,W]=freqz(h,1) plot(W/pi,abs(H));title(‘矩形窗振幅特性/dB ’);xlabel(‘相对频率’);ylabel(‘H(w)’)00.10.20.30.40.50.60.70.80.910.20.40.60.811.21.4矩形窗振幅特性/dB相对频率H (w )例6.2 利用fir1函数和布莱克曼窗设计一个N=51,截止频率为1p ω=0.3π,2p ω=0.4π的带通滤波器。
MATLAB 程序:clearN=51;wc=[0.3,0.4];h=fir1(50,wc,'bandpass',blackman(N)) [H,W]=freqz(h,1) plot(W/pi,abs(H));title('布莱克曼窗带通振幅特性/dB'); xlabel('相对频率');ylabel('H(w)')0.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.91布莱克曼窗带通振幅特性/dB相对频率H (w )6.3.1窗函数法设计低通数字滤波器,{πωπωπωω4.0||0,||4.0,02/)(≤≤≤<-=N j e j d eH(1)N=26,分别利用矩形窗,汉宁窗和布莱克曼窗设计该滤波器,且滤波器具有线性相位。
绘出脉冲响应()n h 及滤波器的频率响应; (2)增加N ,观察过渡带和最大肩峰值的变化。
用窗函数法设计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 数字滤波器一、实验目的:1.掌握用窗函数法设计FIR 数字滤波器的原理和方法 2.熟悉线性相位FIR 数字滤波器特性。
3.了解各种窗函数对滤波特性的影响。
二、实验原理线性相位特点在实际应用中非常重要,如在数据通信、图像处理、语音信号处理等领域,往往要求系统具有线性相位特性,因而常采用容易设计成线性相位的有限冲激响应FIR 数字滤波器来实现。
1. 常用窗函数:1) 矩形窗10[]0k M w k ≤≤⎧=⎨⎩其他〔5.21〕 2) Hann 〔汉纳〕窗0.5-0.5cos(2/)0[]0k M k M w k π≤≤⎧=⎨⎩其他〔5.22〕3) Hamming 〔汉明〕窗 0.54-0.46cos(2/)0[]0k M k M w k π≤≤⎧=⎨⎩其他〔5.23〕4) Blackman 〔布莱克曼〕窗 0.42-0.5cos(2/)0.08cos(4/)0[]0k M k M k M w k ππ+≤≤⎧=⎨⎩其他〔5.24〕 5) Kaiser 〔凯泽〕窗0[]0w k k M =≤≤〔5.25〕 其中2201(/2)()1!n x I x n ∞=⎡⎤=+⎢⎥⎣⎦∑ 下面介绍用窗函数设计FIR 滤波器的步骤:a) 根据技术要求确定待求滤波器的单位取样响应[]d h k 。
b) 根据对过渡带和阻带衰减的要求,选择窗函数的形式,并估计窗函数长度/N A w ≈∆,A 决定于窗口的形式,w ∆表示滤波器的过渡带。
c) 利用选好的窗函数计算滤波器的单位取样响应[][][]d h k h k w k =。
d) 验算技术指标是否满足要求。
设计出来的滤波器的频率响应用10()[]N j j n n H e h k e -Ω-Ω==∑来计算。
2. Matlab 数字信号处理工具箱中常用的FIR 数字滤波器设计函数hanning 汉纳窗函数。
hamming 汉明窗函数。
blackman 布莱克曼窗函数。
用窗函数法设计FIR数字滤波器

%实验,用窗函数法设计FIR数字滤波器close all;b=1;i=0;while(b);N=inputdlg('输入窗函数长度N');%输入函数N=str2num(N{1});%将字符串转化为数值w=inputdlg('输入逼近理想低通滤波器截止频率Wc');w=str2num(w{1});alpha=(N-1)/2;n=[0:(N-1)];m=n-alpha+eps;% eps是双精度存储下最小的比1.0大的数与1.0的差值hd= sin(w*m)./(pi*m); %得到理想低通滤波器k=menu('请选择窗口类型:','boxcar矩形窗','hamming哈明窗','hanning汉宁窗','blackman 不莱克曼窗','triang三角形窗');if k==1B=boxcar(N);string=['Boxcar矩形窗','N=',num2str(N)];else if k==2B=hamming(N); %窗函数调用string=['Hamming哈明窗','N=',num2str(N)];else if k==3B=hanning(N);string=['Hanning汉宁窗','N=',num2str(N)];else if k==4B=blackman(N);string=['Blackman不莱克曼窗','N=',num2str(N)];else if k==5B =triang(N);string=['triang三角形窗','N=',num2str(N)];endendendendendh=hd.*(B)'; %得到FIR数字滤波器[H,m]=freqz(h,[1],1024,'whole'); %求其频率响应,函数给出了滤波器的双边频率特性,是N点的mag=abs(H); %得到幅值,将变量H的绝对值(模)赋值给变量magdb=20*log10((mag+eps)/max(mag));pha=angle(H); %得到相位i=i+1;figure(i)subplot(2,2,1);n=0:N-1;stem(n,h,'.');axis([0,N-1,-0.1,0.3]);hold on;% 启动图形保持功能,此后绘制的图形将添加到当前的图形窗口中,并自动调整坐标轴的范围;n=0:N-1;x=zeros(N);plot(n,x,'-'); %-实线xlabel('n');ylabel('h(n)');title('实际低通滤波器的h(n)');text((0.3*N),0.27,string);hold off;% 关闭图形保持功能,新绘制图形将覆盖原图形subplot(2,2,2); %第二个子图plot(m/pi,db);axis([0,1,-100,0]);% 控制坐标轴的特征x y轴上下限xlabel('w/pi');%x轴标注ylabel('dB');title('衰减特性(dB)');%图形顶部标注grid;%图形网格切换subplot(2,2,3);plot(m,pha);hold on;n=0:7;x=zeros(8);plot(n,x,'-');title('相频特性');xlabel('频率(rad)');ylabel('相位(rad)');axis([0,3.15,-4,4]);subplot(2,2,4);plot(m,mag);title('幅频特性');xlabel('频率W(rad)');ylabel('幅值');axis([0,3.15,0,1.5]);text(0.9,1.2,string); %给定标注文本在图中添加的位置b=menu('Do You want To Continue ?','Yes','No');if b==2b=0;endendtemp=menu('Close All Figure ?','Yes','No');if temp==1close allend。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理实验报告---实验4窗函数法设计FIR数字滤波器
一、实验目的
1.了解常用的几种窗函数,能正确选择适当的窗函数进行滤波器设计;
2.掌握窗函数法设计数字低通滤波器。
二、实验原理
1.常用的窗函数:
矩形窗函数为boxcar和rectwin,调用格式:
w= boxcar(N)w= rectwin(N)
其中N是窗函数的长度,返回值w是一个N阶的向量。
三角窗函数为triang,调用格式:
w= triang(N)
汉宁窗函数为hann,调用格式:
w= hann(N)
海明窗函数为hamming,调用格式:
w= hamming(N)
三、实验内容
题一:生成四种窗函数:矩形窗、三角窗、汉宁窗、海明窗,并观察其频率响应。
题二:根据下列技术指标,设计一个FIR数字低通滤波器:wp=0.2π,ws=0.4π,ap=0.25dB,as=50dB,选择一个适当的窗函数,确定单位冲激响应,绘出所设计的滤波器的幅度响应。
四、上机程序及运行结果
题一:n=30;
%矩形窗及其频响
window1=rectwin(n);
[h1,w1]=freqz(window1,1);
subplot(4,2,1);
stem(window1);title('矩形窗');subplot(4,2,2);
plot(w1/pi,20*log(abs(h1))/abs(h1(1)));title('矩形窗频响'); %三角窗及其频响
window2=triang(n);
[h2,w2]=freqz(window2,1);
subplot(4,2,3);stem(window2);title('三角窗');
subplot(4,2,4);
plot(w2/pi,20*log(abs(h2))/abs(h2(1)));title('三角窗频响'); %汉宁窗及其频响
window3=hann(n);
[h3,w3]=freqz(window3,1);
subplot(4,2,5);stem(window3);title('汉宁窗');
subplot(4,2,6);
plot(w3/pi,20*log(abs(h3))/abs(h3(1)));title('汉宁窗频响'); %海明窗频响
window4=hamming(n);
[h4,w4]=freqz(window4,1);
subplot(4,2,7);stem(window4);title('海明窗');
subplot(4,2,8);
plot(w4/pi,20*log(abs(h4))/abs(h4(1)));title('海明窗频响');
题二:
%理想低通滤波器单位冲激响应函数
function hd=ideal_lp1(wc,N);
alpha=(N-1)/2;
n=0:1:N-1;
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
%滤波器幅值、相位响应函数
function[db,mag,pha,w]=freqz_m2(b,a);
%db:相对幅值响应
%mag:绝对幅值响应
%pha:相位响应
%w:采样频率
%b:系统函数H(Z)的分子项(对FIR,b=h)
%a:系统函数H(Z)的分母项(对FIR,a=1)
[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);
%主程序
clear all;
wp=0.2*pi;
ws=0.4*pi;
tr_wdith=ws-wp;
N=ceil(6.6*pi/tr_wdith)+1;
n=0:1:N-1;
wc=(ws+wp)/2;%理想低通滤波器的截止频率
hd=ideal_lp1(wc,N);%理想低通滤波器的单位冲激响应
w_ham=(hamming(N))';%海明窗
h=hd.*w_ham;%截取得到实际的单位脉冲响应
[db,mag,pha,w]=freqz_m2(h,[1]);%计算实际滤波器的幅度响应delta_w=2*pi/1000;
ap=-(min(db(1:1:wp/delta_w+1)));%实际带通波纹
as=-round(max(db(ws/delta_w+1:1:501)));%实际阻带波纹subplot(221);stem(n,hd);title('理想单位脉冲响应hd(n)'); subplot(222);stem(n,w_ham);title('海明窗w(n)');
subplot(223);stem(n,h);title('实际单位脉冲响应hd(n)'); subplot(224);stem(w/pi,db);title('幅度响应(dB)');
axis([0,1,-100,10])
五、实验总结及心得。