DSP技术典型应用实例

上传人:M****1 文档编号:585427393 上传时间:2024-09-02 格式:PPT 页数:46 大小:552.50KB
返回 下载 相关 举报
DSP技术典型应用实例_第1页
第1页 / 共46页
DSP技术典型应用实例_第2页
第2页 / 共46页
DSP技术典型应用实例_第3页
第3页 / 共46页
DSP技术典型应用实例_第4页
第4页 / 共46页
DSP技术典型应用实例_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《DSP技术典型应用实例》由会员分享,可在线阅读,更多相关《DSP技术典型应用实例(46页珍藏版)》请在金锄头文库上搜索。

1、第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 1第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 8.1DSP最小系统电路设计最小系统电路设计8.2正弦波信号发生器设计正弦波信号发生器设计8.3语音信号采集语音信号采集8.4步进电动机的步进电动机的DSP控制控制8.5Matlab语言在语言在DSP设计中的应用设计中的应用本章小结本章小结习习题题9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 28.1DSP最小系统电路设计最小

2、系统电路设计 C5490内部具有16K16bit的ROM和32K16bit的RAM。芯片内部RAM和ROM可根据PMST寄存器中的OVLY、DROM位灵活设置。数据区,00H5FH为存储器映射寄存器,60H70H为双寻址RAM(DARAM),80H1FFFH为DARAM,2000H7FFFH为单寻址RAM(SARAM)。当DROM=1时,内部的C000HFFFFH同时被映射在数据区。当OVLY=1时,内部的80H1FFFH和2000H7FFFH同时被映射为程序区。FF80H开始存储固有的中断矢量,当芯片工作在微计算机模式时,起始地址为C000H的16K16bit ROM也被映射到程序区。8.1

3、.1TMS320C5409芯片芯片 C5409具有一个可屏蔽存储器保护选项,用来保护片内存储器的内容。当选定此项时,所有外部产生的指令都不能访问片内存储器空间。9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 3 JTAG仿真口连接需要和仿真器上给出的端子一致。8.1.2JTAG仿真口的连接仿真口的连接 如果DSP和仿真器之间的连接电缆超过6in,采用如图所示接法,在数据传输端加一驱动。在大多数情况下,只要板子和仿真器之间的连接电缆不超过6in,数据传输端可不加驱动。DSP的EMU0和EMU1端需要用电阻上拉,推荐阻值为或10k

4、。 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 4 在TI公司的DSP系列中,C2xx系列、C54x采用单一5V电源供电;而C54xx采用和电源供电,其中I/O采用电源供电,芯片内核电压采用电源供电。而实际常用的只有5V电源,所以必须采用电源转换芯片。 TPS73xx系列是TI公司为了配合DSP而设计的电源转换芯片,下面着重介绍TPS7301的应用,其硬件接线如图所示。8.1.3电源转换芯片电源转换芯片9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 5图8

5、.4 晶振的接线图8.1.4时钟信号的接入时钟信号的接入 C54xx系列时钟端子为X1和X2/CLKIN,如果采用无源晶振,用这两个端子就可以了,接法如图8.4(a)所示。如果采用有源晶振,直接连接X2端子,接法如图8.4(b)所示。9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 6 正弦波信号正弦波信号正弦波信号正弦波信号发发生器生器生器生器设计设计 正弦波信号发生器已被广泛地应用于通信、仪器仪表和正弦波信号发生器已被广泛地应用于通信、仪器仪表和正弦波信号发生器已被广泛地应用于通信、仪器仪表和正弦波信号发生器已被广泛地应用于

6、通信、仪器仪表和工业控制等领域的信号处理系统中。工业控制等领域的信号处理系统中。工业控制等领域的信号处理系统中。工业控制等领域的信号处理系统中。用用用用DSPDSP实现正弦波信号发生器通常有三种方法:实现正弦波信号发生器通常有三种方法:实现正弦波信号发生器通常有三种方法:实现正弦波信号发生器通常有三种方法:(1)(1)查表法查表法查表法查表法 将某个频率的正弦将某个频率的正弦将某个频率的正弦将某个频率的正弦/ /余弦值计算出来后制成一个表,余弦值计算出来后制成一个表,余弦值计算出来后制成一个表,余弦值计算出来后制成一个表,通过查表的方式来实现正弦波,主要用于对精度要求不很高的通过查表的方式来实

7、现正弦波,主要用于对精度要求不很高的通过查表的方式来实现正弦波,主要用于对精度要求不很高的通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。场合。场合。场合。(2)(2)泰勒级数展开法泰勒级数展开法泰勒级数展开法泰勒级数展开法 根据泰勒展开式进行计算来实现正弦信根据泰勒展开式进行计算来实现正弦信根据泰勒展开式进行计算来实现正弦信根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较号,它能精确地计算出一个角度的正弦和余弦值,且只需要较号,它能精确地计算出一个角度的正弦和余弦值,且只需要较号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空

8、间。小的存储空间。小的存储空间。小的存储空间。(3)(3)迭代法迭代法迭代法迭代法 利用数字震荡器通过迭代方法产生正弦信号。利用数字震荡器通过迭代方法产生正弦信号。利用数字震荡器通过迭代方法产生正弦信号。利用数字震荡器通过迭代方法产生正弦信号。 本节主要介绍用泰勒级数展开法来实现正弦波信号。本节主要介绍用泰勒级数展开法来实现正弦波信号。本节主要介绍用泰勒级数展开法来实现正弦波信号。本节主要介绍用泰勒级数展开法来实现正弦波信号。 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 7 产生正弦波的算法产生正弦波的算法产生正弦波的算法

9、产生正弦波的算法 取泰勒级数的前取泰勒级数的前取泰勒级数的前取泰勒级数的前5 5 5 5项,得近似计算式:项,得近似计算式:项,得近似计算式:项,得近似计算式: 正弦函数和余弦函数可以展开成泰勒级数,其表达式:正弦函数和余弦函数可以展开成泰勒级数,其表达式:正弦函数和余弦函数可以展开成泰勒级数,其表达式:正弦函数和余弦函数可以展开成泰勒级数,其表达式: 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 8由式由式由式由式(3)(3)和由式和由式和由式和由式(4)(4)可推导出可推导出可推导出可推导出递推公式:递推公式:递推公式:

