13数字滤波器1.docx
- 文档编号:11502096
- 上传时间:2023-03-02
- 格式:DOCX
- 页数:22
- 大小:337.76KB
13数字滤波器1.docx
《13数字滤波器1.docx》由会员分享,可在线阅读,更多相关《13数字滤波器1.docx(22页珍藏版)》请在冰豆网上搜索。
13数字滤波器1
第1章前言
1.1课题研究的目的和意义
数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及多门学科并广泛应用于很多科学和工程领域的新兴学科,它是指利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以便提取有用的信息并进行有效的传输与应用,得到符合人们需要的信号形式。
与模拟信号处理相比,数字信号处理具有精确、灵活、抗干扰能力强、可靠性高、体积小、易于大规模集成等优点。
数字信号处理的实现在早期采用通用的处理器实现,但其速度低,价格昂贵。
数字信号处理器(DigitalSignalProcessor)的出现则改变了这一状况,其内部带有专门用于数字信号处理的硬件,因此速度非常快,方便实时快速地实现各种数字信号处理算法。
数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。
数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。
与模拟处理相比,数字处理有灵活性强、精度高、处理成本低以及对环境没有特殊要求等优点。
它不仅能实现模拟处理的大部分功能,而且还能完成模拟处理由于成本、可靠性等原因而无法具体实现的功能。
数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。
数字滤波在通信、图像编码、语音编码、雷达等许多领域中也有着十分广泛的应用。
数字滤波器是通过对抽样数据进行数学处理来达到频域滤波的目的。
数字滤波器可以用软件或设计专用的数字处理硬件两种方式来实现。
用软件来实现数字滤波器优点是:
随着滤波器参数的改变,很容易改变滤波器的性能。
1.2国内外发展现状
现代滤波理论研究的主要内容是从含有噪声的数据记录(又称为时间序列)中估计出信号的某些特征或信号本身。
一旦信号被估计出,那么估计出的信号将比原信号会有高的信噪比。
现代滤波器把信号和噪声都视为随机信号,利用它们的统计特征(如自相关函数、功率谱函数等等)导出一套最佳的估值算法,然后用硬件和软件实现。
目前现代滤波器主要有:
维纳滤波器、卡尔曼滤波器、线性预测器、自适应滤波器等,很多专家将基于特征分解的频率估计及奇异值分解算法都归入现代滤波器的范畴。
GR雷达信号处理分析系统中的信号分析中的滑动平均谱和常规处理中的反褶积运算采用了现代处理的部分功能。
MATLAB是一套用于工程计算的可视化高性能语言与软件环境。
它集成了数值计算、符号计算、可视化建模、仿真和图形处理等功能。
MATLAB语言运算符丰富,既具有结构化的控制语言,又能面向对象编程,语法限制不严格,具又强大的图形功能和功能强大的工具箱。
它为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。
它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。
其中MATLAB的信号处理工具箱是专门应用于信号处理领域的专用工具箱,它的两个基本组成就是滤波器的设计与实现部分以及谱分析部分。
工具箱提供了丰富而简便的设计,使原来繁琐的程序设计简化成函数的调用。
只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,所以使用非常方便。
MATLAB也是大量的计算机仿真软件中的优秀代表,它在科学研究特别是电子信息科学中有着极为广泛的应用。
MATLAB现已被广泛应用于数学、通信、信号处理、自动控制、神经网络、图形处理等许多不同学科的研究中。
第2章数字滤波器的介绍
2.1数字滤波器的概述
所谓数字滤波器,是指输入输出均为数字信号,通过一定的运算关系,改变输入信号中所含频率成分的相对比例,或则滤除某些频率成分的器件[3]。
数字滤波器具有稳定性高、精度高、灵活性大等突出优点。
对于数字滤波器而言,若系统函数为H(z),其脉冲响应为h(n),输入时间序列为x(n),则它们在时域内的关系式如下:
(2-1)
在Z域内,输入和输出存在如下关系:
(2-2)
式中,X(z)、Y(z)分别为x(n)和y(n)的Z变换。
在频域内,输入和输出则存在如下关系:
(2-3)
式中,
是数字滤波器的频率特性;
、
分别为x(n)和y(n)的频谱,而
为数字角频率。
2.2数字滤波器的分类
数字滤波器按照不同的分类方法,有许多种类,但总起来可以分成两大类。
一类称为经典滤波器,即一般的滤波器,特点是输入信号中有用的频率成分和希望滤除的频率成分各占有不同的频带,通过一个合适的选频率波器达到滤波的目的。
例如,输入信号中含有干扰,如果信号和干扰的频带互不重叠,可滤除干扰得到纯信号。
但对于一般滤波器如果信号和干扰的频带相互重叠,则不用完成对干扰的有效滤除,对时需要采用另一类所谓的现代滤波器,例如维纳滤波器、卡尔曼滤波器、自适应滤波器等最佳滤波器。
这些滤波器可按照随机信号内部的一些统计分布规律,从干扰中最佳地提取信号。
一般数字滤波器从功能上分类,和模拟滤波器一样,可以分成低通、高通、带通和带阻等滤波器。
这种理想滤波器是不可能实现的,因为它们的单位脉冲响应均是非因果且是无限长的,我们只能按照某些准则设计滤波器,使之尽可能逼近它,着些理想滤波器可作为逼近的标准用。
另外,需要注意的是数字滤波器的传输函数
都是以
为周期的,滤波器的低通频率带处于
的整数倍数,而高频频带处于
的奇数倍附近,这一点和模拟滤波器是由区别的。
数字滤波器按照滤波器的网络结构或者单位脉冲响应分类:
可分为IIR滤波器(即无限长单位冲激响应滤波器)和FIR滤波器(即有限长单位冲激响应滤波器)。
2.3数字滤波器设计指标
设数字滤波器的传输函数用下式表示:
(2-5)
式中,|H(e
)|为幅频特性,
为相频特性[6]。
幅频特性表示信号通过滤波器后各频率成分的衰减情况,相频特性则反映各频率成分通过滤波器后在时间上的延时情况。
通常,选频滤波器的指标要求都以幅频特性给出,对相频特性不作要求,如果需要对输出波形有严格要求,如语音合成、波形传输等,则要求设计线性相位数字滤波器[7]。
数字滤波器的参数指标是
、
、
和
。
和
分别称为通带截止频率和阻带截止频率。
通带和阻带内允许的衰减一般用分贝数表示,通带内允许的最大衰减用
表示,阻带内允许的最小衰减用
表示,
和
分别定义为
dB(2-6)
dB(2-7)
式中均假定
已被归一化为1
2.4FIR滤波器特点
IIR数字滤波器的设计简单方便,特别是采用双线性变换法设计的数字滤波器没有频谱混叠问题,效果较好。
在有些实际应用场合,例如数据传输、图象处理等对滤波器的线性相位特性要求颇为严格,所以在这场合中一般选用FIR数字滤波器。
FIR数字滤波器可设计得具有严格的线性相位,而且其幅度特性可以随意设计。
FIR滤波器的单位冲激响应h(n)是有限长序列,其系统函数的极点位于Z平面原点,因此FIR滤波器不存在稳定问题。
另外,FIR滤波器还可以采用FFT方法实现其功能,从而大大提高了效率,因此,FIR数字滤波器日益引起人们的注意
对于线性相位的滤波器而言,通过滤波器的信号不存在相位失真,只存在固定单位的延迟,而这一点在数字通信、图象处理、语音合成等诸多应用中都极其重要。
FIR数字滤波器具有线性相位特征的条件是它的单位冲激响应h(n)满足偶对称或者奇对称。
若h(n)满足偶对称,则其相位特性
为:
(2-8)
若h(n)满足奇对称,则其相位特性
为:
(2-9)
从频域上看h(n)是长度为N的实序列,所以h(n)的N点DFT满足共轭对称性,即:
H(k)=H*(N-k)而幅度函数则一定呈偶对称特性,即:
(2-10)
当h(n)为偶对称,信号通过该滤波器时,其通带就产生(N-1)/2点群延迟,滤波器的相频特性是相位过原点的一条直线,其斜率为[-(N-1)/2],其幅频特性相当于对信号低通滤波;当h(n)为奇对称,信号通过该滤波器时,其通带不但产生(N-1)/2点群延迟,还对所有通带内各种频率的信号都有一个90°移相,这相当于信号先经过一个90°移相器,然后再作带通滤波。
FIR滤波器灵活,易于实现某些特殊的应用,如构建微分或积分器。
第3章FIR数字滤波器设计
FIR数字滤波器的设计方法有窗函数法、频率采样法和基于firls函数和remez函数的最优化方法。
MATLAB语言中的数字信号处理工具箱,提供了一些滤波器的函数,使FIR滤波器的运算更加方便和快捷。
在MATLAB中提供的滤波函数有fir1(),此函数以经典的方法实现加窗线性相位FIR数字滤波器设计,可以设计出低通、高通、带通和带阻滤波器;fir2函数设计的FIR滤波器,其滤波的频率特性由矢量f和m决定,f和m分别为滤波器的期望幅频响应的频率相量和幅值相量。
Firls()和remez()的基本格式用于设计
型和
型线性相位FIR滤波器,
型和
型的区别是偶函数还是奇函数。
freqz()用于求数字滤波器的频率响应。
并且提供了各种窗函数的函数,比如,hamming()是海明窗函数,hanning()是汉宁窗函数,kaiser()是凯泽窗函数,使在设计的过程中,不用自己重新设计窗函数。
Simulink是MATLAB众多工具包中的一员,对于建模,Simulink提供了一个图形化的用户界面(GUI)。
Simulink包括一个复杂的由接收器、信号源、线性和非线性组件以及连接件组成的模块库。
定义完一个模型后,就可以通过Simulink的菜单或者在MATLAB的命令窗口输入命令对它进行仿真。
使用Scopes或者其他的显示模块,可以在运行仿真时观察到仿真的结果。
另外,还可以在仿真时改变参数,并且立即就可看到变化。
3.1窗函数法设计FIR数字滤波器
设我们所要设计的FIR滤波器的传输函数是
(e
),
(n)是与其对应的单位脉冲响应,因此
(3-1)
(3-2)
如果我们能够在
已知的情况下,求出
,经过Z变换可得到滤波器的系统函数。
通常情况下理想数字滤波器的单位脉冲相应
是无限长的,且是非因果序列。
获得有限脉冲响应滤波器的一种可能方法是对
截取一段
来近似代替
,可是这样会改变原来的滤波器指标,出现吉布斯效应误差。
窗函数法就是用被称为窗函数的有限加权序列w(n)来修正式
(1)的傅里叶基数以求得要求的有限脉冲响应序列
,即文字里的公式格式不对。
(3-3)
w(n)是有限长序列,当n<0或n>N-1时,w(n)=0。
这种方法的重点在于选择某种合适的窗函数。
要求窗函数主瓣宽度尽可能窄,以获得最小的过渡带;旁瓣相对值尽可能小,以使得通带波纹小,并且阻带衰减大。
已经是设计章了,就不要在理论性的介绍了。
下面介绍几种常用的窗函数:
1.矩形窗(RectangleWindow)
(3-4)
其频率函数为:
(3-5)
2.三角形窗(BartlettWindow)
(3-6)
其频率函数为:
(3-7)
3.汉宁(Hanning)窗,又称升余弦窗
(3-8)
利用傅里叶变换得到频率函数为:
(3-9)
当
时,
,所以窗函数的幅度函数为
(3-10)
4.汉明(Hamming)窗,又称改进的升余弦窗
(3-11)
其幅度函数为:
(3-12)
5.布莱克曼(Blankman)窗,又称二阶升余弦窗
(3-13)
其幅度函数为:
(3-14)
6.凯泽(Kaiser)窗
(3-15)
其中:
β是一个可自由选择的参数,I0(x)是第一类修正零阶贝塞尔函数[10].
表3-1窗函数的基本参数
窗函数
旁瓣峰值幅度/db
过渡带宽
阻带最小衰减/db
矩形窗
-13
4
/N
-21
三角形窗
-26
8
/N
-25
汉宁窗
-31
8
/N
-44
汉明窗
-40
8
/N
-53
布莱克曼窗
-57
12
/N
-74
凯泽窗
-57
10
/N
-80
窗函数法设计滤波器的步骤:
1)根据技术要求确定待求滤波器的单位取样响应
。
2)根据对过渡带和阻带衰减的要求,选择窗函数的形式,并估计窗口长度N。
3)计算滤波器的单位取样响应h(n):
(3-16)
式中,
是前面所选择好的窗函数。
4)检验技术指标是否满足要求。
根据下式计算:
(3-17)
如果
不满足要求,根据具体情况重复步骤
(2)(3)(4)步,直到满足要求为止。
本文以一个FIR滤波器的设计为例说明如何使用MATLAB设计数字滤波器
设计实例:
用窗函数法设计线性相位FIR低通数字滤波器,要求通带截止频率Wp=0.4*
阻带截止频率Ws=0.5*
通带衰减不大于3db,阻带衰减不小于40db。
1.程序如下:
Wp=0.4*pi;
Ws=0.5*pi;
Wdel=Ws-Wp;
N=ceil(8*pi/Wdel);
Wn=(0.4+0.5)*pi/2;
window=hanning(N+1);
b=fir1(N,Wn/pi,window);
freqz(b,1,512)
程序执行后得幅频和相频如下图所示:
图3-1幅频和相频
用Simulink仿真对窗函数设计的低通滤波器进行滤波:
图3-2Simulink仿真模块图
输入信号:
s(t)=sin(30πt)+sin(56πt)+sin(70πt)
数字滤波器参数设置:
已知滤波器的阶数n=80。
本例中,首先在FilterType中选择lowpass;在DesignMethod选项中选择FIRWindow,接着在Window选项中选取hann;指定FilterOrder项中的Specifyorder为80;采样频率Fs=100Hz,截止频率Fc=22.5HZ。
设置完以后点击窗口下方的DesignFilter,在窗口上方就会看到所设计滤波器的幅频响应和相频响应曲线。
设计界面如下图所示:
图3-3幅频响应和相频响应曲线
信号源参数设置:
三个信号源的频率分别是15Hz、28Hz、35Hz:
图3-4信号源的频率
3.2频率采样法设计FIR数字滤波器
1.对理想滤波器的系统函数Hd(z)进行频率采样以得到系统的理想频响Hd(ejw)的等间隔采样值H(k)。
H(k)实际上是所要求的滤波器的单位采样响应(h(n))的离散傅里叶变换(DFT),如下试:
(3-18)
(3-19)
为了减小H(k)的通带边缘由于抽样点的变化而引起的起伏振荡,可以增加过渡点,加宽过渡带以减小通带的起伏。
每一个抽样值产生一个与sin(
)/sin(
)成正比,并位移(2
k)/N的频率响应,而H(k)与内插函数的线性组合就是FIR滤波器的频率响应,增加一点过渡可以使阻带衰减提高到-44~54dB,二点过渡衰减-65~75,三点过渡衰减-85~95dB.
如果不能使过渡带太宽,同时要求增大阻带衰减,可以增加取样点数N,但这样会增加计算量、延时和误差。
频率取样型FIR滤波器设计步骤:
(1)给定理想滤波器频率响应Hd(ejw)。
(2)根据过渡带宽和阻带衰减确定过渡点数和h(n)的长度N。
(3-20)
(3)由IFFT计算IDFT得到:
(3-21)
设计实例:
率采样法设计一个带通滤波器,满足:
低阻带边缘:
w1s=0.2*
;低通带边缘:
w1p=0.35*
;高通带边缘:
w2p=0.65*
;高阻带边缘:
w2s=0.8*
。
设计过渡带中的频率样本值为t1和t2,取t1=0.109021,t2=0.59417456。
设计程序如下:
M=40;
al=(M-1)/2;
l=0:
M-1;
t1=0.109021;
t2=0.59417456;
Hrs=[zeros(1,5),t1,t2,ones(1,7),t2,t1,zeros(1,9),t1,t2,ones(1,7),t2,t1,zeros(1,4)];
k1=0:
floor((M-1)/2);
k2=floor((M-1)/2)+1:
M-1;
angh=[-al*(2*pi)/M*k1,al*(2*pi)/M*(M-k2)];
H=Hrs.*exp(j*angh);
h=real(ifft(H,M));
freqz(h,1,512,1000)
实验得幅频相频特性如下图所示:
图3-5幅频相频
3.3最优化方法设计FIR数字滤波器
MATLAB7.0信号处理工具箱提供了通用的工具函数firls和remez,采用不同的优化方法可以设计最优滤波器和多频带滤波器。
firls是fir1和fir2函数的扩展,其基本设计准则是利用最小二乘法使期望的频率响应和实际的频率响应之间的整体误差最小。
Remez函数则利用Parks-McClellan算法设计线性相位FIR滤波器。
该算法能使期望频率响应和实际频率响应之间的最大误差最小。
Firls函数设计的滤波器在频率响应上出现等波纹,因此也叫等波纹滤波器。
函数firls、remez调用的语法规则相同。
(1)firls。
其调用格式为
Ⅰ.b=firls(n,f,a)
Ⅱ.b=firls(n,f,a,w)
Ⅲ.b=firls(n,f,a,’ftype’)
Ⅳ.b=firls(n,f,a,w,’ftype’)
该函数用于设计n阶FIR滤波器,其幅频特性由f和a向量确定,f是频率点向量,其范围为0~1,是递增向量;a是指定频率点的幅度响应,与f必须同长度;b为函数返回的滤波器系数,长度为n+1,且具有偶对称关系:
b(k)=-b(n+2-k),k=1,2,…,n+1
b=firls(n,f,a,w)则使用权系数w给误差加权。
b=firls(n,f,a,w,’ftype’)调用形式中,参数’ftype’用于指定所设计的滤波器类型,ftype=Hilbert,为奇对称的线性相位滤波器,返回的滤波器系数满足b(k)=-b(n+2-k),k=1,2,…,n+1;ftype=differentiator,则采用特殊加权技术,生成奇对称的线性相位滤波器,使低频段误差大大小于高频段误差。
(2)函数remez的基本调用格式为
b=remez(n,f,a)
其中各项意义同函数firls所述。
结束突然,
第4章FIR数字滤波器的实例仿真
假设原始信号是x=sin(2*pi*70*t)+2*sin(2*pi*120*t),抽样频率为fs=1000Hz,信号被白噪声污染,实际获得信号是xn=x+randn(size(t)),设计出一个FIR滤波器来恢复出原始信号。
因为白噪声分布于整个频带,所以要在不衰减原信号的前提之下,对整个频带滤波,利用最小二乘法设计出一个多带滤波器。
滤波器设计要求在[65/50075/500](即[0.130.15])段、[115/500125/500](即[0.230.25])段频带内幅度为l,在[060/500](即[00.12])段、[80/500110/500](即[0.160.22])段、[130/5001](即[0.261])段频带内幅为0。
程序设计如下:
t=0:
1/fs:
2;%取2秒的序列
x=sin(2*pi*70*t)+2*sin(2*pi*120*t);%先生成相应信号
xn=x+randn(size(t));%加入噪声
f=[00.120.130.150.160.220.230.250.261];
m=[0011001100];
b=firls(N,f,m);
[h,b]=freqz(b,1);
滤波器幅频特性如图所示:
图为滤波信号和原始信号比较:
程序如下:
t=0:
1/fs:
0.75;
x=sin(2*pi*70*t)+2*sin(2*pi*120*t);
xn=x+randn(size(t));
subplot(3,1,1);plot(t,x);%原始信号
subplot(3,1,2);plot(t,xn);%污染信号
b=firls(N,f,m);
xo=filter(b,1,xn);%滤波器对xn进行滤波
subplot(3,1,3);plot(t,xo);
说了边框不能灰色
图4-1滤波器幅频特性
图4-2滤波后信号比较
结论
本文在数字滤波器的设计过程中,采用的设计方法是基于MATLAB的数字滤波器的设计。
设计过程中充分发挥了MATLAB语言编程效率高的特点以及Simulink仿真能力强的特点,完成各种计算与图形绘制工作,使得数字滤波器的设计变得简便快捷。
本文通过FIR数字滤波器的设计实例,说明如何利用MATLAB来完成数字滤波器的设计,设计结果的各项性能指标均达到指定要求,Simulink仿真验证了设计方法的正确性。
本文所述设计过程简便易行,具有很好的实际运用意义。
这是啥?
下面的
致谢
转瞬间,设计即将拉下帷幕,在这段时间内,我得到指导老师的耐心细致的帮助和谆谆教诲,并接受了老师很多宝贵意见和同组同学的无私帮助,使我能顺利完成设计,在此表示由衷的感谢。
这次设计得到了老师和同学的大力帮助,老师做事严谨,对待工作总是一丝不苟,同时老师时刻关注我们的工作进度,定期和我们进行见面交流,每一次都认真解答我们在设计中遇到的问题,这些都使我由衷的表示感谢。
参考文献
[1]陈怀深,《数字信号处理教程一MATLAB释义与实现》.北京:
电子工业出版社,2004.209-249
[2]付家才,《DSP控制工程实践技术》.北京:
化学工业出版社.2005.169-180
[3]张雄伟、陈亮,《DSP芯片的原理与开发应用》.北京:
电子工业出版社,2003.156-227
[4]童诗白、华成英.《模拟电子技术基础》.北京:
高等教育出版社,2001.345-363
[5]罗军辉、罗勇江等,《MATLAB7在数字信号处理中的应用》.北京:
机械工业出版社,2005.63-128
[6]楼顺天、李博函,《基于MATLAB的系统分析与设计一信号处理》.西安:
西安电子科技大学出版社,1998.81-88
[7]李勇、徐震等,《MATLAB辅助现代工程数字信号处理》.西安电子科技大学出版社,2002.63 -82 [8]戴逸民、梁晓雯、裴小平,《基于DSP的现代电子系统设计》.北京:
电子工业出版社.2002.5.231一271
[9]苏金明、张莲花、刘波等,《MATLAB工具箱应用》.北京:
电子工业出版社.2004. 124- 228
[10]李真芳、苏涛、黄小宇,《DSP程序开发一一MATLAB调试及目标代码生成》.西安:
西安电子科技大学出版社,2003. 87-163
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 数字滤波器