窗函数法FIR低通数字滤波

作者&投稿:雀阁 (若有异议请与网页底部的电邮联系)
用窗函数法设计FIR数字滤波器~

function hd=ideal_lp(wc,M);
%Ideal Lowpass filter computation
%------------------------------------
%[hd]=ideal_lp(wc,M)
% hd=ideal impulse response between 0 to M-1
% wc=cutoff frequency in radians
% M=length of the ideal filter
%
2-1用窗函数法设计一个线性相位FIR低通滤波器,并满足性能指标:通带边界频率
Wp=0.5*pi,阻带边界频率Ws=0.66*pi,阻带衰减不小于40dB,通带波纹不大于3dB。选择汉宁窗。
代码:
wp =0.5*pi;
ws=0.66*pi;
wdelta =ws-wp;
N= ceil(8*pi/wdelta)
if rem(N,2)==0
N=N+1;
end

Nw =N;
wc =(wp+ws)/2;
n =0: N-1;
alpha =(N-1)/2;
m =n-alpha+0.00001;
hd =sin(wc*m)./(pi*m);
win =(hanning(Nw))';
h=hd.*win;
b=h;
freqz(b,1,512)

运行结果:

图5线性相位低通滤波器幅频-相频特性
2-4用海明窗设计一个FIR滤波器,其中Wp=0.2*pi,Ws=0.3*pi,通带衰减不大于0.25dB,阻带衰减不小于50dB。
代码:
wp=0.2*pi;
ws=0.3*pi;
tr_width=ws-wp;
M=ceil(6.6*pi/tr_width)+1;
n=[0:M-1];
wc=(ws+wp)/2;%ideal LPF cutoff frequency
hd = ideal_lp(wc,M);
w_ham=(hamming(M))';
h=hd.*w_ham;% .*
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:1:wp/delta_w+1:1:501))) %Min stopband attenuation
%Plots
subplot(2,2,1);
stem(n,hd);
title('Ideal Impulse Response')
axis([0 M-1 -0.1 0.3]);
xlabel('n');ylabel('hd(n)');
%%%%%%
subplot(2,2,2);
stem(n,w_ham);
title('Hamming Window')
axis([0 M-1 0 1.1]);
xlabel('n');ylabel('w(n)');
%%%%%%
subplot(2,2,3);
stem(n,h);
title('Actual Impulse Response')
axis([0 M-1 -0.1 0.3]);
xlabel('n');ylabel('h(n)');
%%%%%%
运行结果:


图6低通FIR滤波器

alpha=(M-1)/2;
n=[0:1:(M-1)];
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
点击file中的new中M-file,新建上面的函数,保存后就可以运行了

