实验三 用双线性变换法设计IIR数字滤波器
一、实验目的
1、熟悉用双线性变换法设计IIR数字滤波器的原理与方法。 2、掌握数字滤波器的计算机仿真方法。
3、通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。
二、实验内容
1、 用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。设计指标参数为:在通带内频率低于
0.2?时,最大衰减小于1dB;在阻带内[0.3?,?]频率区间上,最小衰减大于15dB。 2、 以T=1s为采样间隔,打印出数字滤波器在频率区间[0,?2]上的幅频响应特性曲线。 3、 用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并分别打
印出滤波前后的心电图信号波形图,观察总结滤波作用与效果。
三、实验步骤
1、 复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR数字滤波器的内容,用双线性变换法设计数字滤波器系统函数H(z)。 教材中满足本实验要求的数字滤波器函数
H?z??3?1?1.2686z?1?0.7051z?2??1?1.010z?1?0.3583z?2??1?1.9044z?1?0.2155z?2?0.007378?1?z?1?5
??Hk?z?k?1A1?2z?1?z?2式中:Hk?z??,k=1,2,3 ?1?21?Bkz?CkzA=0.09036,
B1=1.2686, C1=-0.7051 B2=1.0106, C2=-0.3583 B3=0.9044, C3=-0.2155
根据设计指标,调用MATLAB信号处理工具函数buttord和butter,也可得到H?z?。 由滤波器的函数可见,滤波器H?z?由三个二阶滤波器H1?z?、H2?z?、H3?z?级联组成。 2、 编写滤波器仿真程序,计算H?z?对心电图信号采样序列xa(n) 的响应序列y(n)。
?? 6
yk?n?为第k阶滤波器Hk?z?的输出序列,yk?1?n?为输入序列,根据滤波器H?z?的组成可得
差分方程
yk?n??Ayk?1?n??2Ayk?1?n?1??Ayk?1?n?2??Bkyk?n?1??Ckyk?n?2? 当k?1时,yk?1?n??x?n?。所以H?z?对x?n?的总响序列y?n?可以用顺序迭代算法得到。即依次对k=1,
2,3求解差分方程,最后得到y3?n??y?n?。仿真程序就是实现上述求解差分方程和顺序迭代算法的通用程序,也可直接调用MATLAB filter函数实现仿真。 3、 在通用计算机上运行仿真滤波程序,完成实验内容(2)和(3)。
四、实验报告要求
1、 简述实验目的及原理。
j?2、 由所打印的H(e)特性曲线及设计过程简述双线性变换法的特点。
五、心电图信号采样序列x?n?:
人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波处理后,才能作为判断心脏功能的有用信息。下面给出一实际心电图信号采样序列样本x(n),其中存在高频干扰。在实验中,以x(n)作为输入序列,滤除其中的干扰成分。
x(n) ={-4, -2, 0, -4, -6, -4, -2, -4, -6, -6,
-4, -4, -6, -6, -2, 6, 12, 8, 0, -16, -38, -60, -84, -90, -66, -32, -4, -2, -4, 8, 12, 12, 10, 6, 6, 6, 4, 0, 0, 0, 0, 0, -2, -4, 0, 0, 0, -2, -2, 0, 0, -2, -2, -2, -2, 0}
7
实验四 用窗函数法设计FIR数字滤波器
一、实验目的:
1、掌握用窗函数法设计FIR数字滤波器的原理和方法。 2、熟悉线性相位FIR数字滤波器特性。 3、了解各种窗函数对滤波特性的影响。
二、实验内容及步骤:
1、复习用窗函数法设计FIR数字滤波器一节内容。
一般,设计线性相位FIR数字滤波器采用窗函数法或频率抽样法,本实验采用窗函数法,采用矩形窗。下面简要介绍窗函数法设计FIR理论知识,更详细的相关知识请参考教材。
如果所希望的滤波器的理想频率响应函数为Hd(ejw),如理想的低通,由信号系统的知识知道,在时域系统的冲激响应hd(n)将是无限长的,如图1、图2所示。 Hd(w) -wc wc
图2
图1
若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个FIR滤波器频率响应
H(e)??h(n)e?jwn来逼近Hd(ejw),即用一个窗函数w(n)来截断hd(n),如式3所示:
jwn?0N?1 h(n)?hd(n)w(n)(式3)。
最简单的截断方法是矩形窗,实际操作中,直接取hd(n)的主要数据即可。
h(n)作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为:
H(e)??h(n)e?jwn(式4)
jwn?0N?1令z?e,则
,式中,N为所选窗函数w(n)的长度。 H(z)??h(n)z?n(式5)
n?0N?1jw 8
如果要求线性相位特性,h(n)还必须满足:
h(n)??h(N?1?n)
(式6),根据式6中的正、负和长度N的奇偶性又将线性相位FIR
滤波器分成四类。要根据所设计的滤波器特性正确选择其中一类。例如:要设计线性相位低通特性,可选择h(n)?h(N?1?n)类。
有关窗函数的种类及特性,请参照教材。
2、编写程序
1)编写能产生矩形窗、升余弦窗、改进升余弦窗和二阶升余弦窗的窗函数子程序,也可调用MATLAB相关函数。
2)编写低通FIR数字滤波器主程序。 3)上机实验内容。
A、用升余弦窗设计一线性相位低通FIR数字滤波器,截止频率?c??4rad。窗口长度N=15,33。
要求在两种窗口长度情况下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB带宽和20dB带宽。总结窗口长度N对滤波特性的影响。 B、N=33,?c=
?,用四种窗函数设计线性相位低通滤波器。绘制相应的幅频特性曲线,观4察3dB和20dB带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。
三、思考题:
1、 如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通
滤波器?写出设计步骤。
2、 如果要求用窗函数法设计带通滤波器,且给定上、下边带截止频率为?1和?2,试求理想带通
的单位脉冲响应hd(n)。
四、实验报告要求:
1、 简述实验目的及原理。
2、 按照实验步骤及要求,比较各种情况下的滤波性能,说明窗口长度N和窗函数类型对滤波特性
的影响。
3、 总结用窗函数法设计FIR滤波器的主要特点。 4、 简要回答思考题。
9
参考:用于数字信号处理的MATLAB操作或者函数
1、向量的生成:利用冒号(:)生成向量。 1)X=j:k (j 生成X=[j,j+1,j+2,…,k-1,k] 2)X=j:I:k 如果I>0 且j X=[j,j+I,j+2I,…,k-I,k] 如果I<0 且j>k,则生成向量 X=[j,j+I,j+2I,…,k] 例: X1=1:5 X1=[1 2 3 4 5] X2=1:0.5:3 X2=[1.000 1.500 2.000 2.500 3.000] X3=5:-1:1 X3=[5 4 3 2 1] 2、矩阵的生成: zeros生成全0阵 B= zeros(n) 生成n*n的全0矩阵 B= aeros(m,n) 生成m*n的全0矩阵 B= zeros(size(A)) 生成与与矩阵A大小相同的全0矩阵 注:m,n必须是一个非负数 ones生成全1阵 rand生成均匀分布的随机阵 3、矩阵的算术运算 1)加法和减法 对于同维矩阵指令为:A+B、A-B; 对于矩阵和标量(一个数)的加减运算,指令为:A+3、A-9 2) 乘法和除法运算 A*B 是数学中的矩阵乘法,遵循矩阵乘法规则; A.*B 是同维矩阵对应位置元素做乘法; B=inv(A)是求矩阵的逆; A/B 是数学中的矩阵除法,遵循矩阵除法规则; A./B 是同维矩阵对应位置元素相除; A' 表示矩阵的转置运算; 10