DSP技术 电子通信

上传人:206****923 文档编号:56887361 上传时间:2018-10-16 格式:PPT 页数:91 大小:699KB
返回 下载 相关 举报
DSP技术 电子通信_第1页
第1页 / 共91页
DSP技术 电子通信_第2页
第2页 / 共91页
DSP技术 电子通信_第3页
第3页 / 共91页
DSP技术 电子通信_第4页
第4页 / 共91页
DSP技术 电子通信_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《DSP技术 电子通信》由会员分享,可在线阅读,更多相关《DSP技术 电子通信(91页珍藏版)》请在金锄头文库上搜索。

1、1,第六章 应用程序设计,一、FIR滤波器的DSP实现 二、IIR滤波器的DSP实现 三、FFT运算的DSP实现 四、正弦波信号发生器,2,一、FIR滤波器的DSP实现,数字信号处理主要是面向实时密集型数据运算,滤波在数字信号处理中占有极其重要的地位。用DSP芯片实现数字滤波具有稳定性好、精确度高、不受环境影响,以及灵活性好等突出优点。数字滤波又称为程序滤波,其功能是将输入的数字信号通过一定的运算关系(程序实现)变为所需要的输出信号,也即:实现数字滤波就必须把输入输出信号关系转变成可实现的数学模型或算法。,3,离散系统的输入输出关系有几种不同的描述方法,例如:时域卷积、差分方程、频域的离散傅立

2、叶变换、复频域的Z变换等,最常用的描述离散系统的数学形式是系统函数H(Z)或差分方程。数字系统可以分为:无限冲激响应系统(IIR)和有限冲激响应系统(FIR)。IIR系统因为与过去输出有关,所以网络结构有反馈支路称为递归结构,FIR系统只与激励有关没有反馈支路,称为非递归结构。,4,IIR系统的系统函数H(Z)有极点,FIR系统的系统函数H(Z)只有零点;IIR系统的差分方程y(n)除了与当前及以往的激励有关,还与以前的输出有关,FIR系统的差分方程y(n)只与当前及以往的激励有关,而与过去的输出无关;IIR系统的单位冲激响应h(n)有无穷多项,FIR系统的h(n) 只有有限项;,5,1FIR

3、滤波器基本概念,FIR滤波器的系统函数为没有反馈回路,因此它是稳定系统,其单位冲激响应h(n)是一个有限长序列。FIR系统的差分方程为实际上是一种乘法累加运算。,6,FIR滤波器的基本结构图:由结构图看出,实际算法由一组基本运算单元:乘法器、加法器、延迟器组成。显然,最主要的问题是延迟环节如何实现。,7,2. FIR滤波器中z-1的实现,对于N级的FIR滤波器,在数据存储器中开辟一个称为滑窗的N个单元的线性数据缓冲区,存放最新的N个输入样本;从最老的样本开始,每读一个样本后,将此样本向下移位,读完最后一个样本后,输入最新样本至缓冲区的顶部。用线性缓冲区实现z-1的优点是,新老数据在存储器中存放

4、的位置直接明了。,(1)用线性缓冲区法实现z-1,N=6的线性缓冲区存储器图,9,C54x片内没有I/O资源,CPU通过外部译码可以寻址64K的I/O空间。 有两条实现输入和输出的指令: PORTR PA, Smem ;将PA端口的内容送;数据存储器Smem PORTW Smem, PA ;将地址为Smem的数据;存储器内容送端口PA,数据的输入/输出,10,使用存储器延时指令DELAY,可以将数据存储单元中的内容向较高地址的下一单元传送。 实现z-1的运算指令为: DELAY Smem ;(Smem)Seme+1,数据存储器;单元的内容复制下一高地址单元 DELAY *AR2 ;AR2指向源

5、地址,即将AR2所指单;元内容复制到下一高地址单元中;延时指令与其它指令结合 LD+DELAYLTD指令 ;单数据存储器的值装入;T寄存器并送下一单元延时 MAC+DELAYMACD指令 ;乘加延迟,存储器的延时操作,11,在数据存储器中开辟一个称为滑窗的N个单元的循环缓冲区,循环缓冲区地址首尾相邻:滑窗中存放最新的N个输入样本,每次输入新样本时,以新样本改写滑窗中最老的数据,而滑窗中的其它数据不移动;利用片内循环缓冲区长度寄存器对滑窗进行间接寻址。利用循环缓冲区实现Z-1的优点是不需要移动数据,不存在一个机器周期中要求能一次读和一次写的数据存储器,因而可以将循环缓冲区定位在数据存储器的任何位

6、置(线性缓冲区要求定位在DARAM)。,(2)用循环缓冲区法实现z-1,N=6的循环缓冲区存储器图,13,3FIR滤波器的DSP实现方法,FIR滤波器的输出表达式写为y(n)=b0x(n)+b1x(n-1)+bn-1x(n-N+1) 其结构图,FIR滤波算法实际上是一种乘累加运算。它不断地从输入端读入样本值 xn,经延时(z-1)后做乘法累加,输出滤波结果yn。,14,FIR滤波算法实际上是一种乘累加运算。它不断地从输入端读入样本值 xn,经延时(z-1)后做乘法累加,输出滤波结果yn。C54x通过两种方法实现FIR滤波器的延迟:1. 线性缓冲区法2. 循环缓冲区法 3.系数对称FIR滤波器的