将模拟频率转化为数字频率,设取样时间为T(要满足抽样定理)
Ωp=2π*fp*T Ωs=2π*fs*T
过渡带宽度△Ω=Ωp-Ωs
阻带衰减已经超过74db,要选用Kaiser窗了,Kaiser的参数可变,要根据公式确定滤波器的参数
一般都选用Ⅰ型线性相位滤波器即滤波器阶数M为偶数,程序如下:
wp=;ws=;Ap=1;As=100;
Rp=1-10.^(-0.05*Ap);Rs=10.^(-0.05*As);
f=[fp fs];
a=[0 1];
dev=[Rp Rs];
[M,wc,beta,ftype]=kaiserord(f,a,dev);
M=mod(M,2)+M;
h=fir1(M,wc,ftype,kaiser(M+1,beta));
omega=linspace(0,pi,512);
mag=freqz(h,[1],omega);
plot(omega/pi,20*log10(abs(mag)));
grid;
omega1=linspace(0,wp,512);
h1=freqz(h,[1],omega1);
omega2=linspace(ws,pi,512);
h2=freqz(h,[1],omega2);
fprintf('Ap=%.4f
',-20*log10(min(abs(h1))));
fprintf('As=%.4f
',-20*log10(max(abs(h2))));

运行程序可以得到滤波器的通阻带衰减,画出频率响应,若同阻带衰减不满足要求还可以使用滤波器的优化,一般使用的等波纹FIR进行优化

1.FIR数字滤波器原理

假设理想低通滤波器的截止频率为ωc=2πfc,且具有线性相位,群延时为a,即频率响应:

航空重力勘探理论方法及应用

表示成幅度函数和相位函数形式:

航空重力勘探理论方法及应用

则幅度函数:

航空重力勘探理论方法及应用

在通带范围|ω| ≤ωc(截止频率)内Hd(e)的幅度为1,相位为-ωα;对应的时间域(或空间域)滤波函数为:

航空重力勘探理论方法及应用

有限脉冲响应FIR(Finite Impulse Response)数字滤波器要求用有限长的单位冲击响应h(n)来逼近无限长的理想滤波器的单位冲击响应hd(n),最常用和有效的方法就是用一个有限长(长度为N)的“窗函数”序列w(n)来截取hd(n)的主要成分(陈玉东,2005):

航空重力勘探理论方法及应用

实际上是用有限长的h(n)去逼近hd(n),通过这种方式得到的频率响应H(e)近似于理想频率响应Hd(e)(在频率域内采用均方差最小准则逼近)。按照线性相位滤波器的约束要求,h(n)必须是偶对称的,其对称中心应为它长度的一半:h(n)=h(N-1-n),而且

;所以同时要求窗函数w(n)也必须是关于中心偶对称:w(n)=w(N-1-n)。

2.几种常见窗函数

(1)矩形窗

长度为N的矩形窗函数为:

航空重力勘探理论方法及应用

(2)三角形窗(Bartlett)

长度为N的三角形窗函数为:

航空重力勘探理论方法及应用

(3)汉宁窗(Hanning)

长度为N的汉宁窗函数为:

航空重力勘探理论方法及应用

(4)海明窗(Hamming)

为使得旁瓣更小,可将汉宁窗改进成海明窗,长度为N的海明窗函数为:

航空重力勘探理论方法及应用

(5)布拉克曼窗(Blackman)

为进一步有效抑制旁瓣,可以再加上余弦的二次谐波分量,得到长度为N的布拉克曼窗函数为:

航空重力勘探理论方法及应用

(6)凯泽窗(Kaiser)

长度为N的凯泽窗函数为:

航空重力勘探理论方法及应用

其中I0(x)为第一类变形零阶贝塞尔函数,α=(N-1)/2。β是一个可自由选择的参数,它可同时调整窗函数谱主瓣宽度与旁瓣幅值;β越大,则窗函数w(n)变化越快、变得越窄,频谱旁瓣就越小,但主瓣宽度相应增加。一般选择4<β<9,相当于窗函数频谱旁瓣幅度与主瓣幅度的比值由3.1%变到0.047%。β=0时相当于矩形窗(陈玉东,2005)。

3.窗函数FIR滤波器

式(7-4-3)至式(7-4-8)窗函数都满足关于中心偶对称的线性相位滤波器的约束要求,结合式(7-4-1)至式(7-4-2)可以得到相应窗函数的FIR低通数字滤波器函数(郭志宏,罗锋,等,2007):

航空重力勘探理论方法及应用

航空重力勘探理论方法及应用

用该滤波器窗口对时间域(或空间域)长度为M的数据序列逐点进行窗口滑动卷积求和计算(实际处理时窗口中点作为输出计算点,则一边损失半个滤波窗口数据),就可获得FIR滤波后的数据(郭志宏,段树岭,等,2009):

航空重力勘探理论方法及应用

h(n)为滤波器系数,x(n)、y(n)分别为输入、输出数据序列。

4.窗函数FIR滤波试验

(1)GT-1A型航空重力数据

图7-4-1至图7-4-2分别为GT-1A型航空重力系统获得的一条原始未滤波、100 s和60 s滤波自由空间重力异常测线数据,其中飞机的飞行速度约60m/s,剖面图横轴为测线基准点号,基准点间距约30 m。图7-4-1中GT-1A型系统航空原始未滤波自由空间重力测线数据的高频干扰非常之严重,噪声幅度在-5 000×10-5m·s-2至5000×10-5m·s-2的大范围内变化,而幅度通常只有(10-3~10-4)m·s-2的由密度和构造变化等地质因素引起的重力异常信号(图7-4-2)则完全淹没在高频干扰中。图7-4-2中GT-1A型系统航空100 s、60 s滤波自由空间重力测线数据是采用GT-1A型航空重力系统自带软件模块由图7-4-1的航空原始未滤波自由空间重力测线数据获得的滤波数据,滤波后高频干扰已基本消除,油气和矿产地球物理勘查所需的重力异常则较好的显现出来。

图7-4-1 GT-1A型航空重力系统原始未滤波自由空间重力异常

(2)几种窗函数FIR滤波试验

根据式(7-4-1)至式(7-4-10),我们研制了窗函数法FIR数字滤波计算软件,用各种窗函数FIR滤波器对图7-4-1的GT-1A航空原始未滤波自由空间重力测线数据分别进行了截止波长为100 s、60 s长度(按v=60m/s的航速计算,截止波长A。分别为6km、3.6km,按fc=v/λc计算的截止频率分别为0.01 Hz、0.0167 Hz)的低通滤波试验计算,试验结果见图7-4-3至图7-4-8。为了图形对比方便,各剖面图中仍然保留了测线边部两端的半个滤波窗口数据,这些数据由于存在边部效应,因而是不准确的,实际应用时应该去掉。从试验结果图可以看到,矩形窗和三角窗FIR滤波后异常整体形状虽然也与图7-4-2类似,但其上叠加了高频扰动,尤其是矩形窗FIR滤波结果,这就是通常所说的“吉布斯”振荡效应(陈玉东,2005)。如果在图7-4-3至图7-4-4的基础上,采用空间域非线性曲率滤波方法(郭志宏,刘浩军,等,2003),用中国国土资源航空物探遥感中心的“空中探针”系统(刘浩军,薛典军,等,2003)中的滤波软件进一步处理,则可获得消除扰动后接近图7-4-2效果的异常数据。从汉宁窗、海明窗、布拉克曼窗以及凯泽窗FIR滤波试验结果看到,通过选择合适的窗口长度、截至波长等滤波参数,基本都获得了令人满意的效果。

图7-4-2 GT-1A型航空重力系统100s、60s滤波自由空间重力异常

图7-4-3 矩形窗FIR低通滤波截止波长100s、60s航空自由空间重力异常

表7-4-1为图7-4-3至图7-4-8所示的各种窗函数FIR低通滤波截止波长100 s、60 s长度航空自由空间重力异常与图7-4-2所示的GT-1A型航空重力系统100 s、60 s滤波自由空间重力异常(作为标准)的比较,通过两者之差值的统计结果来衡量吻合程度。从统计表中可以看到,除了矩形窗、三角窗外,其他几种窗函数FIR低通滤波结果的差异值都在±1×10-5m·s-2以内,均方差值则多数为0.3×10-5m·s-2左右,可见吻合程度还是比较好的。

图7-4-4 三角窗FIR低通滤波截止波长100s、60s航空自由空间重力异常

5.结论

1)通过选择合适的窗形、窗口长度、滤波参数,窗函数法FIR低通数字滤波器可以在航空重力数据的滤波处理中发挥应有的作用。

图7-4-5 汉宁窗FIR低通滤波截止波长100s、60s航空自由空间重力异常

图7-4-6 海明窗FIR低通滤波截止波长100s、60s航空自由空间重力异常

图7-4-7 布拉克曼窗FIR低通滤波截止波长100s、60s航空自由空间重力异常

图7-4-8 凯泽窗(β=6)FIR低通滤波截止波长100s、60s航空自由空间重力异常

2)为了获得与GT-1A型航空重力系统100 s、60 s低通滤波(60m/s航速)对应的自由空间重力测线数据,所选择汉宁、海明、布拉克曼、凯泽窗的长度通常为400点(2 Hz采样率),FIR低通滤波对应的截止频率分别为0.01 Hz、0.0167 Hz。