10、递推公式:(5)(5) (6)(6) sinsin( (nxnx) )=2cos=2cos( (x x) )sinsin( (n n- - - -1 1) )x x - - - -sinsin( (n n- - - -2 2) )x x coscos( (nxnx) )=2cos=2cos( (x x) )sinsin( (n n- - - -1 1) )x x - - - -coscos( (n n- - - -2 2) )x x 由递推公式可以看出,在计算正弦和余弦值时由递推公式可以看出,在计算正弦和余弦值时由递推公式可以看出,在计算正弦和余弦值时由递推公式可以看出,在计算正弦和余弦值时,

11、 , , ,需要已知需要已知需要已知需要已知coscos( (x x) )、sinsin( (n n- - - -1 1) )x x、sinsin( (n n- - - -2 2) )x x和和和和coscos( (n n- - - -2 2) )x x。9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 9 计算一个角度计算一个角度计算一个角度计算一个角度x x的正弦值,可利用泰勒级数的展开式,采的正弦值,可利用泰勒级数的展开式,采的正弦值,可利用泰勒级数的展开式,采的正弦值,可利用泰勒级数的展开式,采用子程序的调用方式来实现。

12、用子程序的调用方式来实现。用子程序的调用方式来实现。用子程序的调用方式来实现。 在调用前先在数据存储器在调用前先在数据存储器在调用前先在数据存储器在调用前先在数据存储器d_xsd_xs单元中存放单元中存放单元中存放单元中存放x x的弧度值,计的弧度值,计的弧度值,计的弧度值,计算结果存放在算结果存放在算结果存放在算结果存放在d_sinxd_sinx单元中。单元中。单元中。单元中。1 1 1 1计算一个角度的正弦值计算一个角度的正弦值计算一个角度的正弦值计算一个角度的正弦值 程序中要用到一些存储单元存放数据和变量,程序中要用到一些存储单元存放数据和变量,程序中要用到一些存储单元存放数据和变量,程

13、序中要用到一些存储单元存放数据和变量,存储单元存储单元存储单元存储单元的分配如下:的分配如下:的分配如下:的分配如下: d_xsd_xs:x x; d_squr_xsd_squr_xs: x x2 2 d_temp_sd_temp_s:暂存;:暂存;:暂存;:暂存; d_sinxd_sinx:计算结果:计算结果:计算结果:计算结果sinsinx x c_1_sc_1_s:7FFFh(7FFFh(数值数值数值数值1)1);d_coef_sd_coef_s:泰勒系数:泰勒系数:泰勒系数:泰勒系数 8.2.2正弦波的正弦波的DSP实现实现9/2/2024第第第第8 8章章章章DSPDSP技术典型应用

14、实例技术典型应用实例技术典型应用实例技术典型应用实例 10图计算正弦值存储单元的分配图计算正弦值存储单元的分配图计算正弦值存储单元的分配图计算正弦值存储单元的分配程序清单程序清单程序清单程序清单sinxsinxsinxsinx. .asmasmasmasm: .title “sinx.asm”.title “sinx.asm”.title “sinx.asm”.title “sinx.asm” .mmregs .mmregs .mmregs .mmregs .def start .def start .def start .def start .ref sin_start .ref sin_s

15、tart .ref sin_start .ref sin_start,d_xsd_xsd_xsd_xs,d_sinxd_sinxd_sinxd_sinxSTACKSTACKSTACKSTACK: . .usect “STACK”usect “STACK”usect “STACK”usect “STACK”,10101010 ;定义符号;定义符号;定义符号;定义符号 ;定义符号;定义符号;定义符号;定义符号 ;建立堆栈;建立堆栈;建立堆栈;建立堆栈 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 11startstart:STM

16、#STACK+10STM#STACK+10,SPSPLD#d_xsLD#d_xs,DPDPST#6487HST#6487H,d_xsd_xsCALLsin_startCALLsin_startendend:BendBendsin_startsin_startsin_startsin_start: .def sin_start .def sin_start .def sin_start .def sin_start d_coef_s .usect d_coef_s .usect d_coef_s .usect d_coef_s .usect “ “coef_scoef_scoef_scoef_s

17、” ”,4 4 4 4 .data .data .data .data table_s table_s table_s table_s: .word 01C7H .word 01C7H .word 01C7H .word 01C7H .word 030BH .word 030BH .word 030BH .word 030BH .word 0666H .word 0666H .word 0666H .word 0666H .word 1556H .word 1556H .word 1556H .word 1556H d_xs .usect d_xs .usect d_xs .usect d_x

18、s .usect “ “sin_varssin_varssin_varssin_vars” ”,1 1 1 1 d_squr_xs .usect d_squr_xs .usect d_squr_xs .usect d_squr_xs .usect “ “sin_varssin_varssin_varssin_vars” ”,1 1 1 1 d_temp_s .usect d_temp_s .usect d_temp_s .usect d_temp_s .usect “ “sin_varssin_varssin_varssin_vars” ”,1 1 1 1 d_sinx .usect d_si

19、nx .usect d_sinx .usect d_sinx .usect “ “sin_varssin_varssin_varssin_vars” ”,1 1 1 1 c_1_s .usect c_1_s .usect c_1_s .usect c_1_s .usect “ “sin_varssin_varssin_varssin_vars” ”,1 1 1 1 ;设置堆栈指针;设置堆栈指针;设置堆栈指针;设置堆栈指针 ;设置页指针;设置页指针;设置页指针;设置页指针 ;xd_xsxd_xs ;调用子程序;调用子程序;调用子程序;调用子程序 ;子程序;子程序;子程序;子程序 ;定义符号;定义