7、实现方法,15,例:编写N=5的y(n)计算程序。 y(n)=a0*x(n)+a1*x(n-1)+a2*x(n-2)+a3*x(n-3)+a4*x(n-4), 先将系数a0a4存放在数据存储器中,然后设置线性缓冲区,用以存放输入和输出数据。,(1)用线性缓冲区和直接寻址方法实现FIR,线性缓冲区安排:,.title “FIR1.ASM” ;定义源程序名.mmregs ;定义存储器映象寄存器.def start ;定义语句标号start.bss y,1 ;为结果y预留1个单元的空间 XN .usect “XN”,1 ;在自定义的未初始化段“XN” XNM1 .usect “XN”,1 ;中保留5

8、个单元的空间 XNM2 .usect “XN”,1 XNM3 .usect “XN”,1 XNM4 .usect “XN”,1 A0 .usect “A0”,1 ;在自定义的未初始化段“A0” A1 .usect “A0”,1 ;中保留5个单元的空间 A2 .usect “A0”,1 A3 .usect “A0”,1 A4 .usect “A0”,1 PA0 .set 0 ;定义PA0为输出端口 PA1 .set 1 ;定义PA1为输入端口,.data table: .word 1*32768/10 ;假定程序空间有五个参数.word -3*32768/10.word 5*32768/10.w

9、ord -3*32768/10.word 1*32768/10.text start: SSBX FRCT ;设置进行小数相乘STM #A0,AR1 ;将数据空间用于放参数的首地址送AR1RPT #4 ;重复下条指令5次传送MVPD table,*AR1+ ;传送程序空间的系数到数据空间LD #XN,DP ;设置数据存储器页指针的起始位置 PORTR PA1,XN ;从数据输入端口I/O输入最新数据x(n) FIR1: LD XNM4,T ;x(n-4)T,MPY A4,A ;a4*x(n-4)A LTD XNM3 ;x(n-3)T, x(n-3)x(n-4) MAC A3,A ;A+a3*x

10、(n-3)A LTD XNM2 ;x(n-2)T, x(n-2)x(n-3) MAC A2,A ;A+a2*x(n-2)A LTD XNM1 ;x(n-1)T, x(n-1)x(n-2) MAC A1,A ;A+a1*x(n-1)A LTD XN ;x(n)T, x(n)x(n-1) MAC A0,A ;A+a0*x(n)A STH A,y ;保存y(n)的高字节 PORTW y,PA0 ;输出y(n) BD FIR1 ;执行完下条指令后循环(带延迟转移) PORTR PA1,XN ;输入新的x(n) .end,vectors.obj fir1.obj -o fir1.out -m fir1.

11、map -e start MEMORY PAGE 0 : EPROM: org=01OOOH len=01000HVECS: org=03F80H len=00080HPAGE 1 : SPRAM: org=00060H len=00020HDARAM: org=00080H len=01380H SECTIONS .vectors: VECS PAGE 0.text: EPROM PAGE 0 .data: EPROM PAGE 0.bss: SPRAM PAGE 1.XN: DARAM align(8) PAGE 1.A0: DARAM align(8) PAGE 1 ,20,(2)用线性

12、缓冲区和间接寻址方法实现FIR,例:编写y(n)=a0*x(n)+a1*x(n-1)+a2*x(n-2)+a3*x(n-3)+a4*x(n-4),的计算程序,其中N=5。,将系数a0a4存放在数据存储器中,并设置线性缓冲区存放输入数据。利用AR1和AR2分别作为间接寻址线性缓冲区和系数区的辅助寄存器。,.title “FIR2.ASM” ;定义源程序名.mmregs ;定义存储器映象寄存器 .def start ;定义语句标号start.bss y,1 ;为结果y预留1个单元的空间 x .usect “x”,5 ;在自定义的未初始化段“x”中保留5个单元的空间 a .usect “a”,5 ;

13、在自定义的未初始化段“a”中保留5个单元的空间 PA0 .set 0 ;定义PA0为输出端口 PA1 .set 1 ;定义PA1为输入端口.data table: .word 2*32768/10 ;假定程序空间有五个参数.word -3*32768/10.word 4*32768/10.word -3*32768/10.word 2*32768/10,.text start: SSBX FRCT ;小数相乘STM #a,AR2 ;将数据空间用于放系数的首地址送AR2RPT #4 ;重复下条指令5次传送MVPD table,* AR2+ ;传送程序空间的系数到数据空间 STM #x4, AR1

14、 ;AR1指向x(n-4)STM #a4, AR2 ;AR2指向a4STM #4, AR0 ;指针复位值4AR0LD #x, DP ;设置数据存储器页指针的起始位置PORTR PA1,x ;从端口PA1输入最新值x(n),FIR2: LD *AR1-, T ;x(n-4)TMPY *AR2-, A ;a4*x(n-4)ALTD *AR1- ;x(n-3)T, x(n-3)x(n-4)MAC *AR2-, A ;A+a3*x(n-3)ALTD *AR1- ;x(n-2)T, x(n-2)x(n-3)MAC *AR2-, A ;A+a2*x(n-2)ALTD *AR1- ;x(n-1)T, x(n-1)x(n-2)MAC *AR2-, A ;A+a1*x(n-1)ALTD *AR1 ;x(n)T, x(n)x(n-1)MAC *AR2+0, A ;A+a0*x(n)A ,AR2复原,指向a4STH A,y ;保存运算结果的高位字到y(n)PORTW y(n),PA0 ;将结果y(n)输出到端口PA0BD FIR2 ;执行完下条指令后,从FIR2开始循环PORTR PA1,*AR1+0 ;输入新值x(n), AR1复原指向x4 .end,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号