第6章 应用程序设计DSP原理及应用课件.ppt

上传人:小飞机 文档编号:1824091 上传时间:2022-12-20 格式:PPT 页数:33 大小:752KB
返回 下载 相关 举报
第6章 应用程序设计DSP原理及应用课件.ppt_第1页
第1页 / 共33页
第6章 应用程序设计DSP原理及应用课件.ppt_第2页
第2页 / 共33页
第6章 应用程序设计DSP原理及应用课件.ppt_第3页
第3页 / 共33页
第6章 应用程序设计DSP原理及应用课件.ppt_第4页
第4页 / 共33页
第6章 应用程序设计DSP原理及应用课件.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《第6章 应用程序设计DSP原理及应用课件.ppt》由会员分享,可在线阅读,更多相关《第6章 应用程序设计DSP原理及应用课件.ppt(33页珍藏版)》请在三一办公上搜索。

1、2022/12/20,DSP原理及应用,1,第6章,内容提要 数字信号处理主要面向密集型的运算,包括乘法-累加、数字滤波和快速傅里叶变换等。C54x具备了高速完成上述运算的能力,并具有体积小、功耗低、功能强、软硬件资源丰富等优点,现已在通信等许多领域得到了广泛应用。 本章结合数字信号处理和通信中最常见、最具有代表性的应用,介绍通用数字信号处理算法的DSP实现方法,主要包括: 有限冲激响应(FIR)数字滤波器 无限冲激响应(IIR)数字滤波器 快速傅里叶变换(FFT) 正弦信号发生器。 在简要介绍上述内容的基本原理、结构和算法之后,重点介绍设计方法和DSP实现的方法。,一,二,请在这里输入您的主

2、要叙述内容,整体,概述,三,请在这里输入您的主要叙述内容,请在这里输入您的主要叙述内容,2022/12/20,DSP原理及应用,3,第6章 应用程序设计,6.1 FIR滤波器的DSP实现 6.2 IIR滤波器的DSP实现 6.3 快速傅里叶变换(FFT)的DSP实现6.4 正弦波信号发生器,2022/12/20,DSP原理及应用,4,第6章 应用程序设计,6.1 FIR滤波器的DSP实现,在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音处理、图像处理、模式识别、频谱分析等应用中的基本处理算法。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好等特点

3、。 数字滤波器是DSP的基本应用,分为有限冲激响应滤波器FIR和无限冲激响应滤波器IIR。 本节主要讨论FIR滤波器的基本结构、设计方法和DSP实现方法。,2022/12/20,DSP原理及应用,5,第6章 应用程序设计,6.1 FIR滤波器的DSP实现,6.1.1 FIR滤波器的基本结构,数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。,一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应满足常系数线性差分方程:,(6.1.1),x(n): 输入序列,y(n): 输出序列,ai、bi : 滤波器系数, N: 滤波器的阶数。,2022/12/20,

4、DSP原理及应用,6,第6章 应用程序设计,6.1.1 FIR滤波器的基本结构,在式(6.1.1)中,若所有的ai均为0,则得FIR滤波器的差分方程:,(6.1.2),对式(6.1.2)进行z变换,可得FIR滤波器的传递函数:,(6.1.3),2022/12/20,DSP原理及应用,7,第6章 应用程序设计,6.1.1 FIR滤波器的基本结构,FIR滤波器的结构 :,2022/12/20,DSP原理及应用,8,第6章 应用程序设计,设低通滤波器的截止频率为fc,采样频率为fs,则系数表达式:,2. 滤波器的设计,(6.1.14),(1) 低通滤波器的设计,2022/12/20,DSP原理及应用

5、,9,第6章 应用程序设计,高通滤波器可以由一个幅度为1的响应减去一个低通滤波的响应来获得,如图所示。,2. 滤波器的设计,(n)响应,(2) 高通滤波器的设计,1,1,fc,1,fc,(n)函数的表达式:,低通滤波,高通滤波,(n) =,1 n = 0 0 n 0,高通滤波器的系数:,2022/12/20,DSP原理及应用,10,第6章 应用程序设计,带通滤波器可以由两个截止频率不同的低通滤波器获得,如图所示。,2. 滤波器的设计,低通滤波2,(3) 带通滤波器的设计,1,1,fc1,1,fc1,低通滤波1,带通滤波,带通滤波器的系数,等于两个低通滤波器的系数之差:,fc2,fc2,fc1和

