滤波器设计与实现Word格式.docx
《滤波器设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《滤波器设计与实现Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
![滤波器设计与实现Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/1/8e5b8da5-090a-45dd-8a19-717575637540/8e5b8da5-090a-45dd-8a19-7175756375401.gif)
(1)设计题目及要求
(2)设计原理(包括滤波器工作原理、涉及到的matlab函数的说明)
(3)设计内容(设计思路,设计流程、仿真结果)
(4)设计总结(收获和体会)
(5)参考文献
(6)程序清单
起止时间
2012年12月3日至2011年12月11日
指导教师签名
2011年12月2日
系(教研室)主任签名
年月日
学生签名
目录
1课题描述………………………………………………………………….1
2设计原理………………………………………………………………….1
2.1数字滤波器及其分类……………………………………………….1
2.2FIR数字滤波器………………………………………………………1
2.2.1FIR滤波器的窗函数设计原理…………………………………2
3设计内容………………………………………………………………….7
3.1用MATLAB编程实现………………………………………………7
3.2设计结果分析…………………………………………………….10
4实验总结与心得………………………………………………………….10
5参考文献………………………………………………………………….10
1课题描述
数字滤波器(DigitalFilter)是指输入、输出都是离散时间信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
在许多数字信号处理系统中,如图像信号处理等,有限冲激响应(FIR)滤波器是最常用的组件之一,它完成信号预调、频带选择和滤波等功能。
FIR滤波器虽然在截止频率的边沿陡峭性能上不及无限冲激响应(IIR)滤波器,但是却具有严格的线性相位特性,稳定性好,能设计成多通带(或多阻带)滤波器组,所以能够在数字信号处理领域得到广泛的应用。
2.设计原理
2.1数字滤波器及其分类
数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。
应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。
数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。
为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。
数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。
数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。
数字滤波器有低通、高通、带通、带阻和全通等类型。
它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。
应用最广的是线性、时不变数字滤波器,以及FIR滤波器。
和模拟滤波器一样,数字滤波器按照通带特性可以划分为:
低通、高通、带通、带阻等几种线性形式。
从单位脉冲响应的角度,可以把数字滤波器分为:
iir滤波器(无限长单位冲激响应滤波器)和fir滤波器(有限长单位冲激响应滤波器)
1.FIR(FiniteImpulseResponse)数字滤波器
特点:
不存在反馈支路,其单位冲激响应为有限长。
2.IIR(InfiniteImpulseResponse)数字滤波器
存在反馈支路,即信号流图中存在环路,其单位冲激响应为无限长。
2.2FIR数字滤波器
FIR(FiniteImpulseResponse)滤波器:
有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用
工作原理:
在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。
FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。
有限长单位冲激响应(FIR)滤波器有以下特点:
(1)系统的单位冲激响应h(n)在有限个n值处不为零
(2)系统函数H(z)在|z|>
0处收敛,极点全部在z=0处(因果系统)
(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。
设FIR滤波器的单位冲激响应h(n)为一个N点序列,0≤n≤N—1,则滤波器的系统函数为H(z)=∑h(n)*z^-n就是说,它有(N—1)阶极点在z=0处,有(N—1)个零点位于有限z平面的任何位置。
FIR滤波器原理
FIR滤波器的系统输入输出差分方程为
所以FIR滤波器的系统函数为
由于FIR滤波器的单位脉冲响应h(n)是一个有限长序列,H(z)是的(N−1)次多项式,它在Z平面上有(N−1)个零点,同时在原点有(N−1)阶重极点。
因此,H(z)永远稳定。
FIR滤波器设计的任务是选择有限长度的h(n),使传输函数满足一定的幅度特性和线性相位要求。
由于FIR滤波器很容易实现严格的线性相位,所以FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应
2.2.1FIR滤波器的窗函数设计原理
窗函数法的设计思想是按照所要求的理想滤波器频率响应Hd(ejw),设计一个FIR滤波器,使之频率响应
来逼近
。
先由
的傅里叶反变换导出理想滤波器的冲激响应序列hd(n),即:
由于Hd(ejw)是矩形频率特性,所以hd(n)是一无限长的序列,且是非因果的,而要计的FIR滤波器的冲激响应序列是有限长的,所以要用有限长的序列h(n)来逼近无限长的序列hd(n),最有效的方法是截断,或者说用一个有限长度的窗口函数w(n)序列来截取hd(n),即:
按照复卷积公式,在时域中的乘积关系可表示成在频域中的周期性卷积关系,即可得所设计的FIR滤波器的频率响应:
其中,W(ejw)为截断窗函数的频率特性。
由此可见,实际的FIR数字滤波器的频率响应H(ejw)逼近理想滤波器频率响应Hd(ejw)的好坏,完全取决于窗函数的频率特性W(ejw)。
如果w(n)具有下列形式:
w(n)相当于一个矩形,我们称之为矩形窗。
即我们可采用矩形窗函数w(n)将无限脉冲响应hd(n)截取一段h(n)来近似为hd(n)。
经过加矩形窗后所得的滤波器实际频率响应能否很好地逼近理想频率响应呢?
下图给出了理想滤波器加矩形窗后的情况。
理想低通滤波器的频率响应Hd(ejw)如图中左上角图,矩形窗的频率响应W(ejw)为左下角图。
根据卷积定理,即得实际滤波器的频率响应H(ejw)图形为图中右图
由图可看出,加矩形窗后使实际频率响应偏离理想频率响应,主要影响有三个方面:
(1)理想幅频特性陡直边缘处形成过渡带,过渡带宽取决于矩形窗函数频率响应的主瓣宽度。
(2)过渡带两侧形成肩峰和波纹,这是矩形窗函数频率响应的旁瓣引起的,旁瓣相对值越大,旁瓣越多,波纹越多。
(3)随窗函数宽度N的增大,矩形窗函数频率响应的主瓣宽度减小,但不改变旁瓣的相对值。
为了改善滤波器的性能,需使窗函数谱满足:
主瓣尽可能窄,以使设计出来的滤波器有较陡的过渡带;
第一副瓣面积相对主瓣面积尽可能小,即能量尽可能集中在主瓣,外泄少,使设计出来的滤波器的肩峰和余振小逼近于理想滤波器。
但是这两个条件是相互矛盾的,实际应用中,折衷处理,兼顾各项指标。
上边只考虑了矩形窗,如果我们使窗的主瓣宽度尽可能地窄,旁瓣尽可能地小,可以获得性能更好的滤波器,通过改变窗的形状来达到这个目的。
在数字信号处理的发展过程中形成了不同于矩形窗的很多窗函数,这些窗函数在主瓣和旁瓣特性方面各有特点,可满足不同的要求。
为此,用窗函数法设计FIR数字滤波器时,要根据给定的滤波器性能指标选择窗口宽度N和窗函数w(n)。
下面具体介绍几类类窗函数及其特性
1.矩形窗函数的时域形式可以表示为:
汉宁窗函数
其中,WR(ω)为矩形窗函数的幅度频率特性函数。
汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8π/N。
2.海明窗函数
3.三角窗函数
用MATLAB编程绘制各种窗函数的形状,窗函数的长度为21。
程序如下:
clf;
Nwin=21;
n=0:
Nwin-1;
figure
(1)
forii=1:
4
switchii
case1
w=boxcar(Nwin);
%矩形窗
stext='
矩形窗'
;
case2
w=hanning(Nwin);
%汉宁窗
汉宁窗'
case3
w=hamming(Nwin);
%海明窗
stext='
海明窗'
case4
w=triang(Nwin);
%三角窗
三角窗'
end
posplot=['
2,2,'
int2str(ii)];
subplot(posplot);
stem(n,w);
%绘出窗函数
holdon
plot(n,w,'
r'
);
%绘出包络线xlabel('
n'
ylabel('
w(n)'
title(stext);
holdoff;
gridon;
end程序运行结果如下图:
用MATLAB编程,采用512个频率点绘制各窗函数的幅频特性。
Nf=512;
%窗函数复数频率特性的数据点数Nwin=20;
%窗函数数据长度
[y,f]=freqz(w,1,Nf);
%求解窗函数的幅频特性
mag=abs(y);
%求得窗函数幅频特性
posplot=['
subplot(posplot);
plot(f/pi,20*log10(mag/max(mag)));
%绘制窗函数的幅频特性
xlabel('
归一化频率'
振幅/dB'
title(stext);
3.设计内容
产生包含三个正弦成分(120hz,80hz,20hz)的信号,设计基于窗函数的FIR滤波器去除120hz,20hz成分,保留80hz信号。
3.1用MATLAB编程实现
fh1=65;
fh2=75;
fh3=85;
fh4=95;
fs=500;
wlp=2*pi*fh1/fs;
wls=2*pi*fh2/fs;
wus=2*pi*fh3/fs;
wup=2*pi*fh4/fs;
B=wls-wlp;
%定义过度带宽
N0=ceil(6.2*pi/B);
N=N0+mod(N0+1,2);
wc=[(wls+wlp)/2/pi,(wus+wup)/2/pi];
%计算理想带通滤波器带通截止频率
window=bartlett(N+1);
hn=fir1(N,wc,window);
%使用fir1设计滤波器
[h,f]=freqz(hn,1,512);
figure
(1)
plot(f*500/(2*pi),20*log10(abs(h)))
频率/赫兹'
增益/分贝'
title('
滤波器的增益响应'
figure
(2)
subplot(2,1,1)
t=0:
1/fs:
1;
%定义时间范围和步长
f1=20;
f2=80;
f3=120;
sig=sin(2*pi*f1*t)+sin(2*pi*f2*t)+sin(2*pi*f3*t);
%滤波前的信号
plot(t,sig);
gridon%滤波前的信号图像
时间/秒'
幅度'
信号滤波前时域图'
)
subplot(2,1,2)
Fs=fft(sig,512);
%将信号变到频域
AFs=abs(Fs);
%信号频域值的幅值
f=(0:
255)*fs/512;
%频率采样
plot(f,AFs(1:
256));
gridon%滤波前的信号频谱图
信号滤波前频域图'
figure(3)
sf=filter(hn,1,sig);
%使用fifter对信号进行滤波,输入参数分别为滤波器系统函数的分子和分母多项式系数向量和待滤信号输入
plot(t,sf);
gridon%信号滤波后
信号滤波后的时域图'
axis([0.20.25-22]);
%定义图像坐标
subplot(2,1,2);
Fsf=fft(sf,512);
%滤波后的信号频域图
AFsf=abs(Fsf);
%信号频域图的幅值
plot(f,AFsf(1:
gridon%滤波后的信号频域图
信号滤波后的频域图'
3.2设计结果分析
(1)从图像可看出滤掉120hz与20hz的信号,留下80hz的信号,实验目的达到。
(2)操作发现试着改变的阶数N的值,窗口宽度变大,过渡带宽变小,但是旁瓣加高,由此可见,不能一味的使N增大。
4.实验总结与心得
由于FIR滤波器就有较好的线性相位特性,使其在图像信号处理,数据传输等以波形携带信息的系统领域中有着广泛的应用。
此外,FIR滤波器的冲激响应为有限长序列,其系统函数为一多项式,它所含的极点均为原点,所以FIR滤波器永远是稳定的。
本次课题主要学习了FIR数字滤波器的设计原理、窗函数在FIR滤波器设计中的应用并用MATLAB实现了FIR低通带通滤波器的设计。
通过这次学习,我不但掌握了FIR数字滤波器窗函数的基本知识及其实际应用的技巧,还提高了自己MATLAB软件应用方面的能力,收获很多。
5.参考文献
[1]高西全,丁玉美.数字信号处理(第三版)[M].西安:
西安电子科技大学出版社,2008.
[2]王靖,李永全.椭圆滤波器Matlb设计与实现[J].现代电子技术,2007,(6).
[3]刘波,文忠,曾涯.MATLAB信号处理.电子工业出版社,2006.
[4]飞思科技产品研发中心.MATLAB7辅助信号处理技术与应用.电子工业出版社,2005.