中国地质大学(北京)本科课程报告
课程名称数字信号处理
实验名称用凯泽窗设计线性相位带通FIR滤波学生姓名衡星
院(系)地球物理与信息技术学院
专业测控技术与仪器
学号1010152213
指导教师陈玉东
2018年1月10日
中国地质大学(北京)
目录
1实验目的 (1)
2实验环境 (1)
3实验原理及设计流程图 (1)
4实验内容及程序源代码 (2)
5实验结果 (5)
6实验思考 (6)
7心得与体会 (7)
1实验目的
基于MATLAB 环境,熟悉窗函数法设计线性相位FIR 滤波器的原理和方法。
2实验环境
硬件环境:计算机,软件环境:MATLAB 平台。
3实验原理及设计流程图
(1)利用凯泽窗原理求解滤波器长度N 和形状参数β:
凯泽窗是对于给定的阻带衰减,使主瓣具有最大能量意义下的最佳窗函数,因此具有最陡的过渡带。窗函数的形式为:
10 )
(] )121(1 [)(02
0-≤≤--
-=
N n I N n I n w k ,ββ,其中β为形状参数,I 0[x ]是第一类修正零阶贝塞尔函数,其幂函数展开式为:
∑∞
=+=120])(1[1][k k x
x I .
若给定滤波器的过渡带宽度?ω(rad)和阻带衰减A s (dB),则滤波器的长度和形状参数β可由下列经验公式给出:
ω
Δ286.295
.7-≈
s A N ,
0.40.1102(8.7)50dB 0.5842(21)0.07886(21)2150dB 021dB s s s s s s A A A A A A β-≥??
=-+-≤≤??≤?
,
,,,
代入11110.15s p s p ωωωωπω?=-==-,As =60dB 得N =50,β=5.65.
(2)理想带通滤波器单位抽样响应h d (n )的计算:
若H d (e jw )为理想带通线性相位滤波器,
12
(e )0j c c j d e H ωαωωωω-?≤≤?
=???
,,其它,
那么,该理想带通滤波器可以根据两个幅值相等而截止频率不同的理想低通滤波
器形成,截止频率分别近似为:
11122211
();()22
c p s c p s ωωωωωω=+=+,
故
2
1
2
1
()()21sin[()]sin[()]
11()d d 22()()
c c c c j n j n c c
d n n h n
e e n n ωωωαωαω
ω
ωαωαωωπ
π
παπα++---
-
--=
-
=
--??,
其中α为线性相位所必须的移位,应满足α=(N-1)/2.
(3)设计流程图:
计算h(n)=h d(n)·w k(n)用stem(w k)显示w k(n)
输入带通指标:ωp1、
ωp2、ωs1、ωs2、A s、
编写函数dbpfilter_FIR.m用以计算
带通滤波器单位抽样响应h(n)
计算N(N为奇数)及β
编写函数kaiser_WF.m计算凯泽窗函数
w k(n)
计算滤波器的幅频及对数幅频特性并画图
打印结果、验证指标要求
调用ideal_LP计算h d(n)
4实验内容及程序源代码
(1)凯泽窗函数文件kaiser_WF.m:
function wk=kaiser_WF(N,beta)
%N---凯泽窗序列的长度
%beta---凯泽窗参数
%wk---凯泽窗序列
n=[0:1:N-1];
for i=1:1:N
temp=1-(1-2*n(i)/(N-1))^2;
if temp<-eps;
disp('负数开方');
end
bessel_w(i)=bessel_IM(beta*sqrt(temp));
end
wk=bessel_w/bessel_IM(beta);
(2)贝塞尔函数bessel_IM.m:
function s=bessel_IM(x)
eps=10^(-12);
k=1;s=1;D=1;
while D>(eps*s)
T=x/(2*k);
D=D*T^2;s=s+D;k=k+1;
end
所用的公式为:
∑∞
=+=120]2
(!1[1][k k x
k x I .
(3)理想低通滤波器单位抽样响应函数ideal_LP.m :
function [hd]=ideal_LP(wc,N)
%hd ---理想低通滤波器单位冲激响应(0<=n<=(n-1))%wc ---截至频率(单位弧度/秒)%N ---理想低通滤波器的长度alpha=(N-1)/2;n=[0:(N-1)];m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
(4)dbpfilter.m 主程序文件:
通带截止频率ωp 1=0.3π,ωp 2=0.5π;ωs 1=0.15π,ωs 2=0.65π,阻带衰减大于60dB.
%d_omega ---输入数字频率数组(向量);%d_omega(1)---阻带下边缘截止频率%d_omega(2)---通带下边缘截止频率%d_omega(3)---通带上边缘截止频率%d_omega(4)---阻带上边缘截止频率%N ---数字带通滤波器的长度%hd ---理想数字带通滤波器单位冲激响应%h ---实际数字带通滤波器单位冲激响应(所设计的)%wk ---凯泽窗序列%beta ---凯泽窗参数As=60;
d_omega=[0.15,0.3,0.5,0.65]*pi delta_w=d_omega(2)-d_omega(1);N=(As-7.95)/(2.286*delta_w)N=ceil(N);M=N;while M>0
M=M/2;
if M==ceil(N/2);
N=N+1;end end N=N
n=[0:1:N-1];
beta=0.1102*(As-8.7)
wk=kaiser_WF(N,beta)
wc_lower=(d_omega(1)+d_omega(2))/2;
wc_upper=(d_omega(3)+d_omega(4))/2;
hd=ideal_LP(wc_upper,N)-ideal_LP(wc_lower,N) h=hd.*wk;
[H,w]=freqz(h,1,1000,'whole');
H=(H(1:501))';
w=(w(1:501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
figure(1);clf;
subplot(221);
stem(n,hd);
title('理想带通滤波器单位冲激响应');
axis([-1,N,-0.4,0.6]);
ylabel('h_d(n)');
subplot(222);
stem(n,wk);
title('凯泽窗(Kaiser)');
axis([-1,N,0,1.3]);
ylabel('w_k(n)');
subplot(223);
stem(n,h);
axis([-1,N,-0.4,0.6]);
ylabel('h(n)');
title('实际带通滤波器单位冲激响应');
subplot(224);
plot(w/pi,db);
axis([0,1,-100,10]);
ylabel('分贝');
title('实际带通滤波器频率响应(dB)');
xlabel('单位为弧度(\pi)');
axis([01-8010]);
set(gca,'XTickMode','manual','XTick',d_omega/pi);
set(gca,'YTickMode','manual','YTick',[-500]);
grid;
fileID=fopen('FIR_KAISER_W_h.txt','w');
fprintf(fileID,'有限长单位冲激响应滤波器长度N=%d\n\n',N);
fprintf(fileID,'%12s\n','h');
fprintf(fileID,'%12.8f\n',h);
fclose(fileID);
5实验结果
运行结果如下:
d_omega=
0.47120.9425 1.5708 2.0420
N=
48.3174
N=
49
beta=
5.6533
wk=
1至13列
0.02040.03600.05600.08060.11020.1447 0.18420.22850.27740.33020.38640.44540.5061
14至26列
0.56770.62900.68910.74670.80070.8501 0.89380.93090.96060.98230.9956 1.00000.9956
27至39列
0.98230.96060.93090.89380.85010.8007 0.74670.68910.62900.56770.50610.44540.3864
40至49列
0.33020.27740.22850.18420.14470.1102 0.08060.05600.03600.0204
wc_lower=
0.7069
wc_upper=
1.8064
hd=
1至13列
0.0048-0.00180.0106-0.0080-0.0318-0.00880.0130 -0.00240.00720.03920.0139-0.0301-0.0133
14至26列
-0.0042-0.0450-0.02130.06120.0478-0.00510.0487 0.0398-0.1711-0.22950.10280.35000.1028
27至39列
-0.2295-0.17110.03980.0487-0.00510.04780.0612 -0.0213-0.0450-0.0042-0.0133-0.03010.0139
40至49列
0.03920.0072-0.00240.0130-0.0088-0.0318-0.0080 0.0106-0.00180.0048
图用凯泽窗设计出的线性相位带通滤波器
6实验思考
(1)窗函数有哪些指标要求?
窗函数有截短和平滑的作用,窗函数选择的好,可以在相同阶次的情况下,提高滤波器的性能,或是在满足设计要求的情况下,减少滤波器阶数。
选窗标准:
①较低的旁瓣幅度,尤其是第一旁瓣;
②旁瓣幅度要下降得快,以利于增加阻带衰减;
③主瓣宽度要窄,这样滤波器过渡带较窄。
但这三点难以同时满足,当选用主瓣宽度较窄时,虽然得到的幅频特性较陡峭,但通带、阻带波动会明显增加;当选用较低的旁瓣幅度时,虽然得到的幅频特性较平缓匀滑,但过渡带变宽。因此,实际的选择往往取折中。
一般情况下,从“矩形窗、三角窗、汉宁窗、海明窗、布拉克曼窗、凯泽窗”中选择,根据要求的旁瓣幅度、过渡带宽度和阻带最小衰减,对比后进行选择。
(2)用窗函数法设计FIR滤波器时,滤波器的过渡带宽度和阻带衰减各与哪些因素有关?
过渡带宽度与窗函数的形状和窗的宽度N有关;阻带衰减只有窗函数的形状决定,不受N的影响。
(3)凯泽窗函数的β参数一般选取范围是多少?β的大小对窗函数形状以及频谱有何影响?
β是一个可自由选择的参数,它可以同时调整主瓣宽度与旁瓣幅值,β越大,则w(n)窗宽变得越窄,频谱的旁瓣就越小,但主瓣宽度也相应增加。因而,改变β值就可以对主瓣宽度与旁瓣衰减进行选择,β=0时相当于矩形窗,β=5.44时相当于海明窗,β=8.5时相当于布莱克曼窗。一般选择4<β<9,这相当于旁瓣幅度与主瓣幅度的比值由3.1%变到0.047%.
7心得与体会
通过本次实验,我基本掌握了MATLAB软件的程序编写及运行功能,对FIR 数字滤波器设计的相关知识有了更深层次的回顾,同时培养了我实际应用的能力和分析问题、解决问题的能力。能在老师所给予的程序基础上进行修改、完善,这种提升离不开老师和同学们的鼎力帮助。运用MATLAB软件设计线性带通FIR 滤波器,不仅使我对《数字信号处理》有了更具体的了解,也将理论知识与实践仿真相结合,增强了个人的动手和独立思考能力,这也为我后续课程的学习以及从事实际工作打下良好的基础。
实验23 线性相位FIR数字滤波器 (完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用冰点等工具下载,否则下载之后的word格式会让很多部分格式错误,谢谢) XXXX学号姓名处XXXX 一、实验目的 1 加深对线性相位FIR数字滤波器特性的理解。 2 掌握线性相位滤波器符幅特性和零极点分布的研究方法。 3 了解用MATLAB研究线性相位滤波器特性时程序编写的思路和方法。 二、实验内容 1 线性相位FIR滤波器的特性 2 第一类线性相位滤波器(类型Ⅰ) 3 第二类线性相位滤波器(类型Ⅱ) 4 第三类线性相位滤波器(类型Ⅲ) 5 第四类线性相位滤波器(类型Ⅳ) 6 线性相位FIR数字滤波器零点分布特点 三、实验环境 MATLAB7.0 四、实验原理 1.线性相位FIR滤波器的特性 与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数为 ∑-=- = 1 N n n z h(n) H(z) 当滤波器的系数N满足一定的对称条件时,就可以获得线性相位。线性相位FIR滤波器共分为四种类型,分别为: (1)类型Ⅰ,系数对称,即h(n)=h(N-1-n),N为奇数。 (2)类型Ⅱ,系数对称,即h(n)=h(N-1-n),N为偶数。 (3)类型Ⅲ,系数反对称,即h(n)=-h(N-1-n),N为奇数。 (4)类型Ⅳ,系数反对称,即h(n)=-h(N-1-n),N为偶数。 对于上述四类线性相位FIR滤波器,参考文献[1]中提供了一段通用程序,对考虑正负号的幅度频率特性(简称符幅特性)进行求解,程序名为amplres.m,程序如下:function[A,w,type,tao]=amplres(h) N=length(h);tao=(N-1)/2; L=floor((N-1)/2); n=1:L+1; w=[0:500]*2*pi/500; if all(abs(h(n)-h(N-n+1))<1e-10)
数字滤波器线性相位: 任何一个信号都可以按照傅里叶级数分解成无数个单一正弦信号的叠加,设 X1(t)=sin(ω1*t); X2(t)=sin(ω2*t); X3(t)=sin(ω3*t); X(t)=X1(t)+ X2(t) +X3(t); 让X(t)通过一个线性延时系统,延时Δt,则通过该系统后,X(t)变为 X(t-Δt)= sin(ω1*t-ω1*Δt)+ sin(ω2*t-ω2*Δt)+ sin(ω3*t-ω3*Δt); φ(f1)=-ω1*Δt=-2πΔt *f1; φ(f2)=-ω2*Δt=-2πΔt *f2; φ(f3)=-ω3*Δt=-2πΔt *f3; 通常地 φ(f)=-ω3*Δt=-2πΔt *f;———————— (1) 由式(1)可看出,相位延时是关于频率的线性函数,同时斜率(-2πΔt)即为系统延时,该值为常数表明为线性相位。 群延时: 1定义: 描述相位变化随着频率变化的快慢程度的量称为群延迟。线性相位表示相位随着频率的变化快慢程度是一样的。 是相频特性的负导数τ(ω)=-dφ(ω)/dω。 2特性: 群延迟直观上就是信号波形包络的时延,单个频率是不存在群延时的; 从公式来看是相频特性曲线的斜率,反映的是一个器件对带内每个频点信号相位的影响,群延迟恒定时传输波形失真最小。 相位延迟: 相位与频率的比叫相位延迟。用来描述信号中,对于每一个频率分量,对应的相位特征。也就是τ(ω)=-φ(ω)/ω。 注意:相位延迟不同于群延迟。相位延迟侧重于每一个频率分量,群延迟则是描述相位的变化率。
三种常用模拟滤波器的特点: 1 巴特沃斯滤波器:优点:通带幅度最大平坦缺点:过渡带太长; 2 切比雪夫滤波器:优点:过渡带小缺点:通带有纹波; 3 贝塞尔滤波器:优点:通带的线性相位和优异的瞬态性能缺点:幅度分辨率较低。 图1模拟滤波器的幅频度相位波特图 图2模拟滤波器的群延时 群延时就是相频特性曲线的导数。
一、设计目的 1. 掌握窗函数法设计FIR 滤波器的原理和方法,观察用几种常用窗函数设计的 FIR 数字滤波器技术指标; 2. 掌握FIR 滤波器的线性相位特性; 3. 了解各种窗函数对滤波特性的影响。 二、设计原理 如果所希望的滤波器的理想频率响应函数为H d (e jω),则其对应的单位脉冲响应为ωπωππωd e e H n h n j j d ?-=)(21)(,用窗函数w N (n)将h d (n)截断,并进行加权处理,得到实际滤波器的单位脉冲响应h (n )=h d (n )w N (n ),其频率响应函数为n j N n j e n h e H ωω --=∑=1 0)()(。如果要求线性相位特性,则h (n )还必须满足)1()(n N h n h --±=。可根据具体情况选择h(n)的长度及对称性。 可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。 fir1是用窗函数法设计线性相位FIRDF 的工具箱函数,调用格式如下: hn=fir1(N, wc, ‘ftype’, window) fir1实现线性相位FIR 滤波器的标准窗函数法设计。 hn=fir1(N,wc)可得到6 dB 截止频率为wc 的N 阶(单位脉冲响应h(n)长度为N+1)FIR 低通滤波器,默认(缺省参数windows)选用hammiing 窗。其单位脉冲响应h(n)满足线性相位条件:h(n)=h(N-1-n) 其中wc 为对π归一化的数字频率,0≤wc ≤1。 当wc=[wc1, wc2]时,得到的是带通滤波器。 hn=fir1(N,wc,’ftype’)可设计高通和带阻滤波器。 当ftype=high 时,设计高通FIR 滤波器; 当ftype=stop 时,设计带阻FIR 滤波器。 应当注意,在设计高通和带阻滤波器时,阶数N 只能取偶数(h(n)长度N+1为奇数)。不过,当用户将N 设置为奇数时,fir1会自动对N 加1。 hn=fir1(N,wc,window)可以指定窗函数向量window 。如果缺省window 参数,则fir1默认为hamming 窗。可用的其他窗函数有Boxcar, Hanning, Bartlett,
一、设计目的 1.掌握窗函数法设计 FIR 滤波器的原理和方法,观察用几种常用窗函数设计的 FIR 数字滤波器技术指标; 2.掌握 FIR 滤波器的线性相位特性; 3.了解各种窗函数对滤波特性的影响。 二、设计原理 如果所希望的滤波器的理想频率响应函数为 H d(e j ω),则其对应的单位脉冲 1 响应为h d (n) 1 H(e j )e j n d ,用窗函数 w N(n)将 h d(n)截断,并进行加权处 2 理,得到实际滤波器的单位脉冲响应h(n)=h d(n)w N(n) ,其频率 响应函数为 N1 H(e j ) h(n)e j n。如果要求线性相位特性,则 h(n)还必须满足n0 h(n) h(N 1 n) 。可根据具体情况选择 h(n)的长度及对称性。 可以调用 MATLAB 工具箱函数 fir1 实现本实验所要求的线性相位 FIR-DF 的设 计,调用一维快速傅立叶变换函数 fft 来计算滤波器的频率响应函数。 fir1 是用窗函数法设计线性相位 FIRDF 的工具箱函数,调用格式如下: hn=fir1(N, wc, ‘ ftype ' , window) fir1 实现线性相位 FIR 滤波器的标准窗函数法设计。 hn=fir1(N,wc) 可得到 6 dB 截止频率为 wc 的 N 阶(单位脉冲响应 h(n)长度为 N+1)FIR 低通滤波器,默认(缺省参数 windows)选用 hammiing 窗。其单位脉冲响 应 h(n) 满足线性相位条件: h(n)=h(N-1-n) 其中 wc 为对π归一化的数字频率, 0≤wc≤1。 当 wc=[ wc1, wc2]时,得到的是带通滤波器。 hn=fir1(N,wc, ' fty可pe设'计)高通和带阻滤波器。 当 ftype=high 时,设计高通 FIR 滤波器; 当 ftype=stop 时,设计带阻 FIR 滤波器。 应当注意,在设计高通和带阻滤波器时,阶数 N 只能取偶数 (h(n) 长度 N+1 为奇数)。不过,当用户将 N设置为奇数时, fir1会自动对 N加1。 hn=fir1(N,wc,window) 可以指定窗函数向量 window 。如果缺省 window 参 数,则 fir1 默认为 hamming 窗。可用的其他窗函数有 Boxcar, Hanning, Bartlett,
课程设计报告 课程名称:专业综合课程设计 学生姓名:段博文 学号:201116020227 专业班级:通信工程11102班 指导教师:朱明旱 完成时间: 2014年6月15日 报告成绩:
线性相位FIR带通滤波器的设计 1.课程设计目的 1.能够运用本课程中学到的知识,设计基于窗口函数法的FIR数字滤波器。要求掌握数字信号处理的基本方法; 2. FIR滤波器的设计步骤和方法; 3.能够熟练MATLAB进行计算机辅助设计和方针验证设计内容的合理性。2.课题要求 1.了解数字滤波器的性能要求 2.了解窗函数设计滤波器的基本理论 3.设计原理 3.1 FIR滤波器 数字滤波器(digital filter)是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现。数字滤波器根据其单位冲激响应函数的时域特性分为两种:无限长冲激响应(IIR) 滤波器和有限长冲激响应(FIR)滤波器。 FIR数字滤波器又称有限长单位冲激响应滤波器,它的优点是可以做成具有严格的线性相位,同时又可以具有任意的幅度特性。此外,FIR滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的。再有,FIR滤波器由于单位冲激响应是有限长的,所以可以用快速傅里叶变换(FFT)算法来实现过滤信号,从而可大大提高运算效率。在滤波器设计中要对理想滤波器抽样响应进行截断. 截
断后不可避免的产生了频谱泄漏, 为了尽量减小频谱泄漏, 在设计滤波器时要采用不同的窗函数来满足不同用途的要求.各种窗函数的幅频响应都存在明显的主瓣和旁瓣. 主瓣宽度和旁瓣的幅值衰减特性决定了窗函数的应用. 用于滤波器的窗函数,一般要求窗函数主瓣宽度窄,以获得较好过渡带:旁瓣相对值尽可能小, 以增加通带段的平稳度和增大阻带的衰减.窗函数应满足在0 目录 任务书 (2) 摘要: (3) 关键字: (3) FIR数字滤波器设计的原理 (3) 设计过程: (5) 实验结果 (5) 1.程序: (5) 2.截图 (9) 结束语 论文从基于频率抽样设计法线性相位型FIR 数字低通滤波器的设计原理和设计过程方面来阐述我们的设计思路,并用matlab 软件运行后得到了论文中的实验结果,我们还对课程设计中遇到的问题及解决方法进行了阐述,最后描述了自己的心得体会。 关键字: 频率抽样法 线性相位型FIR 数字低通滤波器 matlab 有限长冲激响应 一、FIR 数字滤波器设计的原理 频率抽样设计法 FIR 低通滤波器的设计一般方法有两种,即频率抽样法和窗函数法,频率抽样法设计不同于窗函数法,窗函数是从时域出发,把理想的()d h n 用一定形状得窗函数截取成有限长的()h n ,以此()h n 来近似理想的()d h n ,这样得到的频率响应()jw H e 逼近于所要求的理想的频率响应()jw d H e 。 频率抽样法则是从频域出发,把给定的理想频率响应()jw d H e 加以等间隔抽样,即2()| ()jw d d w k N H e H k π ==然后以此()d H k 作为实际FIR 数字滤波器的频率特性 的抽样值()H k ,即令2()()()| 0,1,,1jw d d w k N H k H k H e k N π====-,知道() H k 后,由DFT 定义,可以用频域的这N 个抽样值()H k 来唯一确定有限长序列()h n ,而由()X z 的内插公式知道,利用这N 个频域抽样值()H k 同样可求得FIR 滤波器的系统函数()H z 及频率响应()jw H e 。这个()H z 或()jw H e 将逼近()d H z 或 ()jw d H e ,()H z 和()jw H e 的内插公式为 1 1 01() ()1N N k k N z H k H z N W z ----=-= -∑ 10 2()()()N jw k H e H k w k N π -==Φ- ∑ (2-2) 中国地质大学(北京) 实验报告 课程名称:数字信号处理 实验名称:用凯塞窗设计线性相位带通FIR滤波器 姓名:张淑坤 学号: 1004133105 班级:10041331 指导教师:陈玉东 评分: 实验时间: 2015-12-31 用凯塞窗设计线性相位带通FIR 滤波器 实验目的: 基于MATLAB 环境,熟悉利用窗函数法设计线性相位FIR 滤波器的原理和方法。 实验环境: 硬件环境:计算机,软件环境:MATLAB 平台。 实验环境原理: 凯塞窗是对于给定的阻带衰减,使主瓣具有最大能量意义下的最佳窗函数,因此具有最陡的过渡带。 窗函数的形式为 10 ) (] )121(1 [)(02 0-≤≤-- -= N n I N n I n w k ,ββ 其中β为形状参数,I 0[x ]是第一类修正零阶贝塞尔函数,其幂函数展开式为 ∑∞ =+=120])2 (!1[1][k k x k x I 给定滤波器的过渡带宽度?ω (rad)和阻带衰减A s (dB),则滤波器的长度和形状参数β可由下列经验公式给出: ω Δ286.295 .7-≈ s A N ?? ? ??≤≤≤-+-≥-=dB 210dB 5021)21(07886.0)21(5842.0dB 50)7.8(1102.04.0s s s s s s A A A A A A β,,, 设计流程图 实验内容要求: 1. 编写计算理想带通滤波器单位抽样响应h d(n)的M函数文件dbpfilter_FIR.m,各变量定义如下: dbpfilter_FIR(d_omega, N, beta) % d_omega ---输入数字频率数组(向量); % d_omega(1)---阻带下边缘截止频率 % d_omega(2)---通带下边缘截止频率 % d_omega(3)---通带上边缘截止频率 % d_omega(4)---阻带上边缘截止频率 % N ---数字带通滤波器的长度 % hd ---理想数字带通滤波器单位冲激响应 % h ---实际数字带通滤波器单位冲激响应(所设计的) %wk ---凯泽窗序列 % beta ---凯泽窗参数 2. 编写计算凯泽窗函数w k(n)的M函数文件kaiser_WF.m,各变量定义如下: function wk= kaiser_WF(N, beta) % N ---凯泽窗序列的长度 % beta---凯泽窗参数 % wk ---凯泽窗序列 计算贝塞尔函数的参考程序bessel_IM.m如下: function s=bessel_IM (x) 西南科技大学 课程设计报告 课程名称:数字通信课程设计 设计名称:线性相位FIR数字滤波器的设计 姓名:龙三峰 学号: 20084880 班级:通信0802 指导教师:张小京 起止日期:20011.6.28-2009.7.4 西南科技大学信息工程学院制 课程设计任务书 学生班级:通信0802 学生姓名:龙三峰学号: 20084880 设计名称:线性相位FIR数字滤波器的设计 起止日期:2011.6.28-2011.7.4指导教师:张小京 课程设计学生日志 课程设计考勤表 课程设计评语表 一、设计目的 1. 掌握窗函数法设计FIR 滤波器的原理和方法,观察用几种常用窗函数设计的FIR 数字滤波器技术指标; 2. 掌握FIR 滤波器的线性相位特性; 3. 了解各种窗函数对滤波特性的影响。 二、设计原理 如果所希望的滤波器的理想频率响应函数为H d (e jω),则其对应的单位脉冲响应为ωπ ωπ π ωd e e H n h n j j d ?- = )(21)(, 用窗函数w N (n)将h d (n)截断,并进行加权处理,得到实际滤波器的单位脉冲响应h (n )=h d (n )w N (n ),其频率响应函数为 n j N n j e n h e H ωω --=∑=1 0)()(。如果要求线性相位特性,则h (n )还必须满足 )1()(n N h n h --±=。可根据具体情况选择h(n)的长度及对称性。 可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。 fir1是用窗函数法设计线性相位FIRDF 的工具箱函数,调用格式如下: hn=fir1(N, wc, ‘ftype’, window) fir1实现线性相位FIR 滤波器的标准窗函数法设计。 hn=fir1(N,wc)可得到6 dB 截止频率为wc 的N 阶(单位脉冲响应h(n)长度为N+1)FIR 低通滤波器,默认(缺省参数windows)选用hammiing 窗。其单位脉冲响应h(n)满足线性相位条件:h(n)=h(N-1-n) 其中wc 为对π归一化的数字频率,0≤wc ≤1。 当wc=[wc1, wc2]时,得到的是带通滤波器。 hn=fir1(N,wc,’ftype’)可设计高通和带阻滤波器。 当ftype=high 时,设计高通FIR 滤波器; 当ftype=stop 时,设计带阻FIR 滤波器。 应当注意,在设计高通和带阻滤波器时,阶数N 只能取偶数(h(n)长度N+1为奇数)。不过,当用户将N 设置为奇数时,fir1会自动对N 加1。 hn=fir1(N,wc,window)可以指定窗函数向量window 。如果缺省window 参数,则fir1默认为hamming 窗。可用的其他窗函数有Boxcar, Hanning, Bartlett, 西安邮电大学 数字信号处理课内上机报告 专业班级: 学生姓名: 学号(班内序号): 2013年 6月 18 日 —————————————————————————— 装 订 线———————————————————————————————— 报告份数: 线性相位FIR数字滤波器 一、实验目的 1.加深对线性相位FIR数字滤波器特性的理解。 2.掌握线性相位滤波器符幅特性和零极点分布的研究方法。 3.了解用MA TLAB研究线性相位滤波器特性时程序编写的思路和方法。 二、实验内容 1.线性相位FIR滤波器的特性 2.第四类线性相位滤波器(类型Ⅳ) 三、实验环境 MATLAB7.0 四、实验原理 1.线性相位FIR滤波器的特性 与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数为 ∑-=- = 1 N n n z h(n) H(z) 当滤波器的系数N满足一定的对称条件时,就可以获得线性相位。线性相位FIR滤波器共分为四种类型,分别为: (1)类型Ⅰ,系数对称,即h(n)=h(N-1-n),N为奇数。 (2)类型Ⅱ,系数对称,即h(n)=h(N-1-n),N为偶数。 (3)类型Ⅲ,系数反对称,即h(n)=-h(N-1-n),N为奇数。 (4)类型Ⅳ,系数反对称,即h(n)=-h(N-1-n),N为偶数。 对于上述四类线性相位FIR滤波器,参考书籍中中提供了一段通用程序,对考虑正负号的幅度频率特性(简称符幅特性)进行求解,程序名为amplres.m,程序如下:function[A,w,type,tao]=amplres(h) N=length(h);tao=(N-1)/2; L=floor((N-1)/2); n=1:L+1; w=[0:500]*2*pi/500; if all(abs(h(n)-h(N-n+1))<1e-10) A=2*h(n)*cos(((N+1)/2-n)'*w)-mod(N,2)*h(L+1); type=2-mod(N,2); elseif all(abs(h(n)+h(N-n+1))<1e-10)&(h(L+1)*mod(N,2)==0) A=2*h(n)*sin(((N+1)/2-n)'*w); type=4-mod(N,2); elseerror('错误:这不是线性相位滤波器!') 设计题目及要求 设计一个线性相位FIR 低通滤波器,技术指标如下:通带截止频率fp=1500Hz ,阻带起始频率fst=2250H ,通带允许的最大衰减为Rp=0.25dB ,阻带应达到的最小衰减为As=50dB 。 滤波器的采样频率为fs=15000Hz 。 设计原理 (包括滤波器工作原理、涉及到的matlab 函数的说明) 滤波器,顾名思义,其作是对输入信号起到滤波的作用 数字滤波器滤波器结构x[k]为输入,h[k]为单位脉冲序列 MATLAB 信号处理中提供的窗函数 (1)矩形窗 W=boxcar(N) (2)汉宁窗 W=hanning(N) (3)Bartlerr 窗 W=Bartlett(N) (4)Backman 窗 W=Backman (N ) (5)三角窗 W=triang (N ) (6)Kaiser 窗 ∑∑==-+-=M k k N k k k n x b k n y a n y 0 1 ] [][][∑∞ -∞ =-= k k n x k h n y ] [][][ W=kaiser(n,beta)其中,beta是kaiser窗参数,影响窗旁瓣幅值的衰减率 Kaiser窗用于滤波器设计时,选择性大,使用方便 Nf=512; Nwin=20;%窗函数数据长度 figure(1) for ii=1:4 switch ii case 1 w=boxcar(Nwin); stext='矩形窗'; case 2 w=hanning(Nwin); stext='汉宁窗'; case 3 w=hamming(Nwin); stext='哈明窗'; case 4 w=bartlett(Nwin); stext='Bartlett窗'; end [y,f]=freqz(w,1,Nf);%求解窗函数特性,窗函数相当于一个数字滤 7.25* MATLAB 分别设计第一类和第二类线性相位FIRDF 用窗函数法设计一个线性相位低通FIRDF ,要求通带截止频率为0.3π, 阻带截止频率为0.5π,阻带最小衰减为40dB 。选择合适的窗函数及其长度, 求出并显示所设计的单位脉冲响应h(n)的数据,并画出损耗函数曲线和相频 特性曲线,请检验设计结果。试不用fir1函数,直接按照窗函数设计法编程设计。做完后把题目修改为设计高通滤波器,为第二类线性相位,画出h(n) 1.第一类线性相位 选择j d (e )ωH 为理想低通滤波器()θωωτ=-,即 j c j d c e ,(e )0,ωτωωωωω-?≤?=?<≤π ??H c c j j j j c d d sin[()]11()( e )e d e e d 22() ωωωωτωωωτωωτπ--π--===πππ-??n n n h n H n 上式用欧拉公式可以求得,有一点注意:当N 为奇数(求得τ为整数)且n τ=时分母为0,不能用上式,此时c c c c j j 0c d 11e e d e d 22n n h ωωωτωτωωωωωπ -=--= ==ππ??。 MATLAB Code : clear all ; close all ; clc; %--------------------- 第一类线性相位低通 --------------------------- wp=0.3*pi;ws=0.5*pi; DB=ws-wp; N=ceil(6.2*pi/DB); % 阻带最小衰减为40dB ,所以选择汉宁窗 % 第二类线性相位低通h(n)长度N可为奇数或偶数tau=(N-1)/2; wc=(wp+ws)/2; n=0:N-1; hd=sin(wc*(n-tau))./(pi*(n-tau)); if tau==ceil(tau) % 判断τ如果是整数 hd(tau+1)=wc/pi; % n=τ时分母为0,要替换这一项值 end w=0.5*(1-cos(2*pi*n/(N-1))); h=hd.*w; %------画图------ M=1024; Hk=fft(h,M); subplot(2,2,[1 2]); stem(n,h,'.');grid on; axis([0,30,-0.6,0.6]); xlabel('n');ylabel('h(n)'); subplot(2,2,3); k=1:M/2; w=2*pi*(0:M/2-1)/M; plot(w/pi,20*log10(abs(Hk(k))));grid on; xlabel('\omega/\pi');ylabel('20lg|H_g(\omega)|'); subplot(2,2,4); plot(w/pi,unwrap(angle(Hk(k))));grid on; xlabel('\omega/\pi');ylabel('?à??')基于频率抽样设计法线性相位型FIR数字低通滤波器设计报告分解
实验三用凯塞窗设计线性相位带通FIR滤波器-副本
线性相位FIR数字滤波器的设计说明
线性相位FIR数字滤波器
线性相位FIR低通滤波器
第二类线性相位滤波器问题