6、fc2为低通滤波器的截止频率,fs为采样频率。,2022/12/20,DSP原理及应用,11,第6章 应用程序设计,带阻滤波器可由(n)和带通滤波器相减获得,如图所示。,2. 滤波器的设计,(n)响应,(4) 带阻滤波器的设计,1,1,fc1,1,fc1,带通滤波,带阻滤波,带阻滤波器的系数:,fc2,fc2,2022/12/20,DSP原理及应用,12,第6章 应用程序设计,6.1 FIR滤波器的DSP实现,6.1.4 FIR滤波器的DSP实现,FIR滤波器的输出表达式:,y(n)=b0 x(n)+b1x(n-1)+ +bn-1x(n-N+1),(6.1.18),bi为滤波器系数,x(n)为

7、滤波器在n时刻的输入,y(n)为n时刻的输出。,基本算法: 采用乘法累加运算。即不断地输入样本x(n),经过z-1延时后,再进行乘法-累加,最后输出滤波结果y(n)。,2022/12/20,DSP原理及应用,13,第6章 应用程序设计,6.1.4 FIR滤波器的DSP实现,1. z-1算法的实现,常用的方法:,线性缓冲区法 循环缓冲区法。,(1) 线性缓冲区法,又称延迟线法。,特点:, 在数据存储器中开辟一个N单元的缓冲区(滑窗),用来存放最新的N个输入样本;, 从最老样本开始取数,每取一个数后,样本向下移位;, 读完最后一个样本后,输入最新样本并存入缓冲区的顶部。,2022/12/20,DS

8、P原理及应用,14,第6章 应用程序设计,1. z-1算法的实现,(1) 线性缓冲区法,缓冲区:,顶部为低地址单元,存放最新样本;,缓冲区顶部,最新样本,底部为高地址单元,存放最老样本;,缓冲区底部,最老样本,指针ARx指向缓冲区底部。,ARx,2022/12/20,DSP原理及应用,15,第6章 应用程序设计,(1) 线性缓冲区法,求y(n)的过程:,算法:,取数、移位和运算:, 以ARx为指针,按x(n-7)x(n)的顺序取数,每取一次数后,数据向下移一位,并完成一次乘法累加运算;, 当经过8次取数、移位和运算后,得y(n);, 求得y(n)后,输入新样本x(n+1),存入缓冲区顶部单元;

9、, 修改指针ARx,指向缓冲区的底部。,2022/12/20,DSP原理及应用,16,第6章 应用程序设计,(1) 线性缓冲区法,求y(n)的过程:,算法:,ARx,x(n-7),ARx,x(n-6),y(n)=y7=b7x(n-7)+0,x(n-6),ARx,x(n-5),y(n)=y6=b6x(n-6)+y7,x(n-5),ARx,x(n-4),y(n)=y5=b5x(n-5)+y6,x(n-4),ARx,x(n-3),y(n)=y4=b4x(n-4)+y5,x(n-3),ARx,x(n-2),y(n)=y3=b3x(n-3)+y4,x(n-2),ARx,x(n-1),y(n)=y2=b2

10、x(n-2)+y3,x(n-1),ARx,x(n),y(n)=y1=b1x(n-1)+y2,x(n),y(n)=b0 x(n)+y1,PORTR,x(n+1),ARx,结果:, y(n),2022/12/20,DSP原理及应用,17,第6章 应用程序设计,(1) 线性缓冲区法,求y(n+1)的过程:,算法:,结果:, y(n),取数顺序:,x(n-6)x(n+1),x(n-5),x(n-4),x(n-3),x(n-2),x(n-1),x(n),x(n+1),最新样本:,x(n+2),x(n+2), y(n+1), y(n+2), y(n+3), y(n+4), y(n+5), y(n+6),

11、y(n+7),ARx,2022/12/20,DSP原理及应用,18,第6章 应用程序设计,(1) 线性缓冲区法,Z-1的运算是通过执行存储器延时指令来实现的。即将数据存储器中的数据向较高地址单元移位来进行延时。,其指令:,DELAY Smem ;(Smem) Smem+1,DELAY *AR3- ;AR3指向源地址,将延时指令与其他指令结合使用,可在同样的机器周期内完成这些操作。例如:,LD + DELAY LTDMAC + DELAY MACD,2022/12/20,DSP原理及应用,19,第6章 应用程序设计,(1) 线性缓冲区法,注意:用线性缓冲区实现z-1运算时,缓冲区的数据需要移动,

