基于DSP C54x的数字滤波器设计
一个实际的应用系统中,总存在各种干扰。使用DSP进行数字信号处理时,可以从噪声中提取信号,即对一个具有噪声和信号的混合源进行采样,然后经过一个数字滤波器,滤除噪声,提取有用信号;数字滤波器是DSP最基本的应用领域,也是熟悉DSP应用的重要环节。在系统设计中,滤波器的好坏将直接影响系统的性能。
<P>       <STRONG>数字滤波器的基本理论和设计 </STRONG></P>
<P>       对于数字滤波器的系统函数可以表示为:</P>
<P>        <IMG height=88 src="http://www.dzdqw.com/jishu/UploadFiles_9637/200610/20061010223210102.gif" width=181 border=0><BR>       可以直接写成表示输出与输入的关系,即常系数线性差分方程:以下是IIR滤波器的表达式</P>
<P>       <IMG height=45 src="http://www.dzdqw.com/jishu/UploadFiles_9637/200610/20061010223210531.gif" width=224 border=0><BR>       当全部 <IMG height=45 src="http://www.dzdqw.com/jishu/UploadFiles_9637/200610/20061010223210833.gif" width=191 border=0>, 即系统函数和单位抽样响应,则系统是FIR。 </P>
<P>       其滤波结构图如图一所示——横向滤波结构 <BR><BR>     <IMG style="WIDTH: 553px; HEIGHT: 243px" height=243 alt=横向滤波器结构图 hspace=0 src="http://www.dzdqw.com/jishu/UploadFiles_9637/200610/20061010223210609.gif" width=553 border=0></P>
<P>                                                     图一 横向滤波器结构图</P>
<P>       FIR滤波算法实际上是一种乘法累加运算。它不断输入样本,经延时 ,作乘法累加,再输出滤波结果y(n)。在这里使用FIR滤波器,它有以下几个特点: <BR><BR>       (1)    系统的单位冲激响应h(n)在有限个n值处不为零; <BR><BR>       (2)    系统函数H(z)在|z|>0处收敛,在|z|>0处只有零点,有限z平面只有零点,而全部极点都在z=0处; <BR><BR>       (3)    结构主要是非递归结构,没有输出到输入的反馈。 </P>
<P>       这本次设计中FTSK输入数据中包含频率为800HZ,1200HZ,1600HZ,2021HZ,中心频率为1600HZ,提取该频率的信号。利用Matlab设计一个带通滤波器。具体参数为:采样频率为22050HZ,通带宽度为250HZ,则Fpass1=1475HZ,Fpass2=1725HZ,衰减1db,过渡带为200HZ则Fstop1=1275HZ,Fstop2=1925HZ,阻带衰减为30db。运行Matlab获得126阶的带通滤波器,并提取系数。 </P>
<P>       用线性缓冲区和带移位双操作数寻址方法实现FIR滤波器 </P>
<P>       在这里介绍用线性缓冲区法实现 ,其特点是: <BR><BR>       (1)    对于N级的FIR滤波器,在数据存储区中开辟一个称之为滑窗的N个单元的缓冲区,存放最新的N个输入样本。 <BR><BR>       (2)    从最老的样本开始,每读一个样本后,将此样本向下移位。读完最后一个样本后,输入最新样本至缓冲区的顶部。 <BR><BR>       在这里N=126,y(n)=  <IMG height=45 src="http://www.dzdqw.com/jishu/UploadFiles_9637/200610/20061010223210228.gif" width=84 border=0> <BR></P>
相关资讯