内容发布更新时间 : 2024/12/24 1:02:55星期一 下面是文章的全部内容请认真阅读。
广州大学学生实验报告
开课学院及实验室:电子楼316 2015 年 12月 10日
学院 机械与电气工年级、专程学院 业、班 通信133 姓名 李垚焬 学号 1307400152 实验课程名称 数字信号处理实验 成绩 实验项目名称 FIR滤波器的设计 指导老师 郑艳华 一、实验目的 复习巩固窗函数法设计FIR滤波器的概念和方法,观察用几种常用窗函数设计的FIR数字滤波器技术指标。 二、实验原理 FIR滤波器的设计问题在于寻求一系统函数H(z),使其频率响应H(ej?)逼近滤波器要求的理想频率响应Hd(ej?),其对应的单位脉冲响应hd(n)。 1.用窗函数设计FIR滤波器的基本方法 设计思想:从时域从发,设计h(n)逼近理想hd(n)。设理想滤波器H?d(ej)的单位脉冲响应为hd(n)。以低通线性相位FIR数字滤波器为例。 ?Hj?d(e)?hd(n)e?jn?n???? h?d(n)?12????Hj?d(e)ejn?d?hd(n)一般是无限长的,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断h(n)?hd(n)w(n),即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即 ??h(n)?hd(n)w(n)?a?(N?1)/2 用矩形窗设计的FIR低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs)效应。为了消除吉布斯效应,一般采用其他类型的窗函数。 2.典型的窗函数 (1)矩形窗(Rectangle Window) w(n)?RN(n)
其频率响应和幅度响应分别为: N?1W(ej?)?sin(N?/2)?j?2sin(?/2)e,WR(?)?sin(N?/2)sin(?/2) (2)三角形窗(Bartlett Window) ?0?n?N?1w(n)??2n?N?1,?2nN?12 ?2?N?1,2?n?N?1ej?)?2N[sin(N?/4)2?j?N?1其频率响应为:W(sin(?/2)]e2 (3)汉宁(Hanning)窗,又称升余弦窗 w(n)?12[1?cos(2n?N?1)]RN(n) 其频率响应和幅度响应分别为: N?1W(ej?)?{0.5W2?2??j(R(?)?0.25[WR(??)?WR(?2)?N?1?N?1)]}e?W(?)e?j?a W(?)?0.5WR(?)?0.25[WR(??2?2N?1)?W(???RN?1)](4)汉明(Hamming)窗,又称改进的升余弦窗 w(n)?[0.54?0.46cos(2n?N?1)]RN(n) 其幅度响应为:W(?)?0.54W23[W2?R(?)?0.R(??N?1)?W??2?R(N?1)] (5)布莱克曼(Blankman)窗,又称二阶升余弦窗 w(n)?[0.42?0.5cos(2n?N?1)?0.08cos(4n?N?1)]RN(n) W(?)?0.42W2?2?R(?)?0.25[WR(??)?WR(??其幅度响应为:N?1N?1)] ?0.04[W4?4? R(??N?1)?WR(??N?1)](6)凯泽(Kaiser)窗 (n)?I0(?1?[1?2n/(N?1)]2w)I,0?n?N?1 0(?)其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。I0(·)是第一类修正零阶贝塞尔函数。 若阻带最小衰减表示为As??20log10?s,β的确定可采用下述经验公式: ?0As?21????0.5842(A0.4s?21)?0.07886(As?21)21?A?s?50 ?0.1102(As?8.7)As?50若滤波器通带和阻带波纹相等即δp=δs时,滤波器阶数可通过下式确定: N?As?7.9514.36?F?1 式中:?F???2???s??p2? 三、实验内容及步骤 1.知识准备 在实验编程之前,认真复习有关FIR滤波器设计的有关知识,尤其是窗函数的有关内容,阅读本次实验指导,熟悉窗函数及四种线性相位FIR滤波器的特性,掌握窗函数设计滤波器的具体步骤。 2.编制窗函数设计FIR滤波器的程序。绘制滤波器的幅频和相位曲线,注意长度N对曲线的影响。至少选两种不同长度,每种长度选两种窗函数。 (1) 设计一线性相位FIR数字低通滤波器,截止频率?c?0.2?,过渡带宽度???0.4?,阻带衰减As?40dB。 凯塞窗: M=36: As=40;DB=0.4;wc=0.2*pi; beta=0.5842*(As-21)^0.4+0.07886*(As-21); M=ceil((As-8)/2.285/DB); b = fir1(M,wc,kaiser(M+1,beta)); subplot(2,1,1); plot(b); xlabel('h(n)'); ylabel('h(n)2¨D?'); [h1,w1]=freqz(b,1); subplot(2,1,2); plot(w1/pi,20*log10(abs(h1))); xlabel('20lg|Hg(w)|'); ylabel('?eo?oˉêy?ú??');
1形0.5n)波h(0-0.50510152025303540h(n)50线曲0数函耗-50损-10000.10.20.30.40.50.60.70.80.9120lg|Hg(w)| M=23: As=40;DB=0.2*pi;wc=0.2*pi; beta=0.5842*(As-21)^0.4+0.07886*(As-21); M=ceil((As-8)/2.285/DB) b = fir1(M,wc,kaiser(M+1,beta)); subplot(2,1,1); plot(b); xlabel('h(n)'); ylabel('h(n)2¨D?'); [h1,w1]=freqz(b,1); subplot(2,1,2); plot(w1/pi,20*log10(abs(h1))); xlabel('20lg|Hg(w)|'); ylabel('?eo?oˉêy?ú??'); 0.60.4形波)0.2n(h0-0.20510152025h(n)50线曲0数函耗-50损-10000.10.20.30.40.50.60.70.80.9120lg|Hg(w)| 哈明窗: N=25: DB=0.4*pi;wc=0.2*pi; N1=ceil(6.6*pi/DB); N=N1+mod(N1+1,2); b = fir1(N-1,wc,hamming(N)) subplot(2,1,1); plot(b); xlabel('h(n)'); ylabel('h(n)2¨D?'); [h1,w1]=freqz(b,1); subplot(2,1,2); plot(w1/pi,20*log10(abs(h1))); xlabel('20lg|Hg(w)|'); ylabel('?eo?oˉêy?ú??');
1形0.5波)(nh0-0.5024681012141618h(n)50线曲0数函耗-50损-10000.10.20.30.40.50.60.70.80.9120lg|Hg(w)| N=29: DB=0.4*pi;wc=0.2*pi; N1=ceil(6.6*pi/DB); N=N1+mod(N1+1,2)+4; b = fir1(N-1,wc,hamming(N)) subplot(2,1,1); plot(b); xlabel('h(n)'); ylabel('h(n)2¨D?'); [h1,w1]=freqz(b,1); subplot(2,1,2); plot(w1/pi,20*log10(abs(h1))); xlabel('20lg|Hg(w)|'); ylabel('?eo?oˉêy?ú??');