12、这样在一个机器周期内需要一次读和一次写操作。因此,线性缓冲区只能定位在DARAM中。,优点:,在存储器中新老数据的位置直观明了。,2022/12/20,DSP原理及应用,20,第6章 应用程序设计,6.1.4 FIR滤波器的DSP实现,2. FIR滤波器(线性缓冲区法)的实现,C54x提供的乘法-累加指令MAC,可使FIR数字滤波器在单周期内完成每个样值的乘法 -累加计算。而每个样值的乘法-累加计算,可采用RPTZ和MACD指令来实现。,为了实现对应项乘积运算,输入的样值x(n)和滤波系数bi必须合理的存放,并正确初始化存储块和块指针。,2022/12/20,DSP原理及应用,21,第6章 应

13、用程序设计,2. FIR滤波器的实现,(1) 用线性缓冲区实现FIR滤波器,设N=7,FIR滤波器的算法:,y(n)=b0 x(n)+b1x(n-1)+b5x(n-5) +b6x(n-6),x,b,双操作数寻址指令:MACD *AR1-,b,A,功能:A=A+(AR1)(b), AR1-1AR1,(AR1)(AR1+1),AR1,x(n-6),b6,x(n-6),b6x(n-6),+A,b6x(n-6)+A,AR1,x(n-5),2022/12/20,DSP原理及应用,22,第6章 应用程序设计,(1) 用线性缓冲区实现FIR滤波器,程序清单: .title “FIR1.ASM” .mmreg

14、s .def start x .usect “x”,8 PA0 .set 0 PA1 .set 1 .data COEF: .word 1*32768/10 .word 2*32768/10 .word -4*32768/10 .word 3*32768/10 .word -4*32768/10 .word 2*32768/10 .word 1*32768/10,;提示教材错误。 自定义数据空间,x,暂存y(n),x(n-1),x(n-2),x(n-3),x(n-4),x(n-5),x(n-6),定义系数bi,COEF,b6,;定义b6=0.1,;定义b5=0.2 ;定义b4=-0.4 ;定义

15、b3=0.3 ;定义b2=-0.4 ;定义b1=0.2 ;定义b0=0.1,b5,b4,b3,b2,b1,b0,x(n),2022/12/20,DSP原理及应用,23,第6章 应用程序设计,(1) 用线性缓冲区实现FIR滤波器,程序清单: .textstart: SSBX FRCT STM #x+7,AR2 STM #6,AR0 LD #x+1,DP PORTR PA1,x+1FIR1: RPTZ A,#6 MACD *AR2-,COEF,A STH A,*AR2 PORTW *AR2+,PA0 BD FIR1 PORTR PA1,*AR2+0 .end,;设置小数乘法,;设置AR2,AR2,

16、;设置复位值AR0=6,;设置缓冲区首地址,;输入x(n),x(n),;A清0,设置迭代次数,00 0000 0000,;7次乘法累加和移位,b6x(n-6),AR2,x(n-5),A+b5x(n-5),AR2,x(n-4),A+b4x(n-4),AR2,x(n-3),A+b3x(n-3),AR2,x(n-2),A+b2x(n-2),AR2,x(n-1),A+b1x(n-1),x(n),A+b0 x(n),AR2,AR2,y(n-1),;暂存y(n),y(n),;输出y(n),修改AR2,AR2,;循环,;输入最新数据, 修改AR2=AR2+AR0,x(n+1),AR2,2022/12/20,

17、DSP原理及应用,24,第6章 应用程序设计,1. z-1算法的实现,(2)循环缓冲区法,特点:, 在数据存储器中开辟一个N个单元的缓冲区(滑窗),用来存放最新的N个输入样本; 从最新样本开始取数; 读完最老样本后,输入最新样本来代替最老样本,而其他数据位置不变; 用BK寄存器对缓冲区进行间接寻址,使缓冲区地址首尾相邻。,2022/12/20,DSP原理及应用,25,第6章 应用程序设计,(2)循环缓冲区法,缓冲区:,顶层为低地址单元,存放最新样本;,x(n),底层为高地址单元,存放最老样本;,x(n-7),x(n-1),x(n-2),x(n-3),x(n-4),x(n-5),x(n-6),A

