基于DSP的FIR数字滤波器的设计.pdf
《基于DSP的FIR数字滤波器的设计.pdf》由会员分享,可在线阅读,更多相关《基于DSP的FIR数字滤波器的设计.pdf(6页珍藏版)》请在冰点文库上搜索。
http:
/-1-基于基于DSP的的FIR数字滤波器的设计数字滤波器的设计陈永泰,李蕾武汉理工大学信息工程学院,武汉(430070)E-mail:
摘要摘要:
文章设计了一种基于TI公司的DSP(TMS320VC5402)的FIR数字滤波器系统。
主要包括了DSP最小系统电路设计、AD和DA转换接口电路设计,并给出了系统初始化程序设计和FIR程序设计。
关键词关键词:
FIR,DSP,数字滤波器中图分类号:
中图分类号:
TN7131.引言引言数字滤波器在数字通信、语音图象处理、谱分析、模式识别、自动控制等领域得到了广泛的应用。
相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等。
和IIR滤波器相比,FIR滤波器可以得到严格的线性相位。
而且FIR滤波器可以用非递归方法实现,有限精度的计算不会产生振荡,同时由于量化舍入以及系数的不准确所引起的误差的影响比IIR滤波器要小得多。
再者FIR滤波器可采用FFT算法,在相同阶数下,运算速度可以快得多1。
2.所用所用FIR滤波器结构滤波器结构本文中的FIR滤波器采用直接型结构,又称为卷积型结构。
有限长单位脉冲响应滤波器的系统函数为:
=10)()(NnnznhzH其差分方程为:
=10)()()(Nkknxkhny其结构图如图1所示:
图1FIR滤波器直接型结构图3.FIR数字滤波器硬件电路设计数字滤波器硬件电路设计本系统的具体硬件方案框图如图2。
http:
/-2-图2FIR数字滤波器系统方案框图在本系统设计中采用了TI的TMS320VC5402作为其核心处理单元。
TMS320VC5402为低功耗定点数字信号处理器,其运算速度最快可达532MIPS。
它采用先进的修正哈佛结构,片内共有8条总线(1条程序存储器总线、3条数据存储总线和4条地址总线)。
其CPU采用并行结构设计,使其能在一条指令周期内,高速地完成多项算术运算。
TMS320VC5402的丰富的片上外围电路(通用I/O引脚,定时器,时钟发生器,HPI接口,多通道缓冲串行口McBSP)使其与外部接口方便2。
TMS320VC5402的片上包含两个McBSP(多通道缓冲串行口)接口,可以将这两个通道模仿实现SPI的时序,因此本设计中采用了SPI接口器件实现数据的模数转换和数模转换。
在本数字滤波器系统中选择了TI公司的TLV1570芯片作为模数转换器件,8通道10位2.7到5.5V低电压模数转换芯片。
TLVl570在3V电压下的采样频率为625KSPS,输入信号最高频率不能超过300K3。
图3为TLV1570的功能时序图。
其功能时序图如下:
图3TLV1570功能时序图从功能时序图可以看出该器件包含8通道输入多路复用器、高速的10位ADC、内部的电压参考源和高速的串行接口。
其高速串行接口包含五根信号线:
SCLK串行时钟输入、SDIN串行数据输入、SDOUT串行数据输出、FS帧同步信号、CS#片选信号。
其中每个取样和转换过程需要16个系统工作时钟。
由于模数转换选择了10位器件,为了简化程序代码,减少DSP的运算工作量,在本数字滤波器系统中选择了TI公司的TLV5608芯片,它是一款8通道10位2.7到5.5V低电压数模转换芯片4。
图4为TLV5608的功能时序图。
http:
/-3-其功能时序图如下:
图4TLV5608功能时序图从功能时序图可以看出该器件包含高速的10位ADC、内部的电压参考源和高速的串行接口。
TLV5608的高速串行接口包含四根信号线:
SCLK串行时钟输入、SDIN串行数据输入、SDOUT串行数据输出、FS帧同步信号、CS#片选信号。
通常一个DSP系统除了DSP芯片外,还需要外部的存储器。
外部存储器一般有两种,一种是存储程序和固定数据的EPROM/PROM,一种是可读可写的快速RAM。
目前市场上的EPROM工作电压一般为5V,与3.3VDSP芯片相接时需要考虑电平转换,而且体积较大。
FLASH存储器与EPROM相比,具有更高的性能价格比,而且体积小、功耗低、可电擦写,使用比较方便,3.3VFlash可直接与DSP相接。
因此本设计中采用Flash存储器存储程序和固定数据。
在本系统的设计中采用了两片AMS1117来提供DSP芯片的I/O电源和内核电源。
AMS1117为最大输出电流可达800mA的LDO(LowDropoutVoltageRegulator),包含1.8V,3.3V等固定电压输出几种类型。
系统在工作状态下,逻辑电平在不停的快速发生变化,因此系统的电源也会出现不同程度的波动,为保证系统的电源完整性,在输入5V电源、3.3V电源、1.8V电源的输出处都增加了大容量的储能电容,在所有芯片的各个电源管脚处都增加了去藕电容。
由于本系统的最高频率达到了100MHz,在高速运行过程中可能会出现信号完整性(SI)的问题,因此PCB设计过程在高速信号的终端都增加了小电阻或排阻进行阻抗匹配,匹配电阻必须靠近高速信号的源驱动端。
为了避免数字信号藕合到模拟电路中,在系统的设计中将模拟地和数字地分开,并对所有的模拟信号的走线都进行了加宽处理。
4.FIR数字滤波器软件实现数字滤波器软件实现在DSP进行数字滤波运算前必须进行一些初始化程序。
在本系统中初始化程序主要包括:
DSP芯片的初始化、矢量表初始和两个串行端口的初始化。
对寄存器进行初始化主要包括:
状态寄存器ST0、状态寄存器ST1、处理器模式控制寄存器PMST、软件等待状态寄存器SWWSR、组交换控制寄存器BSCR和时钟模式寄存器CLKMD。
中断矢量表是每个DSP系统必须用到的,对中断矢量表进行初始化是DSP初始化的一个重要的组成部分,正确设置中断矢量包括:
1)根据DSP芯片对各中断矢量的设置位置编写一个子程序。
2)设置PMST控制寄存器。
3)连接时将矢量表重定位到IPTR指定的地址。
http:
/-4-TMS320VC5402芯片包含两个多通道缓冲串行口,在本系统的设计中两个串行口分别接DA和AD芯片。
McBSP通过一系列存储器映射控制寄存器来进行配置和操作。
TMS320C54X定点DSP提供了单周期乘/累加指令MAC和循环寻址方式,使FIR数字滤波器每个样值的计算可以在一个周期内完成。
FIR数字滤波器每个样值的计算就是实现两数组对应项乘积的累加和。
采用RPTZ和MAC指令结合循环寻址方式可以方便地实现这一运算:
RPTZ累加器,N-1MAC(双访问数据),(双访问数据),累加器其中,RPTZ指令将累加器清零初始化,并将立即数N-1(16位)装入到重复计数器,使下一条指令重复执行N次。
MAC指令实现将两存储区数据的乘积累加到累加器,再通过存储区指针以循环寻址的方式指向下一个存储区5。
为了实现对应项相乘,输入样值x(n)和滤波器系数h(n)必须合理存放,并正确初始化这两个存储块指针。
图5中是输入样值x(n)和滤波器系数h(n)在TMS320C54x的一种存放方法,图(a)是滤波器系数的存储器组织,图(b)是滤波前输入样值的存放顺序,图(c)是滤波后输入样值的存放顺序。
图5TMS320VC5402实现FIR滤波器的存储器组织利用DSP实现FIR数字滤波的子程序设计思路如下:
1、查询SPCR11寄存器的第二位,当为1时说明readready,将DRR11的值读入AR3所指向的地址,该值为最新的采样值。
2、将最新的采样值减去200h,然后AR3的值减一。
3、执行MAC指令。
4、将累加器的值送给变量Y,并将Y加上200h。
5、查询SPCR20寄存器的第二位,当为1时说明writeready,将Y值赋给DXR10,该值为滤波器输出值。
6、循环执行上面步骤。
图6是利用DSP实现数字滤波的流程图。
http:
/-5-图6DSP实现FIR数字滤波器流程图5.调试与结论调试与结论5.1硬件调试中要注意到的问题硬件调试中要注意到的问题在本系统的硬件调试中主要测试步骤如下:
首先测量电路板的电源和地是否有短路现象,电路板上所采用器件多为小封装器件,管脚间距小,容易出现短路现象,焊接完成后要认真检查。
系统上电检测,上电前应该首先检查电源的正负极性及输入电压的幅度,然后上电。
上电后应快速检测电路板上主要电源芯片的输出电压和DSP内核电压,以免损坏电路板上器件。
检测系统的复位信号是否工作正常,系统在复位后部分器件会检测自身的工作状态。
用示波器查看系统中主要的时钟信号的波形,包括DSP输入时钟信号、DSP输出时钟信号、ADC和DAC的系统时钟信号及帧同步时钟信号(需要结合DSP的开发环境和仿真器进行测试)。
测量所准备的测试信号源的工作电压和工作频率是否在系统的允许范围内。
5.2软件调试中要注意到的问题软件调试中要注意到的问题利用TMS320VC5402实现FIR的程序中应注意以下几点:
1.数据定标。
输入数据和滤波器系数均小于1,以Q15表示,将FRCT标志置1,输入数据与滤波器系数乘完后结果自动左移一位,和累加器并取高16位输出。
2.数据存放要求。
输入数据块和系数块都要放在双寻址数据存储区,起始地址为m位地址边界(2mN)。
3.循环寻址的使用。
为了使用循环寻址,还要设置BK为块长N。
由于使用了循环寻址,数据和系数的指针在操作后以循环的方式增1。
4.数据的初始化。
输入数据块要初始化为全0。
利用TMS320VC5402的FIRS指令和循环寻址,可以更简洁的方法实现对称抽头的FIR滤波器。
5.3结果结果当给系统送入一个包含lk,3k,5k的正弦波模拟信号源作为系统的输入信号源,并将MATLAB仿真得到的低通数字滤波器的系数带入所编写的程序代码中,编译运行后实验结开始DSP初始化McBSPO初始化McBSP1初始化将h(n)的值附给相应的循环缓冲区,将x(n)对应循环缓冲区的值清零。
TLV5608初始化TLV1507初始化循环执行滤波程http:
/-6-果符合预期结果。
图7为实验结果图。
图7(a)输入信号图7(b)滤波后信号参考文献参考文献1姚天任,孙洪.现代数字信号处理M.武汉:
华中科技大学出版社,1999,112戴明桢,周建江.TMS320C54XDSP结构、原理及应用M.北京:
北京航空航天大学出版社,2002,33TLV1570sDataSheet.TI.20004TLV5608sDataSheet.TI.20005张雄伟,陈亮,徐光辉.DSP芯片的原理与开发应用M.北京:
电子工业出版社,2003,2DesignofFIRDigitalFilterUsingDSPChenYongtai,LiLeiDepartmentofInformationEngineering,WuhanUniversityofTechnology,Wuhan(430070)AbstractThispaperhavedesignedakindofFIRdigitalfilterbasedondigitalsignalprocessor(TMS320VC5402)ofTI.MainlycontainedwiththeleastsystemdesignofDSP,thedesignofconversioncircuitofanalogsignalstodigitalsignalsandtheconversioncircuitofdigitalsignalstoanalogsignals.Theprogrammerofinitializesystem,andprogrammerdesignofFIRisgiven.Keywords:
FIR,DSP,digitalfilter