3)窗函数法不但可以设计FIR低通滤波器,还可设计FIR高通、带通、带阻滤波器等。通常一个高通滤波器相当于一个全通滤波器减去一个低通滤波器;一个带通滤波器相当于两个低通滤波器相减;而一个带阻滤波器相当于一个低通滤波器加上一个高通滤波器。

表7-4-1 窗函数FIR滤波试验结果与GT-1A系统滤波结果的差值统计

4)除了窗函数法FIR低通滤波器,其他诸如等波纹法FIR低通滤波器、无限脉冲响应IIR低通滤波、Kalman滤波等方法(周坚鑫,刘浩军,等,2001;陈玉东,2005)均可用于航空重力数据的低通数字滤波处理中。




窗函数法FIR数字带通滤波器的设计
将模拟频率转化为数字频率,设取样时间为T(要满足抽样定理) Ωp=2π*fp*T Ωs=2π*fs*T 过渡带宽度△Ω=Ωp-Ωs 阻带衰减已经超过74db,要选用Kaiser窗了,Kaiser的参数可变,要根据公式确定滤波器的参数一般都选用Ⅰ型线性相位滤波器即滤波器阶数M为偶数,程序如下: wp=;ws=;Ap=1;As=...

用matlab的FDATOOL设计fir低通滤波器后,如何导出或求出其阶跃响应_百度...
在FDATOOL菜单栏里面选择可以将系数导出到WORKSPACE,设系数为b,a 关于响应的问题,和conv有关,加入你的系数为50阶,那么conv相当于是循环相关,阶跃最少需要99个就可以。比如你用200个点,100个0,100个1,你会发现前后有很多都是一样的。如果你不用conv,可以用filter这个函数,也是可以的,而且更...