20、符号;定义符号;定义符号 ;定义数据空间存放系数;定义数据空间存放系数;定义数据空间存放系数;定义数据空间存放系数 ;定义程序空间存放系数;定义程序空间存放系数;定义程序空间存放系数;定义程序空间存放系数 ;c1=1/(8c1=1/(8 9)9) ;c2=1/(6c2=1/(6 7)7) ;c3=1/(4c3=1/(4 5)5) ;c4=1/(2c4=1/(2 3)3) ;定义;定义;定义;定义1 1 1 1个数据空间存放个数据空间存放个数据空间存放个数据空间存放x x x x ;定义;定义;定义;定义1 1 1 1个数据空间存放个数据空间存放个数据空间存放个数据空间存放x x x x2 2

21、2 2 ;定义;定义;定义;定义1 1 1 1个暂存单元个暂存单元个暂存单元个暂存单元 ;定义数据空间存放结果;定义数据空间存放结果;定义数据空间存放结果;定义数据空间存放结果 ;定义数据空间存放数值;定义数据空间存放数值;定义数据空间存放数值;定义数据空间存放数值1 1 1 1 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 12 .text .text .text .text SSBX FRCT SSBX FRCT SSBX FRCT SSBX FRCT STM #d_coef_s STM #d_coef_s STM #d

22、_coef_s STM #d_coef_s,AR4AR4AR4AR4 RPT #3 RPT #3 RPT #3 RPT #3 MVPD #table_s MVPD #table_s MVPD #table_s MVPD #table_s,*AR4+*AR4+*AR4+*AR4+ STM #d_coef_s STM #d_coef_s STM #d_coef_s STM #d_coef_s,AR2AR2AR2AR2 STM #d_xs STM #d_xs STM #d_xs STM #d_xs,AR3AR3AR3AR3 STM #c_1_s STM #c_1_s STM #c_1_s STM #

23、c_1_s,AR5AR5AR5AR5 ST #7FFFH ST #7FFFH ST #7FFFH ST #7FFFH,c_1_sc_1_sc_1_sc_1_s SQUR *AR3+ SQUR *AR3+ SQUR *AR3+ SQUR *AR3+,A A A A ST A ST A ST A ST A,*AR3*AR3*AR3*AR3 | LD *AR5 | LD *AR5 | LD *AR5 | LD *AR5,B B B B MASR *AR3+ MASR *AR3+ MASR *AR3+ MASR *AR3+,*AR2+*AR2+*AR2+*AR2+,B B B B,A A A A MP

24、YA A MPYA A MPYA A MPYA A ;设置小数运算;设置小数运算;设置小数运算;设置小数运算 ;设置系数表首地址;设置系数表首地址;设置系数表首地址;设置系数表首地址 ;设置重复操作次数;设置重复操作次数;设置重复操作次数;设置重复操作次数 ;向系数表传送泰勒系数;向系数表传送泰勒系数;向系数表传送泰勒系数;向系数表传送泰勒系数 ;系数表首地址送;系数表首地址送;系数表首地址送;系数表首地址送AR2AR2AR2AR2 ;x x x x单元地址送单元地址送单元地址送单元地址送AR3AR3AR3AR3 ;数值;数值;数值;数值1 1 1 1地址送地址送地址送地址送AR5AR5AR5

25、AR5 ;将数值;将数值;将数值;将数值1 1 1 1送送送送c_l_sc_l_sc_l_sc_l_s单元单元单元单元 ;求;求;求;求x x x x的平方值的平方值的平方值的平方值 ;x x x x2 2 2 2值存入值存入值存入值存入d_squr_xsd_squr_xsd_squr_xsd_squr_xs单元单元单元单元 ;B=1B=1B=1B=1 ;A=1-xA=1-xA=1-xA=1-x2 2 2 2/72/72/72/72,T=xT=xT=xT=x2 2 2 2 ;A=TA=TA=TA=T A=A=A=A= x x x x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/

26、72)/72)/72)/72) 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 13 STH A STH A STH A STH A,*AR3*AR3*AR3*AR3 MASR *AR3- MASR *AR3- MASR *AR3- MASR *AR3-,*AR2+*AR2+*AR2+*AR2+,B B B B,A A A A MPYA *AR3+ MPYA *AR3+ MPYA *AR3+ MPYA *AR3+ ST B ST B ST B ST B,*AR3*AR3*AR3*AR3 | LD *AR5 | LD *AR5

27、| LD *AR5 | LD *AR5,B B B B MASR *AR3- MASR *AR3- MASR *AR3- MASR *AR3-,*AR2*AR2*AR2*AR2,B B B B,A A A A MPYA *AR3+ MPYA *AR3+ MPYA *AR3+ MPYA *AR3+ ST B ST B ST B ST B,*AR3*AR3*AR3*AR3 | LD *AR5 | LD *AR5 | LD *AR5 | LD *AR5,B B B B MASR *AR3- MASR *AR3- MASR *AR3- MASR *AR3-,*AR2*AR2*AR2*AR2,B B B

28、 B,A A A A MPYA d_xs MPYA d_xs MPYA d_xs MPYA d_xs STH B STH B STH B STH B,d_sinxd_sinxd_sinxd_sinx RET RET RET RET .end .end .end .end ;(d_temp_s)=x(d_temp_s)=x(d_temp_s)=x(d_temp_s)=x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/72)/72)/72)/72) ;A=1-xA=1-xA=1-xA=1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/

29、72)/72)/72) ;T= xT= xT= xT= x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/72)/72)/72)/72) ;B=xB=xB=xB=x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72) ;(d_temp_s)=x(d_temp_s)=x(d_temp_s)=x(d_temp_s)=x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72

