论文部分内容阅读
摘要:本文主要介绍基于DSP的数字滤波器的设计,使用CCS5000Simulator实现FTSK数据输入,使用FIR滤波器对FTSK调制信号进行处理,输出需要的波形与频谱。文中采用线性缓冲区和带移位双操作寻址的方法实现FIR滤波器。
关键词:数字滤波器;Matlab;Simulator
前言
一个实际的应用系统中,总存在各种干扰。使用DSP进行数字信号处理时,可以从噪声中提取信号,即对一个具有噪声和信号的混合源进行采样,然后经过一个数字滤波器,滤除噪声,提取有用信号;数字滤波器是DSP最基本的应用领域,也是熟悉DSP应用的重要环节。在系统设计中,滤波器的好坏将直接影响系统的性能。
FIR滤波算法实际上是一种乘法累加运算。它不断输入样本,经延时z-1,作乘法累加,再输出滤波结果y(n)。在这里使用FIR滤波器,它有以下几个特点:
·系统的单位冲激响应h(n)在有限个n值处不为零;
·系统函数H(z)在Izl>O处收敛,在Izl>O处只有零点,有限z平面只有零点,而全部极点都在z=O处;
·结构主要是非递归结构,没有输出到输入的反馈。
本次设计中FTSK输入数据中包含频率为800Hz,1200Hz,1600Hz,2021Hz,中心频率为1600Hz,提取该频率的信号。利用Matlab设计一个带通滤波器。具体参数为:采样频率为22050Hz,通带宽度为250Hz,则Fpassl=1475Hz,Fpass2=1725Hz,衰减ldb,过渡带为200Hz则Fstopl=1275Hz,Fstop2=1925Hz,阻带衰减为30db。运行Matlab获得126阶的带通滤波器,并提取系数。
用线性缓冲区和带移位双操作数寻址方法实现FIR滤波器
在这里介绍用线性缓冲区法实现z~,其特点是:
·对于N级的FIR滤波器,在数据存储区中开辟一个称之为滑窗的N个单元的缓冲区,存放最新的N个输入样本。
·从最老的样本开始,每读一个样本后,将此样本向下移位。读完最后一个样本后,输入最新样本至缓冲区的顶部。
在这里N=126,y(n)=125aix(n-i)
在数据存储区中存放系数a0-a125,并设置线性缓冲区存放输入数据。
SimuIatot仿真结果分析与硬件调试
仿真在系统调试中起着重要作用,TI公司也提供了软件仿真器(simulator)来调试程序。其中提供的探测点(Probe Point)功能非常强大,它是一个开发算法的工具,将计算机文件数据传送到目标板的buffer提供DSP软件应用,同时可以将计算结果输出到计算机文件中供分析,也可以通过CCS提供的图形窗口观察输入输出数据情况。
在本次设计中利用CCS提供的断点和探测点,指定FTSK数据文件的输入点,进行相关设定,同时利用CCS提供的图形窗口观察输入和输出的波形与频谱。运行程序,分别得到输入波形和频谱图(图1),输出波形和频谱图(图2),下面分别对这两个图形进行分析。
输入波形和频谱图
由图1输入信号的波形图可以看出,输入是有四个不同频率调制的波形。左边第一种图形在一个周期内占大约1格,而1格所占的时间为0.00605/10=0.605ms,所以周期大约为T1=0.6051=0.605m s,频率为1 652Hz。最右边的图形一个周期内约占0.8格,T2=0.605*0.8=0.484ms,频率约为2066Hz。中间的两个图形在一个周期内分别约占2格和1.3格,周期分别约为T3=0.605。2=1.2 1 m s,频率约为8 26Hz,T4=0.6051.3=0.7865ms,频率约为1271Hz。这四个频率与输人的800Hz,1200Hz,1600Hz,2021Hz基本相同。由图中的输入频谱同样可以看出有四个频率的输入波形,其频率分别约为2756。3/10=826.8Hz,2756"4.5/10=1240Hz,2756"6/10=1653Hz,2756*7.5/10=2067Hz,与输入的800Hz,1200Hz,1600Hz,2021Hz基本接近。
输出波形和频谱图
由图2中的输出信号波形图可以看出滤出的波形在一个周期中约占1格,而1格所占的时间为0.00605/10=0.605ms。频率约为1652Hz,与要求滤出1600Hz的要求接近。由图2中的频谱图可以看出滤出的频谱图的频率约在第6格,则滤出的频率约为2756*6/10=1659Hz,与所要求滤出1600Hz的要求接近。
根据以上Simulator仿真和结果分析,所设计的滤波器能够很好的满足滤波的要求。Simulator仿真是在进行系统设计中的一个重要环节,有利于提高我们进行硬件调试的成功率。
基于上面的结果,利用TMS320C5402 DSK系统板进行实验。在一个AD/DA转换的主循环中加入所设计的滤波器,调节信号发生器,对示波器进行观察,可以发现所用的滤波器能很好的满足设计要求。但程序的输入与输出数据读写语句要作相应的修改。
结语
在进行数字滤波器设计时,还需要以下几点:
·在用Matlab设计滤波器时采样频率一定要满足奈奎斯特准则。当采用带通滤波器时,通带宽度一般在200~300Hz,衰减一般为1db,过渡带一般在100-250Hz,阻带衰减一般在30db。
·使用探针方法输入数据时,一般要求输入数据是16进制的小数表示,但如果输入10进制的也可以,但需在两次确认之后才可以输入。
·在图形窗口观察结果时,如果所观察的图形不明显,可以通过设置幅度值来改善效果。
总之,滤波器设计是我们实际系统应用中重要的一方面,相比传统的R,L,c元件和运算放大器组成的块滤波器,更有发展的潜力。
关键词:数字滤波器;Matlab;Simulator
前言
一个实际的应用系统中,总存在各种干扰。使用DSP进行数字信号处理时,可以从噪声中提取信号,即对一个具有噪声和信号的混合源进行采样,然后经过一个数字滤波器,滤除噪声,提取有用信号;数字滤波器是DSP最基本的应用领域,也是熟悉DSP应用的重要环节。在系统设计中,滤波器的好坏将直接影响系统的性能。
FIR滤波算法实际上是一种乘法累加运算。它不断输入样本,经延时z-1,作乘法累加,再输出滤波结果y(n)。在这里使用FIR滤波器,它有以下几个特点:
·系统的单位冲激响应h(n)在有限个n值处不为零;
·系统函数H(z)在Izl>O处收敛,在Izl>O处只有零点,有限z平面只有零点,而全部极点都在z=O处;
·结构主要是非递归结构,没有输出到输入的反馈。
本次设计中FTSK输入数据中包含频率为800Hz,1200Hz,1600Hz,2021Hz,中心频率为1600Hz,提取该频率的信号。利用Matlab设计一个带通滤波器。具体参数为:采样频率为22050Hz,通带宽度为250Hz,则Fpassl=1475Hz,Fpass2=1725Hz,衰减ldb,过渡带为200Hz则Fstopl=1275Hz,Fstop2=1925Hz,阻带衰减为30db。运行Matlab获得126阶的带通滤波器,并提取系数。
用线性缓冲区和带移位双操作数寻址方法实现FIR滤波器
在这里介绍用线性缓冲区法实现z~,其特点是:
·对于N级的FIR滤波器,在数据存储区中开辟一个称之为滑窗的N个单元的缓冲区,存放最新的N个输入样本。
·从最老的样本开始,每读一个样本后,将此样本向下移位。读完最后一个样本后,输入最新样本至缓冲区的顶部。
在这里N=126,y(n)=125aix(n-i)
在数据存储区中存放系数a0-a125,并设置线性缓冲区存放输入数据。
SimuIatot仿真结果分析与硬件调试
仿真在系统调试中起着重要作用,TI公司也提供了软件仿真器(simulator)来调试程序。其中提供的探测点(Probe Point)功能非常强大,它是一个开发算法的工具,将计算机文件数据传送到目标板的buffer提供DSP软件应用,同时可以将计算结果输出到计算机文件中供分析,也可以通过CCS提供的图形窗口观察输入输出数据情况。
在本次设计中利用CCS提供的断点和探测点,指定FTSK数据文件的输入点,进行相关设定,同时利用CCS提供的图形窗口观察输入和输出的波形与频谱。运行程序,分别得到输入波形和频谱图(图1),输出波形和频谱图(图2),下面分别对这两个图形进行分析。
输入波形和频谱图
由图1输入信号的波形图可以看出,输入是有四个不同频率调制的波形。左边第一种图形在一个周期内占大约1格,而1格所占的时间为0.00605/10=0.605ms,所以周期大约为T1=0.6051=0.605m s,频率为1 652Hz。最右边的图形一个周期内约占0.8格,T2=0.605*0.8=0.484ms,频率约为2066Hz。中间的两个图形在一个周期内分别约占2格和1.3格,周期分别约为T3=0.605。2=1.2 1 m s,频率约为8 26Hz,T4=0.6051.3=0.7865ms,频率约为1271Hz。这四个频率与输人的800Hz,1200Hz,1600Hz,2021Hz基本相同。由图中的输入频谱同样可以看出有四个频率的输入波形,其频率分别约为2756。3/10=826.8Hz,2756"4.5/10=1240Hz,2756"6/10=1653Hz,2756*7.5/10=2067Hz,与输入的800Hz,1200Hz,1600Hz,2021Hz基本接近。
输出波形和频谱图
由图2中的输出信号波形图可以看出滤出的波形在一个周期中约占1格,而1格所占的时间为0.00605/10=0.605ms。频率约为1652Hz,与要求滤出1600Hz的要求接近。由图2中的频谱图可以看出滤出的频谱图的频率约在第6格,则滤出的频率约为2756*6/10=1659Hz,与所要求滤出1600Hz的要求接近。
根据以上Simulator仿真和结果分析,所设计的滤波器能够很好的满足滤波的要求。Simulator仿真是在进行系统设计中的一个重要环节,有利于提高我们进行硬件调试的成功率。
基于上面的结果,利用TMS320C5402 DSK系统板进行实验。在一个AD/DA转换的主循环中加入所设计的滤波器,调节信号发生器,对示波器进行观察,可以发现所用的滤波器能很好的满足设计要求。但程序的输入与输出数据读写语句要作相应的修改。
结语
在进行数字滤波器设计时,还需要以下几点:
·在用Matlab设计滤波器时采样频率一定要满足奈奎斯特准则。当采用带通滤波器时,通带宽度一般在200~300Hz,衰减一般为1db,过渡带一般在100-250Hz,阻带衰减一般在30db。
·使用探针方法输入数据时,一般要求输入数据是16进制的小数表示,但如果输入10进制的也可以,但需在两次确认之后才可以输入。
·在图形窗口观察结果时,如果所观察的图形不明显,可以通过设置幅度值来改善效果。
总之,滤波器设计是我们实际系统应用中重要的一方面,相比传统的R,L,c元件和运算放大器组成的块滤波器,更有发展的潜力。