...语音信号的低通滤波器是使用iir filter还是fir filter呢?
其实都可以的,就是一个是无限长,一个是有限长,出来的参数是不一样的,fir能得到线性相位的滤波器,但iir有现成的滤波器,切比雪夫,巴特沃斯都是iir的,实习拿起来简单些,现在用iir的比较多。

请简述窗函数法设计FIR数字滤波器的方法与步骤。
h(n)=hd(n)w(n)h(n)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数H(ejω)为H(ejω)=用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。一般都选用Ⅰ型线性...

实现FIR滤波器这么简单,为什么各种数字信号处理教材堆砌那么多公式、引...
3. 设计与应用:滤波器构建的魔法FIR滤波器设计的关键在于设计一组系数,这些系数决定了滤波器的特性。MATLAB提供了一系列工具,如filterDesigner、filter函数以及lowpass、highpass等,设计方法如designfilt函数,它将滤波器设计简化为一个统一的过程。只需设置类型、阶数、截止频率和采样频率,即可实现低通滤波...

用汉宁窗函数法设计数字FIR高通滤波器
给你个参考例子 wc=(400\/1000)*pi; %求截止频率 w1=boxcar(81); %窗函数 w2=triang(81);w3=hamming(81);w4=hanning(81);w5=bartlett(81);w6=blackman(81);w7=chebwin(81,30);w8=kaiser(81,7.856);n=1:1:81;hd=sin(wc*(n-41)).\/(pi*(n-41)); %求h(d)hd(41)...

频率抽样设计法线性相位型FIR数字低通滤波器设计
频率ωs=0.6π,阻带最小衰减αs=50 dB)取得DLPF的X(K);② 根据线性相位型数字滤波器条件,构建线性相位型DLPF的X(K);③ 根据X(K)生成DLPF的h(n);④ 设计与之相对应的DLPF,给出窗函数及所设计滤波器的幅度特性,对比分析DLPF幅频特 性是否符合要求;M=60;alpha=(M-1)\/2;l=0...

急!!!用窗函数法设计FIR滤波器的主要特点是什么?
系统的单位冲激响应h (n)在有限个n值处不为零。系统函数H(z)在|z|>0处收敛,极点全部在z = 0处(因果系统)。结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。设FIR滤波器的单位冲激响应h (n)为一个N点序列,0 ≤ n ≤N —1...

FIR和IIR滤波器这两种滤波器有什么区别
1、响应不同:两种滤波器都是数字滤波器。根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。对于FIR滤波器,冲激响应在有限时间内衰减为零,其输出仅取决于当前和过去的输入信号值。对于IIR滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和...

详解FIR滤波器和IIR滤波器的区别
4. FIR滤波器,由于冲激响应是有限长的,因而可以用快速傅里叶变换算法,这样运算速度可以快得多,IIR滤波器则不能这样运算。5. 从设计上看,IIR滤波器可以利用模拟滤波器设计的现成闭合公式、数据和表格,因而计算工作量较小,对计算工具要求不高。FIR滤波器则一般没有现成的设计公式,窗函数法只给出...