30、) ;B=1B=1B=1B=1 ;A=1-xA=1-xA=1-xA=1-x2 2 2 2/20(1-x/20(1-x/20(1-x/20(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72) ;B=xB=xB=xB=x2 2 2 2(1-x(1-x(1-x(1-x2 2 2 2/20(1-x/20(1-x/20(1-x/20(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72) ;(d_temp_s)=B=(d_temp_s)=B=(d_temp_s)=B

31、=(d_temp_s)=B= ;B=1B=1B=1B=1 ;A=1-xA=1-xA=1-xA=1-x2 2 2 2/6(1-x/6(1-x/6(1-x/6(1-x2 2 2 2/20(1-x/20(1-x/20(1-x/20(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/42(1-x2 2 2 2/72)/72)/72)/72) ;B=x(1-xB=x(1-xB=x(1-xB=x(1-x2 2 2 2/6(1-x/6(1-x/6(1-x/6(1-x2 2 2 2/20(1-x/20(1-x/20(1-x/20(1-x2 2 2 2/42(1-x/42(1-x/42(1-x/4

32、2(1-x2 2 2 2/72)/72)/72)/72) ;计算;计算;计算;计算sinxsinxsinxsinx结果存入结果存入结果存入结果存入d_sinxd_sinxd_sinxd_sinx单元单元单元单元 ;子程序返回;子程序返回;子程序返回;子程序返回9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 14计算一个角度计算一个角度计算一个角度计算一个角度x x的余弦值,可利用泰勒级数的展开式的余弦值,可利用泰勒级数的展开式的余弦值,可利用泰勒级数的展开式的余弦值,可利用泰勒级数的展开式(8.4)(8.4),并采用子程序的调

33、用方式来实现。,并采用子程序的调用方式来实现。,并采用子程序的调用方式来实现。,并采用子程序的调用方式来实现。 计算余弦值与计算正弦值相同。计算余弦值与计算正弦值相同。计算余弦值与计算正弦值相同。计算余弦值与计算正弦值相同。 存储单元分配图:存储单元分配图:存储单元分配图:存储单元分配图: 2 2 2 2计算一个角度的余弦值计算一个角度的余弦值计算一个角度的余弦值计算一个角度的余弦值 数据存储器数据存储器d_xcxd_squr_xcx2 2d_temp_cd_cosxcosxc_1_c7FFFH7FFFHd_coef_cc1=0249Hc1=0249Hc2=0444Hc2=0444Hc3=0A

34、ABHc3=0AABHc4=4000hHc4=4000hH程序存储器程序存储器table_cc1=1/(7 8)c2=1/(5 6)c3=1/(3 4)c4=1/29/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 15实现步骤如下:实现步骤如下:实现步骤如下:实现步骤如下: 3 3 3 3正弦波的实现正弦波的实现正弦波的实现正弦波的实现 (1)(1)(1)(1)利用利用利用利用sin_startsin_startsin_startsin_start和和和和cos_startcos_startcos_startcos_start子

35、程序,计算子程序,计算子程序,计算子程序,计算0 0 0 0 45454545 ( (间隔间隔间隔间隔为为为为0 0 0 0. .5 5 5 5 ) )的正弦和余弦值;的正弦和余弦值;的正弦和余弦值;的正弦和余弦值;(2)(2)利用利用利用利用sinsinsinsin( (2 2 2 2x x x x) )=2sin=2sin=2sin=2sin( (x x x x) )coscoscoscos( (x x x x) )公式公式公式公式, , , ,计算计算计算计算0 0 0 0 90909090 的正弦的正弦的正弦的正弦值值值值( ( ( (间隔为间隔为间隔为间隔为1 1 1 1 ););)

36、;);(3)(3) 通过复制,获得通过复制,获得通过复制,获得通过复制,获得0 0 0 0 359359359359 的正弦值;的正弦值;的正弦值;的正弦值;(4)(4) 将将将将0 0 0 0 359359359359 的正弦值重复从的正弦值重复从的正弦值重复从的正弦值重复从PAPAPAPA口输出,便可得到正弦波。口输出,便可得到正弦波。口输出,便可得到正弦波。口输出,便可得到正弦波。9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 16正弦波源程序清单正弦波源程序清单正弦波源程序清单正弦波源程序清单sinsinsinsin.

37、 .asm asm asm asm .title .title .title .title “ “sinx.asmsinx.asmsinx.asmsinx.asm” ” .mmregs .mmregs .mmregs .mmregs .def start .def start .def start .def start .ref d_xs,sinx,d_sinx,d_xc,cosx,d_cosx .ref d_xs,sinx,d_sinx,d_xc,cosx,d_cosx .ref d_xs,sinx,d_sinx,d_xc,cosx,d_cosx .ref d_xs,sinx,d_sinx,

38、d_xc,cosx,d_cosx sin_x sin_x sin_x sin_x: .usect .usect .usect .usect “ “sin_xsin_xsin_xsin_x” ”,360360360360 STACK STACK STACK STACK: .usect .usect .usect .usect “ “STACKSTACKSTACKSTACK” ”,10101010 k_theta .set 286 k_theta .set 286 k_theta .set 286 k_theta .set 286 ;theta=pi/360(0.5deg)theta=pi/360

39、(0.5deg)theta=pi/360(0.5deg)theta=pi/360(0.5deg) PA0 .set 0 PA0 .set 0 PA0 .set 0 PA0 .set 0 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 17 start start start start: .text .text .text .text STM #STACK+10 STM #STACK+10 STM #STACK+10 STM #STACK+10,SPSPSPSP STM #0 STM #0 STM #0 STM #0,AR0A

40、R0AR0AR0 STM k_theta STM k_theta STM k_theta STM k_theta,AR1AR1AR1AR1 STM #sin_x STM #sin_x STM #sin_x STM #sin_x,AR7AR7AR7AR7 STM #90 STM #90 STM #90 STM #90,BRCBRCBRCBRC RPTB loop1-1 RPTB loop1-1 RPTB loop1-1 RPTB loop1-1 LDM AR0 LDM AR0 LDM AR0 LDM AR0,A A A A LD #d_xs LD #d_xs LD #d_xs LD #d_xs,

41、DPDPDPDP STL A STL A STL A STL A,d_xsd_xsd_xsd_xs STL A STL A STL A STL A,d_xcd_xcd_xcd_xc ;主程序;主程序;主程序;主程序 ;设置堆栈;设置堆栈;设置堆栈;设置堆栈 ;AR0=x=0AR0=x=0AR0=x=0AR0=x=0 ;设置增量;设置增量;设置增量;设置增量 ;AR7AR7AR7AR7指向指向指向指向sin_xsin_xsin_xsin_x ;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算sin0sin0sin0sin0至至至至sin90sin90sin90sin

42、90 ;取;取;取;取x x x x值值值值 ;设置页指针;设置页指针;设置页指针;设置页指针 ;将;将;将;将x x x x值送入值送入值送入值送入d_xsd_xsd_xsd_xs单元单元单元单元 ;将;将;将;将x x x x值送入值送入值送入值送入d_xcd_xcd_xcd_xc单元单元单元单元9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 18 CALL sin_start CALL sin_start CALL sin_start CALL sin_start CALL cos_start CALL cos_star

43、t CALL cos_start CALL cos_start LD #d_sinx LD #d_sinx LD #d_sinx LD #d_sinx,DPDPDPDP LD d_sinx LD d_sinx LD d_sinx LD d_sinx,16161616,A A A A MPYA d_cosx MPYA d_cosx MPYA d_cosx MPYA d_cosx STH B STH B STH B STH B,1 1 1 1,*AR7+*AR7+*AR7+*AR7+ MAR *AR0+0 MAR *AR0+0 MAR *AR0+0 MAR *AR0+0 ;调用;调用;调用;调用s

44、inxsinxsinxsinx子程序,计算子程序,计算子程序,计算子程序,计算x x x x的正弦值的正弦值的正弦值的正弦值 ;调用;调用;调用;调用coscoscoscos子程序,计算子程序,计算子程序,计算子程序,计算x x x x的余弦值的余弦值的余弦值的余弦值 ;切换到正弦指数据区;切换到正弦指数据区;切换到正弦指数据区;切换到正弦指数据区 ;求得正弦值;求得正弦值;求得正弦值;求得正弦值sin(x)sin(x)sin(x)sin(x)加载累加器加载累加器加载累加器加载累加器A A A A ;完成;完成;完成;完成sin(x)sin(x)sin(x)sin(x) cos(x)cos(x

45、)cos(x)cos(x)运算,将结果存入运算,将结果存入运算,将结果存入运算,将结果存入B B B B ;完成;完成;完成;完成2 2 2 2 sin(x)sin(x)sin(x)sin(x) cos(x)cos(x)cos(x)cos(x)运算,运算,运算,运算, ;结果存入;结果存入;结果存入;结果存入AR7AR7AR7AR7指定单元指定单元指定单元指定单元 ;修改;修改;修改;修改AR0AR0AR0AR09/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 19 loop1: STM #sin_x+89loop1: STM

46、#sin_x+89loop1: STM #sin_x+89loop1: STM #sin_x+89,AR6AR6AR6AR6 STM #88 STM #88 STM #88 STM #88,BRC BRC BRC BRC RPTB loop2-1 RPTB loop2-1 RPTB loop2-1 RPTB loop2-1 LD *AR6- LD *AR6- LD *AR6- LD *AR6-,A A A A STL A STL A STL A STL A,*AR7+*AR7+*AR7+*AR7+ loop2 loop2 loop2 loop2: STM #179 STM #179 STM #

47、179 STM #179,BRC BRC BRC BRC STM #sin_x STM #sin_x STM #sin_x STM #sin_x,AR6AR6AR6AR6 RPTB loop3-1 RPTB loop3-1 RPTB loop3-1 RPTB loop3-1 LD *AR6+ LD *AR6+ LD *AR6+ LD *AR6+,A A A A NEG A NEG A NEG A NEG A STL A STL A STL A STL A,*AR7+ *AR7+ *AR7+ *AR7+ loop3:STM#sin_xloop3:STM#sin_x,AR7AR7STM#1STM#

48、1,AR1AR1STM#360STM#360,BKBKloop4loop4:PORTW*AR7+0%PORTW*AR7+0%,PA0PA0Bloop4Bloop4.end.end ;AR6AR6AR6AR6指向指向指向指向sin_x+89sin_x+89sin_x+89sin_x+89单元单元单元单元 ;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算sin91sin91sin91sin91至至至至sin179sin179sin179sin179 ;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算;设置重复次数,计算sin180sin180sin180s

49、in180至至至至sin359sin359sin359sin359 ;AR6AR6AR6AR6指向指向指向指向sin_xsin_xsin_xsin_x单元单元单元单元 ;AR7AR7指向指向指向指向sin_xsin_x单元单元单元单元 ;设置缓冲区长度;设置缓冲区长度;设置缓冲区长度;设置缓冲区长度 ;输出正弦值;输出正弦值;输出正弦值;输出正弦值 ;循环输出,产生正弦波;循环输出,产生正弦波;循环输出,产生正弦波;循环输出,产生正弦波9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 20产生正弦波链接命令文件产生正弦波链接命令

50、文件产生正弦波链接命令文件产生正弦波链接命令文件sinsinsinsin. .cmdcmdcmdcmd vectors.objvectors.objvectors.objvectors.obj sin.obj sin.obj sin.obj sin.obj -o sin.out -o sin.out -o sin.out -o sin.out -m sin.map -m sin.map -m sin.map -m sin.map -e start -e start -e start -e start MEMORY MEMORY MEMORY MEMORY PAGE0 PAGE0 PAGE0 P

51、AGE0:EPROMEPROMEPROMEPROM: org = 0E000H org = 0E000H org = 0E000H org = 0E000H,len=1000Hlen=1000Hlen=1000Hlen=1000H VECS VECS VECS VECS: org = 0FF80H org = 0FF80H org = 0FF80H org = 0FF80H,len=0080Hlen=0080Hlen=0080Hlen=0080H PAGE1 PAGE1 PAGE1 PAGE1:SPRAMSPRAMSPRAMSPRAM: org = 0060H org = 0060H org

52、= 0060H org = 0060H, len=0020H len=0020H len=0020H len=0020H DARAM1 DARAM1 DARAM1 DARAM1: org = 0080H org = 0080H org = 0080H org = 0080H, len=0010H len=0010H len=0010H len=0010H DARAM2 DARAM2 DARAM2 DARAM2: org = 0090H org = 0090H org = 0090H org = 0090H, len=0010H len=0010H len=0010H len=0010H DAR

53、AM3 DARAM3 DARAM3 DARAM3: org = 0200H org = 0200H org = 0200H org = 0200H, len=0200H len=0200H len=0200H len=0200H 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 21 SECTIONS SECTIONS SECTIONS SECTIONS .text : .text : .text : .text : EPROM PAGE0 EPROM PAGE0 EPROM PAGE0 EPROM PAGE0 .data :

54、.data : .data : .data : EPROM PAGE0 EPROM PAGE0 EPROM PAGE0 EPROM PAGE0 STACK : STACK : STACK : STACK : SPRAM PAGE1 SPRAM PAGE1 SPRAM PAGE1 SPRAM PAGE1 sin_vars : sin_vars : sin_vars : sin_vars : DARAM1 PAGE1 DARAM1 PAGE1 DARAM1 PAGE1 DARAM1 PAGE1 coef_s : coef_s : coef_s : coef_s : DARAM1 PAGE1 DAR

55、AM1 PAGE1 DARAM1 PAGE1 DARAM1 PAGE1 cos_vars : cos_vars : cos_vars : cos_vars : DARAM1 PAGE1 DARAM1 PAGE1 DARAM1 PAGE1 DARAM1 PAGE1 coef_c : coef_c : coef_c : coef_c : DARAM2 PAGE1 DARAM2 PAGE1 DARAM2 PAGE1 DARAM2 PAGE1 sin_x : align (512) sin_x : align (512) sin_x : align (512) sin_x : align (512)

56、DARAM3 PAGE1 DARAM3 PAGE1 DARAM3 PAGE1 DARAM3 PAGE1 .vectors : .vectors : .vectors : .vectors : VECS PAGE0 VECS PAGE0 VECS PAGE0 VECS PAGE0 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 22 若用若用simulatorsimulator执行正弦波程序,就可产生正弦波数据,并生成。执行正弦波程序,就可产生正弦波数据,并生成。再利用作图程序,就可以观察所生成的正弦波波形了。用再利用作图程序,

57、就可以观察所生成的正弦波波形了。用drawhex.exedrawhex.exe画出画出out.dat(out.dat(输出正弦波数据文件输出正弦波数据文件) )波形的命令如下:波形的命令如下: drawhex out.dat -ys 33000 -xs 1000drawhex out.dat -ys 33000 -xs 1000 所得到的正弦波波形如图所示。所得到的正弦波波形如图所示。9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 23 语音接口芯片语音接口芯片TLC320AD50C简介简介 TLC320AD50C是是TI公司

58、生产的音频接口芯片,集成公司生产的音频接口芯片,集成16位位A/D和和D/A转换器,可工作在主、从两种方式,由上电时转换器,可工作在主、从两种方式,由上电时M/S管脚的电平管脚的电平决定。决定。当当M/S为高电平时,为高电平时,TLC320AD50C工作在主设备方式;当工作在主设备方式;当M/S为低电平时,为低电平时,TLC320AD50C工作在从设备方式。工作在从设备方式。在与在与DSP的的McBSP连接时,一般连接时,一般TLC320AD50C配置为主方式,而配置为主方式,而McBSP为从方式。为从方式。 支持主通信和辅助通信两种通信模式,主通信用于正常的支持主通信和辅助通信两种通信模式,

59、主通信用于正常的ADC或或DAC的数据传输,辅助通信用于控制寄存器的读写。辅助通信的数据传输,辅助通信用于控制寄存器的读写。辅助通信模式可由硬件和软件两种方式触发。模式可由硬件和软件两种方式触发。8.3语音信号采集语音信号采集9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 24 TLC320AD50C与与DSP的连接的连接 在实际应用中,一般将在实际应用中,一般将TLC320AD50C接至接至DSP的同步串的同步串行口,并将行口,并将TLC320AD50C设置在主动工作方式,即由设置在主动工作方式,即由TLC320AD50C提

60、供帧同步信号和移位时钟。提供帧同步信号和移位时钟。 图8.8 TLC320AD50C与TMS320C54x系列DSP的连接9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 25 语音采集和回放程序语音采集和回放程序 实现初始化实现初始化DSP后,打开后,打开McBSP串口串口; 初始化初始化AD50C,然后使串口在,然后使串口在AD50C 的控制下接受数据。的控制下接受数据。 主函数用主函数用C语言编写,语言编写, 其中其中InitC5402(void)是初始化是初始化DSP, OpenMcBSP(void)是初始化串口和初始化

61、是初始化串口和初始化AD50C, READAD50(void)用来读取数据。用来读取数据。程序如下:extern void InitC5402(void);extern void OpenMcBSP(void);extern void CloseMcBSP(void)extern void READAD50(void);extern void WRITEAD50(void);VOid main(VOid)InitC5402();OpenMcBSP();while(1)READAD50(); 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典

62、型应用实例 26以下为McBSP串口利用TLC320AD50C实现语音采集和回放的汇编实现程序:9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 279/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 289/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 299/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 308.4步进电动机的步进电

63、动机的DSP控制控制 1. 控制换相顺序 步进电动机的通电换相顺序是严格按照步进电动机的工作方式进行的。通常把通电换相这一过程称为“脉冲分配”。例如,三相步进电动机的单三拍工作方式,其各相通电的顺序为ABC,通电控制脉冲必须严格地按照这一顺序分别控制A、B、C相的通电和断电。8.4.1步进电动机的基本控制步进电动机的基本控制 2. 控制步进电动机的转向 如果按给定的工作方式正序通电换相的话,步进电动机就正转;如果按反序通电换相,则电动机就反转。例如四相步进电动机工作在单四拍方式,通电换相的正序是ABCD,电动机就正转;如果按反序ADCB,电动机就反转。9/2/2024第第第第8 8章章章章DS

64、PDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 31 3. 控制步进电动机的速度 如果给步进电动机发一个控制脉冲,它就转一个步距角,再发一个脉冲,它会再转一个步距角。两个脉冲的间隔时间越短,步进电动机就转得越快。因此,脉冲的频率决定了步进电动机的转速 。 步进电动机的转速可由下式计算: =N f (7) 当步进电动机的工作方式确定之后,调整脉冲的频率,就可以对步进电动机进行调速。9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 32 实现脉冲分配的方法有两种:软件法和硬件法。8.4.2步进电动机的脉冲分

65、配步进电动机的脉冲分配 1. 通过软件实现脉冲分配 软件法是完全用软件的方式,按照给定的通电换相顺序,通过DSP的PWM输出口向驱动电路发出控制脉冲。 下图是用这种方法控制五相步进电动机的硬件接口例子。 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 332.通过硬件实现脉冲分配通过硬件实现脉冲分配 硬件法实际上是使用脉冲分配器芯片来进行通电换相控制。 8713脉冲分配器与DSP的接口如图所示,选用单时钟输入方式。8713的3脚为步进脉冲输入端,4脚为转向控制端,这两个引脚的输入由DSP的PWMl和PWM2提供和控制。选用对四

66、相步进电动机进行八拍方式控制,所以5、6、7脚均接高电平。 图8.10 8713脉冲分配器与DSP的接口9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 34 步进电动机的速度控制是通过控制DSP发出的步进脉冲频率来实现的。周期值越大,步进脉冲的频率就越低,步进电动机的速度越慢。 对于软脉冲分配方式,DSP定时器的周期值决定了周期中断的时刻,因此也决定了执行换相的时刻。控制中只要改变定时器的周期值就可以改变电动机的速度。8.4.3 步进电动机的速度控制 对于硬脉冲分配方式,由于要在PWM口发出等宽步进脉冲方波,所以还要对比较寄存

67、器的比较值进行设置,比较值应该等于1/2周期值,即占空比为50。因此,在电动机调速时,除了要改变DSP定时器的周期值外,还要改变相应的比较寄存器的比较值,以保证输出等宽步进脉冲方波。9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 35 步进电动机的位置控制指的是控制步进电动机带动执行机构从一个位置精确地运行到另一个位置。位置控制是步进电动机的一大优点,它可以用不着借助位置传感器而只需简单的开环控制就能达到足够的位置精度,因此应用很广。 8.4.4步进电动机的位置控制步进电动机的位置控制 对步进电动机位置控制的一般作法是:步进电

68、动机每走一步,步数减1,如果没有失步存在,当执行机构到达目标位置时,步数正好减到0。因此用步数等于0来判断是否移动到目标位,作为步进电动机停止运行的信号。 下面给出一个例子。其硬件连接如图所示。每次定时器周期中断都表示步进电动机已经走了一步,因此,需要对相对位置进行减1操作,根据转向对绝对位置进行加1或减1操作,并且还要判断绝对位置是否越界,相对位置是否为0。位置控制子程序在每次定时器周期中断调用一次。 位置控制子程序框图见图。 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 36图图8.12位置控制子程序框图位置控制子程序框

69、图9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 378.5MATLAB8.5MATLAB语言在语言在语言在语言在DSPDSP设计中的应用设计中的应用设计中的应用设计中的应用 8.5.1MATLAB8.5.1MATLAB简介简介简介简介MATLAB(MatrixLaboratary)MATLAB(MatrixLaboratary)是国际上最流行的电子仿真计算机辅是国际上最流行的电子仿真计算机辅是国际上最流行的电子仿真计算机辅是国际上最流行的电子仿真计算机辅助设计的大型数学计算工具软件助设计的大型数学计算工具软件助设计的大型数学

70、计算工具软件助设计的大型数学计算工具软件 。 MATLABMATLAB的语言结构很简单,一般格式如下:的语言结构很简单,一般格式如下:的语言结构很简单,一般格式如下:的语言结构很简单,一般格式如下:MATLABMATLAB语言结构语言结构语言结构语言结构= =窗口命令窗口命令窗口命令窗口命令+M+M文件文件文件文件在在在在CommandwindowCommandwindow输入的输入的输入的输入的MATLABMATLAB语句称为窗口命令,用以调用并语句称为窗口命令,用以调用并语句称为窗口命令,用以调用并语句称为窗口命令,用以调用并执行执行执行执行MM文件。文件。文件。文件。MM文件在编辑窗口建

71、立,扩展名为文件在编辑窗口建立,扩展名为文件在编辑窗口建立,扩展名为文件在编辑窗口建立,扩展名为.m.m。MM文件可以有很多个,它们可以文件可以有很多个,它们可以文件可以有很多个,它们可以文件可以有很多个,它们可以互相调用,也可调用自己。在功能上,互相调用,也可调用自己。在功能上,互相调用,也可调用自己。在功能上,互相调用,也可调用自己。在功能上,MM文件可以分为两种类型:文本文文件可以分为两种类型:文本文文件可以分为两种类型:文本文文件可以分为两种类型:文本文件和函数文件。件和函数文件。件和函数文件。件和函数文件。文本文件包括一系列的文本文件包括一系列的文本文件包括一系列的文本文件包括一系列

72、的MATLABMATLAB命令,当命令窗口调用它时,自动执命令,当命令窗口调用它时,自动执命令,当命令窗口调用它时,自动执命令,当命令窗口调用它时,自动执行这些命令。文本文件的语句在工作空间对全局变量进行运算。行这些命令。文本文件的语句在工作空间对全局变量进行运算。行这些命令。文本文件的语句在工作空间对全局变量进行运算。行这些命令。文本文件的语句在工作空间对全局变量进行运算。MATLABMATLAB控制语句较少,但功能很强。主要有控制语句较少,但功能很强。主要有控制语句较少,但功能很强。主要有控制语句较少,但功能很强。主要有forfor、whilewhile、if if和和和和breakbre

73、ak几种。几种。几种。几种。 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 388.5.2IIR8.5.2IIR滤波器设计滤波器设计滤波器设计滤波器设计从实现数字滤波器的网络结构或者从单位脉冲响应分类,从实现数字滤波器的网络结构或者从单位脉冲响应分类,可分为无限脉冲响应可分为无限脉冲响应(IIR)(IIR)滤波器和有限脉冲响应滤波器和有限脉冲响应(FIR)(FIR)滤波器,滤波器,两种滤波器的设计方法有较大区别。下面的仅介绍如何设计两种滤波器的设计方法有较大区别。下面的仅介绍如何设计IIRIIR滤波器。滤波器。 1.1.滤波

74、器概述滤波器概述滤波器概述滤波器概述 常用的数字滤波器一般属于选频滤波器,假设滤波器的传输函数H(ej)用下式表示: H(ej)=H(ej)ejQ() (8.8) 式中H(ej)和Q()分别为幅频特性和相频特性。幅频特性表示滤波器对信号各频率成分的衰减情况,决定滤波器的选频指标。相频特性反映各频率成分通过滤波器后在时间上的延时情况。 9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 392.IIR2.IIR滤波器原理滤波器原理滤波器原理滤波器原理当给定滤波器指标当给定滤波器指标当给定滤波器指标当给定滤波器指标PP,ss,RPRP

75、,ASAS时,时,时,时, IIRIIR数字滤波器数字滤波器数字滤波器数字滤波器的设计步骤如下:的设计步骤如下:的设计步骤如下:的设计步骤如下:(1)(1)选选选选T T,通常选,通常选,通常选,通常选T=1T=1;在数字滤波器的设计中,必须给出抽样;在数字滤波器的设计中,必须给出抽样;在数字滤波器的设计中,必须给出抽样;在数字滤波器的设计中,必须给出抽样频率,按照奈奎斯特抽样定理,频率特性只能限于范围。频率,按照奈奎斯特抽样定理,频率特性只能限于范围。频率,按照奈奎斯特抽样定理,频率特性只能限于范围。频率,按照奈奎斯特抽样定理,频率特性只能限于范围。(2 2)对)对)对)对PP,ss做预畸变

76、,使做预畸变,使做预畸变,使做预畸变,使(3 3)按)按)按)按PP,ss,RPRP,ASAS,计算出模拟滤波器的阶数和,计算出模拟滤波器的阶数和,计算出模拟滤波器的阶数和,计算出模拟滤波器的阶数和-3dB-3dB截止频率。截止频率。截止频率。截止频率。 (4 4)按截止频率设计模拟滤波器的传递函数)按截止频率设计模拟滤波器的传递函数)按截止频率设计模拟滤波器的传递函数)按截止频率设计模拟滤波器的传递函数Ha(s)Ha(s)。 (5 5)通过变换将)通过变换将)通过变换将)通过变换将Ha(s)Ha(s)转换为数字滤波器的传递函数转换为数字滤波器的传递函数转换为数字滤波器的传递函数转换为数字滤波

77、器的传递函数HH(z z)。)。)。)。9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 403.MATLAB3.MATLAB仿真实现仿真实现仿真实现仿真实现 在MATLAB编辑窗口,建立iir_butterworth.m文件,内容为:9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 419/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 42执行文件,得如图所示的频率特性。9/2/2024第第第第8

78、 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 438.5.38.5.3信号的谱分析信号的谱分析信号的谱分析信号的谱分析(FFT)(FFT)利用利用利用利用MATLABMATLAB的的的的fftfft函数,进行谱分析。函数,进行谱分析。函数,进行谱分析。函数,进行谱分析。在在在在MATLABMATLAB编辑窗口,建立文件,内容如下:编辑窗口,建立文件,内容如下:编辑窗口,建立文件,内容如下:编辑窗口,建立文件,内容如下:m=5m=5;n=2mn=2m;fftfft运算点数运算点数运算点数运算点数t=0t=0:n-1n-1;a=sin(16*pi*t/n

79、)+2*sin(4*pi*t/n)a=sin(16*pi*t/n)+2*sin(4*pi*t/n);b=fft(a)b=fft(a);c=abs(b).2c=abs(b).2;figurefigure;subplot(2subplot(2,1 1,1)1);plot(a)plot(a);title(title(信号信号信号信号a a) );subplot(2subplot(2,1 1,2)2);stem(c)stem(c);title(title(频谱频谱频谱频谱) )xlabel(xlabel(以以以以pipi为单位的频率为单位的频率为单位的频率为单位的频率) )9/2/2024第第第第8

80、8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 44 执行得到图的分析结果。输出数字序列的第0点对应直流分量;第1点为基波分量;其后为谐波分量。FFT算法的输出以点数N的一半对称,即频谱分布以N/2对称(除直流分量以外)。 图8.15 FFT进行谱分析9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 45本章小结本章小结 通过本章的学习,要学会应用程序的设计,掌握数字信号处理中常用算法的DSP实现方法。 本章讨论了DSP应用程序的设计。首先阐述了DSP最小系统电路设计,接着详细分析了用DS

81、P实现正弦信号发生器、语音信号采集、步进电动机的控制等典型实例。最后以IIR滤波器设计和信号的谱分析为例,介绍了Matlab语言在DSP设计中的应用。9/2/2024第第第第8 8章章章章DSPDSP技术典型应用实例技术典型应用实例技术典型应用实例技术典型应用实例 46习习题题 8.1 参照节正弦波信号发生器程序,编写实现余弦信号的程序。 8.2 在第1题的基础上,新建一个工程文件,使用TMS320vC5402的 定时器1产生余弦信号,同时使用定时器0产生正弦信号。 8.3 请编写一个128点的实数FFT程序。 8.4 试用TMS320VC5402芯片设计一个DSP应用系统。该系统应包括一个128千字的EPROM和A/D、D/A转换器。 8.5 试用TMS320VC5402芯片设计一个DSP应用系统。该系统应包括程序存储器、89C5l单片机、A/D和D/A转换器,并要求DSP的HPI-8主机接口与单片机相连。 8.6 试用TMS320C54x、A/D和D/A等芯片,设计一个音频信号采集与处理系统。要求用McBSP口实现。 8.7 试用TMS320C54x的HPI接口,实现89C5l单片机与DSP芯片之间的通信。9/2/2024

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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