欢迎来到天天文库
浏览记录
ID:25158905
大小:588.50 KB
页数:37页
时间:2018-11-14
《第7章 tms320c54x应用程序开发实例[dsp技术与应用实例(第3版)]》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章TMS320C54x应用程序开发实例7.1正弦信号发生器7.2FIR滤波器的DSP实现方法7.3IIR滤波器的DSP实现方法7.4快速傅里叶变换的DSP实现方法7.5语音信号压缩的DSP实现方法7.6数字基带信号的DSP实现方法7.1正弦信号发生器通常有两种方法可以产生正弦波和余弦波:(1)查表法(2)泰勒级数展开法也可以由递推公式求正弦和余弦值:sin(nx)=2cos(x)sin[(n-1)x]-sin[(n-2)x]cos(nx)=2cos(x)cos[(n-1)x]-cos[(n-2)x]利用递推公式计算正弦和余弦值需已知cos
2、(x)和正弦、余弦的前两个值。用这种方法,求少数点还可以,如产生连续正弦、余弦波,则积累误差太大,不可取。1.计算一个角度的正弦值利用泰勒级数展开式计算一个角度的正弦值。为了方便起见,编写计算sin(x)的程序sinx.asm,调用前只要在数据存储器d_x单元中设定x的弧度值就行了,计算结果在d_sinx单元中。程序中要用到一些存储单元存放数据和变量,如图所示。数据存储器d_xxd_squr_xx2程序存储器d_temptablec1=1/(8*9)d_sinxsin(x)c2=1/(6*7)c_1(7FFFH)c3=1/(4*5)d_coe
3、ff(c1=01C7H)c4=1/(2*3)(c2=030BH)(c3=0666H)(c4=1556H)计算结果存储在数据存储单元计算正弦值存储单元分配2.计算一个角度的余弦值利用泰勒级数展开式计算一个角度的余弦值,采用调用cosx.asm程序方式。调用前只要在数据存储器d_x单元中设定x的弧度值就行了,计算结果在d_cosx单元中。程序中要用到一些存储单元存放数据和变量,如图所示。数据存储器d_xxd_squr_xx2程序存储器d_temptablec1=1/(7*8)d_cosxcosxc2=1/(5*6)c_1(7FFFH)c3=1/(
4、3*4)d_coeff(c1=0249H)c4=1/2(c2=0444H)(c3=0AABH)(c4=4000H)计算余弦值存储单元分配计算结果存储在数据存储单元3.产生正弦波程序先以sinx.asm和cosx.asm程序,计算00~450(间隔为0.50)的正弦和余弦值,再利用sin(2x)=2sin(x)cos(x)求出00~900的正弦值(间隔为10)。然后通过复制,获得00~3590的正弦值。正弦波数据数据存储单元若执行菜单命令“View”→“Graph”→“Time/Frequcecy”就可以观察到所生成的正弦波波形,如图所示。若执
5、行菜单命令“File”→“Data”→“Save”,再按下图所示设置就可将正弦波数据存储在数据文件out.dat中了。7.2FIR滤波器的DSP实现方法1.FIR滤波器的特点z-1z-1z-1z-1x(n)x(n-1)x(n-N+1)x(n-2)h0h1h2hN-2hN-1y(n)图7-9FIR滤波器结构图2.FIR滤波器的DSP实现(1)用线性缓冲区法实现z-1数据存储器数据存储器数据存储器线性缓冲区顶部x(n)PORTR→x(n+1)PORTR→x(n+2)x(n-1)x(n)x(n+1)x(n-2)x(n-1)x(n)x(n-3)x(n
6、-2)x(n-1)↑x(n-4)↑x(n-3)↑x(n-2)*ARx-x(n-5)*ARx-x(n-4)*ARx-x(n-3)N=6的线性缓冲区存存储器图(2)用循环缓冲区法实现z-1数据存储器数据存储器数据存储器循环缓冲区顶部x(n)←ARxx(n)x(n)x(n-1)↓x(n-1)x(n-1)x(n-2)x(n-2)x(n-2)x(n-3)x(n-3)x(n-3)x(n-4)x(n-4)x(n-4)x(n-5)x(n-5)x(n-5)x(n-6)x(n-6)x(n+2)←ARx循环缓冲区底部x(n-7)x(n+1)←ARxx(n+1)↓↓
7、N=8的循环缓冲区存储器图3.FIR滤波器的实现方法(1)用线性缓冲区和直接寻址方法实现FIR滤波器〖例7-1〗N=5,y(n)=h0x(n)+h1x(n-1)+h2x(n-2)+h3x(n-3)+h4x(n-4)数据存储器yy(n)XNx(n)XNM1x(n-1)XNM2x(n-2)XNM3x(n-3)XNM4x(n-4)H0h0H1h1H2h2H3h3H4h4直接寻址线性缓冲区数据分配在数据存储器中存放系数h0~h4,并设置线性缓冲区存放输入数据,如图所示:FIR滤波器的输出(2)用线性缓冲区和间接寻址方法实现FIR滤波器〖例7-2〗N=
8、5,y(n)=h0x(n)+h1x(n-1)+h2x(n-2)+h3x(n-3)+h4x(n-4)在数据存储器中存放系数h0~h4,并设置线性缓冲区存放输入数据,如
此文档下载收益归作者所有