萝岗区15248295128: 用窗函数法设计一个FIR低通滤波器 -
冻郝迪之: 结合衰减和过度带,可选择哈明窗.尽管在设计中,没有使用通带波动值Rp,但必须检查设计的实际波动,验证它是否确实在给定容限内.对应的MATLAB程序为:wp= 0.2* pi; ws = 0.3 *pi; tr_width = ws –wp; %确定62616964757a686964616...

萝岗区15248295128: 采用窗函数法设计一个数字FIR低通滤波器 -
冻郝迪之:axis ([0 ,实际的通带波动为Rp=0; plot (w/, w_ham ); ylabel ('hd(n)' ),可选择哈明窗, w]=freqz_m (h, -0,3), 0; axis ([0 ;1000; %确定过度带宽 M = ceil (6: 1, 0 ; w_ham = (hamming (M))'; xlabel ('n'), h ); stem(n结合衰减和过度带, 0,2: 501 ))...

萝岗区15248295128: 采用窗口函数法设计一个低通FIR数字滤波器 -
冻郝迪之: 数字处理器(DSP)有很强的数据处理能力,它在高速数字信号处理领域有广泛的应用,例如数字滤波、音频处理、图像处理等.相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精...

萝岗区15248295128: FIR滤波器的通带边界频率跟阻带边界频率怎么确定比如说我设计一个低通滤波器,滤除49Hz以上的频率,该怎么确定通带边界频率跟阻带边界频率呢, -
冻郝迪之:[答案] 对于FIR滤波器,不需要确定通带和阻带的边界频率,而是要确定过渡带的中心频率.从窗函数设计原理可以看出,理想滤波器的截止频率位于通带和阻带截止频率的中心处,确定中心频率后,通过增大FIR的阶数,就可以使通阻带截止频率向中心频...

萝岗区15248295128: 采用窗函数法设计FIR高通低通滤波器 -
冻郝迪之: 2-1用窗函数法设计一个线性相位FIR低通滤波器,并满足性能指标:通带边界频率 Wp=0.5*pi,阻带边界频率Ws=0.66*pi,阻带衰减不小于40dB,通带波纹不大于3dB.选择汉宁窗. 代码:wp =0.5*pi; ws=0.66*pi; wdelta =ws-wp; N= ceil(8*pi/...

萝岗区15248295128: 窗函数法设计FIR滤波器选窗标准是什么? -
冻郝迪之: 窗函数有截短和平滑的作用,窗函数选择的好,可以在相同阶次的情况下,提高滤波器的性能,或是在满足设计要求的情况下,减少滤波器阶数. 选窗标准: 1. 较低的旁瓣幅度,尤其是第一旁瓣; 2. 旁瓣幅度要下降得快,以利于增加阻带衰减; 3. 主瓣宽度要窄,这样滤波器过渡带较窄. 但这三点难以同时满足,当选用主瓣宽度较窄时,虽然得到的幅频特性较陡峭,但通带、阻带波动会明显增加;当选用较低的旁瓣幅度时,虽然得到的幅频特性较平缓匀滑,但过渡带变宽.因此,实际的选择往往是取折衷. 一般选这几个窗之一:矩形窗、三角窗、汉宁窗、海明窗、布拉克曼窗、凯塞窗,可以查查资料比较他们的旁瓣幅度,过渡带宽度和阻带最小衰减后再进行选择.

萝岗区15248295128: 用窗函数法设计FIR滤波器,已知选定了Hann窗,指标中的通带和阻带截...
冻郝迪之: 窗函数设计低通滤波器: fp=1000; fc=1200; as=100; ap=1; fs=22000; wp=2*fp/fs; wc=2*fc/fs; N=ceil((as-7.95)/(14.36*(wc-wp)/2))+1; beta=0.1102*(as-8.7); window=Kaiser(N+1,beta); b=fir1(N,wc,window); freqz(b,1,512,fs);

萝岗区15248295128: 用矩形窗窗函数法设计一个线性相位FIR低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率Wc=π/4rad -
冻郝迪之: 给你个完整的,不知道是不是你想要的! wp=0.6*pi;wr=0.4*pi; wc=(wr+wp)/2; n=33;m=(n-1)/2; nn=-m:m; n=nn+eps; hd=2*((-1).^n).*sin(wd*n)./(pi*n); %理想冲击响应 w=blackman(n)'; %海明窗 h=hd.*w; %实际冲击响应 h=20*log10(abs(fft(h,1024)...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网