18、Rx指向最新样本单元。,ARx,算 法:,计算过程:, 以ARx为指针,按顺序取数,并修改指针;,x(n),ARx,x(n-1),ARx,x(n-2),ARx,x(n-3),ARx,x(n-4),ARx,x(n-5),ARx,x(n-6),ARx,x(n-7),ARx, 每取1次数后,完成1次乘法累加计算;,y(n)=y0=b0 x(n)+0,y(n)=y1=b1x(n-1)+y0,y(n)=y2=b2x(n-2)+y1,y(n)=y3=b3x(n-3)+y2,y(n)=y4=b4x(n-4)+y3,y(n)=y5=b5x(n-5)+y4,y(n)=y6=b5x(n-6)+y5,y(n)=y7

19、=b5x(n-7)+y6,2022/12/20,DSP原理及应用,26,第6章 应用程序设计,(2)循环缓冲区法,算 法:,计算过程:, 每取1次数后,完成1次乘法累加计算;, 求得y(n)后,输入新样本替代最老样本;,x(n+1),x(n+1), 修改指针ARx,指向最新样本单元。,ARx, 求y(n):,取数顺序:x(n)x(n-7),最新样本:x(n+1),ARx:指向x(n+1)单元, 求y(n+1):,取数顺序:x(n+1)x(n-6),最新样本:x(n+2),ARx:指向x(n+2)单元, 求y(n+2):,取数顺序:x(n+2)x(n-5),最新样本:x(n+3),ARx:指向x

20、(n+3)单元,2022/12/20,DSP原理及应用,27,第6章 应用程序设计,(2)循环缓冲区法,循环缓冲区的优点:, 缓冲区数据不需要移动; 可以使用SARAM存储器。,实现N个循环缓冲区单元首尾相邻,可用BK寄存器按模间接寻址来实现。,常用指令:, *ARx+%,;增量、按模修正ARx addr=ARx,ARx=circ(ARx+1), *ARx-%,;减量、按模修正ARx addr=ARx,ARx=circ(ARx-1), *ARx+0%,;增AR0、按模修正ARx addr=ARx,ARx=circ(ARx+AR0), *ARx-0%,;减AR0、按模修正ARx addr=ARx

21、,ARx=circ(ARx-AR0), *+ARx(1K)%,;加(1K)、按模修正ARx addr=circ(ARx+1K),ARx=circ(ARx+1K),2022/12/20,DSP原理及应用,28,第6章 应用程序设计,(2)循环缓冲区法,circ是根据BK寄存器中的缓冲区长度,对(ARx +1)、(ARx-1)、(ARx+AR0)、(ARx-AR0)和(ARx+1k)的值进行取模,使指针ARx指向缓冲区,实现循环缓冲区首尾相邻。,例如:(BK)=N=8,(AR1)=0060h,用*AR1+%间接寻址。,第一次寻址后,AR1指向0061h单元; 第二次寻址后,AR1指向0062h单元

22、; 第八次寻址后,AR1指向0068h单元; 将BK按8取模,AR1回到0060h单元。,2022/12/20,DSP原理及应用,29,第6章 应用程序设计,(2)循环缓冲区法,循环寻址的算法:,if 0index+step BK index=index+step else if index+stepBK index=index+step-BK else if index+step 0 index=index+step+BK,index:存放在辅助寄存器中的地址指针; step:步长,可正可负,|step|BK。,2022/12/20,DSP原理及应用,30,第6章 应用程序设计,2. FIR滤波器的实现,(2) 用循环缓冲区实现FIR滤波器,设N=7,FIR滤波器的算法:,y(n)=b0 x(n)+b1x(n-1)+b5x(n-5) +b6x(n-6),y,b0,xn,提问与回答用思想传递正能量,结束语CONCLUSION感谢参与本课程,也感激大家对我们工作的支持与积极的参与。课程后会发放课程满意度评估表,如果对我们课程或者工作有什么建议和意见,也请写在上边,来自于您的声音是对我们最大的鼓励和帮助,大家在填写评估表的同时,也预祝各位步步高升,真心期待着再次相会!,谢谢聆听THANK YOU FOR LISTENING演讲者:XX 时间:202X.XX.XX,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号