信号分析与处理课程设计报告书.docx
《信号分析与处理课程设计报告书.docx》由会员分享,可在线阅读,更多相关《信号分析与处理课程设计报告书.docx(18页珍藏版)》请在冰点文库上搜索。
信号分析与处理课程设计报告书
课程设计任务书
学生姓名:
陈专业班级:
电信140班
指导教师:
吴巍工作单位:
信息工程学院
题目:
FIR低通滤波器的设计
初始条件:
具备数字信号处理的理论知识;
具备Matlab编程能力;
熟悉低通滤波器的设计原理;
提供编程所需要的计算机一台
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1、设计通带截止频率为200Hz的FIR数字低通滤波器;
2、独立编写程序实现
3、完成符合学校要求的设计说明书
时间安排:
一周,其中3天程序设计,2天程序调试
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
摘要1
1.概述2
1.1数字滤波器基本概念2
1.2FIR滤波器2
2.FIR低通滤波器实现方法3
2.1频率取样法介绍3
2.2窗函数法4
2.2.1设计原理4
2.2.2设计步骤4
3.MATLAB窗函数仿真设计5
3.1MATLAB中的窗函数5
3.2滤波器参数设计5
3.3仿真实现6
3.3.1仿真程序及结果6
3.3.2结果检测8
3.4结果分析10
4.心得体会12
参考文献12
摘要
随着计算机技术的快速发展,数字和信息时代也已经来临。
在当代《数字信号处理》已经成为信息领域的一门重要学科和技术。
数字信号处理技术已经运用在图像处理、语音通信等多个方面,由此可见其应用价值。
而其中数字滤波器(DF,DigitalFilter)也成为处理各种数字信号的重要工具。
在本次课程设计中,运用MATLAB进行一个有限长单位冲击响应(FIR)低通滤波器设计及仿真,要求通带截止频率为200Hz。
MATLAB是美国MathWorks公司推出的一套用于科学计算和图形处理实的可视化、高性能语言的软件工具。
因此,本次课设又要求掌握MATLAB在数字信号处理中的一些运用技能。
在MATLAB中可以运用窗函数编程实现FIR低通滤波器,并对其进行仿真观察低通滤波器的滤波效果,深入认识数字滤波器的结构与传输特性,并熟悉分析DF的性能,从实践中掌握更多的理论知识。
关键词:
FIR低通滤波器,MATLAB,窗函数,数字滤波器
1.概述
1.1数字滤波器基本概念
数字滤波器DF是数字信号处理学科中的重要组成部分,其通常是指一种算法或一种数字处理装备,一般由数字乘法器、加法器和延时器组成。
DF是在模拟滤波器(AnalogFilter,AF)的基础上发展起来的,但是DF具有精度高、稳定性好、设计灵活、不存在阻抗匹配、便于大规模集成和可以实现多维滤波等优点。
从频域上,DF可以分成低通、高通、带通、带阻滤波器;从结构上,DF可分为无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
IIR滤波器的主要特点是系统含有反馈支路,结构上是递归的,其单位冲激响应是无限长的,对同样的滤波器过渡带要求,他实现的阶数较低,因而减少了延时器和乘法器。
但它存在系统稳定性问题,如果设计不当可能会无法工作。
FIR滤波器是一种非递归系统,其冲激响应是有限长的,最大特点是构成严格的线性相位,在图像处理等应用领域非常重要。
1.2FIR滤波器
FIR滤波器的单位冲激响应是有限的,因而滤波器一定会是稳定的,而且,经过一定的延时后任何非因果有限长序列都能都能变成因果的有限长序列。
再则FIR滤波器在保证幅度特性满足技术要求的同时,很容易做成严格的线性相位特性。
FIR滤波器的单位冲激响应h(n)是有限长的(
),其z变换为
H(z)=
(1.1)
显然,H(z)是z-1的N-1阶多项式,在有限z平面有N-1个零点,有N-1阶极点全部在z平面的原点处。
总体而言,FIR滤波器有以下特点:
(1)h(n)是个有限长序列,故FIR滤波器一定是稳定的;
(2)系统函数|H(z)|在|z|>0处收敛,极点全部在z=0处;
(3)结构上主要是非递归结构,没有输出到输入反馈。
但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。
(4)经延时后h(n)总可变成因果序列,所以FIR滤波器总可以由因果系统实现,FIR滤波器的单位冲激响应是有限长的,故可以用快速傅里叶算法实现。
2.FIR低通滤波器实现方法
2.1频率取样法介绍
根据序列傅里叶的变换与离散傅里叶变换的关系,一个任意长的序列,对它的频率特性进行N等分间隔抽样,利用离散傅里叶反变换,可以得到一个N点的有限长序列。
这个有限长序列是原序列以N为周期的周期序列的主值序列,因而它的频率特性也将逼近原序列所对应的频率特性。
因而,对一个理想的频响
其对应的单位抽样响应的是h(n),如果对H在单位圆作N等分间隔抽样,得到N个频率抽样值H,由H(k)经IDFT得到N点的有限长序列h(n),则
(2.1)
式中
是N点矩阵序列。
h(n)是
的主值序列,因此,由h(n)求得的频率响应
逼近
,这就是频率抽样法的基本过程,从而频率抽样法设计的基本步骤可归纳为:
对
抽样所得
表示为:
(k=0,1,2……
)(2.2)
由
至
再至
的过程可用
直接求
的内插公式求出,即
(2.3)
根据频率抽样法,为逼近所需要的频率响应,先要在z平面单位圆上对所需的频率采样,然后求出通过频域取样点的内插频率响应。
2.2窗函数法
2.2.1设计原理
窗函数设计法也称为傅里叶级数法。
FIR滤波器的设计问题在于寻求一系统函数
,使其频率响应
逼近滤波器要求的理想频率响应
。
从单位取样序列看,就是使设计的录波器的h(n)逼近理想滤波器的单位取样响应
。
(2.4)
(2.5)
由于理想的滤波器的频率响应
是逐段很定的,且在频带边界有不连续点,所以
一般是无限长的,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。
要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断,或者说用一个有限长的窗口函数序列w(n)来截取
,即
(2.6)
2.2.2设计步骤
利用窗函数设计FIR滤波器的主要步骤如下:
(1)给出希望设计的滤波器的频率响应函数
;
(2)根据允许的过渡带宽度及阻带衰减,初步选定窗函数及其长度N;
(3)根据技术要求确定待求滤波器的单位取样响应
;
(4)将
与窗函数相乘的FIR数字滤波器的单位取样响应h(n);
(5)按如下方法计算FIR数字滤波器的频率响应,并验证是否达到所要求的的技术指标:
(2.7)
或
(2.8)
3.MATLAB窗函数仿真设计
在FIR低通滤波器的实现方法中,运用窗函数法可以简便快捷的实现该滤波器的程序编写及仿真调试,因此一下讲述该滤波器的窗函数法设计过程及结果分析。
3.1MATLAB中的窗函数
本小节介绍关于几种窗函数的特性,以便在下面实现滤波器要求的条件下选择需要的窗函数。
表1六种窗函数比较表
函数名
窗函数
主瓣宽
过渡带宽
阻带最小衰减/dB
矩形窗
boxcar
4π/N
1.8π/N
-21
巴特列特
barlett
8π/N
4.2π/N
-25
汉宁窗
hanning
8π/N
6.2π/N
-44
海明窗
hamming
8π/N
6.6π/N
-53
布拉克曼窗
blackman
12π/N
11π/N
-74
凯泽窗
kaiser
10π/N
10π/N
-80
在MATLAB中,可以直接调用这些窗函数进行滤波器的设计,调用方法如下:
b=fir1(n,wc)
b=fir1(n,wc,’ftype’)
b=fir1(n,wc,window)
b=fir1(n,wc,’ftype’,window)
其中,n为FIR滤波器的阶数,对于高通、带阻滤波器n取偶数,wn为滤波器截止频率;‘ftype’为滤波器类型;window为窗函数(列向量、其长度为n+1),缺省时,自动取Hamming窗。
3.2滤波器参数设计
本次课程设计要求是设计通带截止频率
为200Hz的FIR数字低通滤波器。
根据要求,设置抽样频率fs=1kHz,阻带起始频率
为300Hz,同时为取得好一点的滤波特性,让阻带衰减大于50dB。
(1)求对应的数字频率
通带截止频率:
(3.1)
阻带起始频率:
(3.2)
(2)假设该低通滤波器为理想线性相位滤波器,其
为
(3.3)
其中
截止频率
(3.4)
则其数字域的过渡带宽
选择海明窗(hamming)设计滤波器时,其过度带宽满足
则可得N=
33
其阻带衰减为-53dB。
3.3仿真实现
3.3.1仿真程序及结果
(1)(hamming)的时域波形及幅频特性观察:
海明窗的窗函数为:
(3.5)
观察N=33的海明窗的MATLAB程序如下:
N=33
win=hamming(N);
[h,w]=freqz(win,1);
subplot(2,1,1)
stem(win)
title('海明窗时域波形');
xlabel('(n)');
ylabel('w(n)');
subplot(2,1,2)
W=20*log10(abs(fft(win,1000)))
w=0:
999
plot(2*w/1000,W);
title('海明窗的幅频特性')
ylabel('20log|H(ejw)|/dB');
xlabel('频率(×πrad/采样)')
仿真波形如图1所示
图1海明窗仿真图
(2)观察FIR低通滤波器的幅频响应和相频响应
在3.2中已经计算出了
,
,
,=33,直接用fir1调用hamming设计滤波器,程序如下:
wp=0.4*pi;
ws=0.6*pi;
wc=(wp+ws)/2/pi
N=33;
b=fir1(N,wc,hamming(N+1))
freqz(b);
该滤波器的相频特性和幅频特性如图2示
图2滤波器仿真图
3.3.2结果检测
(1)h(n)与
时域波形对比:
由式3.3中
的表达式可得
(3.6)
则显示
与
波形的MATLAB程序如下:
N=33;
n=0:
32;
wc=0.5*pi;
hd=sin(wc*(n-16+eps))./(pi*(n-16+eps));
subplot(211);stem(n,hd)
title('hd(n)波形')
h=hd.*(0.54-0.46*cos(8*pi*n));
subplot(212);stem(n,h)
title('h(n)波形')
下图3为
与
的时域波形图,由图可知
与
都满足线性相位特性。
图3h(n)与hd(n)仿真图
(2)混频信号经过滤波器的观察
观察两个混频信号经滤波器后输出波形的MATLAB程序如下:
wc=0.5*pi
N=33;
b=fir1(N,wc/pi,hamming(N+1))
t=(0:
100)/1000;
s1=sin(100*pi*2*t)+sin(300*2*pi*t);
sf1=filter(b,1,s1);
subplot(2,2,1);plot(t,s1)
title('混频信号1')
subplot(2,2,3);plot(t,sf1)
title('滤波波形1')
s2=sin(250*pi*2*t)+sin(300*2*pi*t);
sf2=filter(b,1,s2);
subplot(2,2,2);plot(t,s2)
title('混频信号2')
subplot(2,2,4);plot(t,sf2)
title('滤波波形2')
仿真结果如图4所示,均将300Hz的信号滤出,200Hz以下的信号可以无失真还原出来,200-300Hz的信号可以经过滤波器,但是有幅度失真。
图4滤波效果仿真图
3.4结果分析
对于滤波器的滤波效果来说,达到了任务书的要求,能将200Hz以下的信号不失真地保留下来,同时加窗后的h(n)具有良好的线性相位特性。
但是由于过渡带的存在,在本次设计的滤波器中,过渡带在100Hz左右,导致在200Hz~300Hz范围内的信号也能通过滤波器,但有一定的幅度失真,理想低通滤波器和实际滤波器的幅频特性如下图5所示(实线为实际滤波器幅频曲线,虚线为理想滤波器)。
观察两个滤波器幅频特性的MATLAB程序如下:
f=0:
0.002:
1;
m(1:
251)=1;m(252:
501)=0;
hold
plot(f,m,'r:
')
wc=0.5*pi;
N=33;
b=fir1(N,wc/pi,hamming(N+1))
[H,f]=freqz(b);
plot(f/pi,abs(H))
图5幅频特性对比图
4.心得体会
本次课程设计中,运用MATLAB进行FIR低通滤波器的仿真设计,没有实物要求,但是在这次课程设计中还是认识到了自己的很多不足之处。
对于FIR滤波器,我在理论课程中的窗函数设计法并没有很好的掌握其方法,对于设计思路也不太熟悉,为了完成这次课设,我再一次学习了窗函数设计滤波器的原理及方法步骤,让我对FIR滤波器的特性有了进一步地了解,同时也看到了运用窗函数设计FIR滤波器的简便性。
但是我对MATLAB的编程环境也不是特别熟悉,对MATLAB的一些语言运用不是很到位,在做课设的过程中,运到问题就去网上查资料,也在MATLAB应用教程书上学习一些关于数字信号处理的MATLAB应用方法,一步一步的完成了滤波器的仿真设计,最终得出结果。
总而言之,这次实践加深了我对FIR滤波器的理论知识掌握,也加强了我在MATLAB中数学运算编程的能力。
在今后的学习过程中,我还要加强实践与理论的结合,让自己更快更牢固地掌握基础的理论知识。
参考文献
[1]刘泉,阙大顺.数字信号处理原理与实现.电子工业出版社.2009
[2]程佩青.数字信号处理教程.清华大学出版社.2007
[3]王沫然.MATLAB与科学计算教程.电子工业出版社.2016.2
[4]钟国梁.浅谈学习窗函数法设计FIR数字滤波器体会.电气电子教学学.2009-06-15
[5]刘勍.温志贤.MATLAB基础及应用。
东南大学出版社.2011.1
本科生课程设计成绩评定表
姓名
陈
性别
男
专业、班级
电信14
课程设计题目:
FIR低通滤波器的设计
课程设计答辩或质疑记录:
(
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日