正弦波信号发生器课程设计.doc
文本预览下载声明
太 原 理 工 大 学
DSP原理及应用
课程设计报告书
课题名称 正弦波信号发生器 姓 名 高占冬 学 号 2010001279 院、系、部 信息工程 专 业 通信1002
正弦波信号发生器课程设计
课程设计基础
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。,它所涉及的范围极其广泛。如数学领域中的微积分、概率统计、随机过程、数字分析等都是数字信号处理的基础工具。它与网络理论、信号与系统、控制理论、通信理论、故障诊断等密切相关。
一个典型的DSP系统应包括抗混叠滤波器、数据采集A/D转换器、数字信号处理器DSP、D/A转换器和低通滤波器等组成。
DSP信号处理过程:
将输入信号x(t)进行抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠;
经采样和A/D转换器,将滤波后的信号转换为数字信号x(n);
数字信号处理器对x(n)进行处理,得数字信号y(n);
经D/A转换器,将y(n)转换成模拟信号;
经低通滤波器,滤除高频分量,得到平滑的模拟信号y(t)。
课程设计目的
1、了解DSP对数据的处理能力
2、利用DSP实现正弦信号发生器
课程设计总体方案
总体方案设计
① 基于DSP的特点,本设计采用TMS320C54X系列的DSP作为正弦信号发生器的核心控制芯片。
② 用泰勒级数展开法实现正弦波信号。
③ 设置波形时域观察窗口,得到其滤波前后波形变化图;
④ 设置频域观察窗口,得到其滤波前后频谱变化图。
正弦波信号发生器
正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。
通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。
查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。
泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。
本次主要用泰勒级数展开法来实现正弦波信号。
产生正弦波的算法正弦函数和余弦函数可以展开成泰勒级数,其表达式:
取泰勒级数的前5项,得近似计算式:
递推公式:
sin(nx) = 2cos(x)sin[(n-1)x]-sin[(n-2)x]
cos(nx) = 2cos(x)sin[(n-1)x]-cos[(n-2)x]
由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x)、sin(n-1)x、sin(n-2)xcos(n-2)x。?sin.pjt,装载程序;
2.在程序的适当处加上一个断点。作用:这里定义了一个显示缓冲区dis_buf,
将要输出到D/A的数据送到显示缓冲区当中去,以便在CCS图形显示的时候可以从图形显示中得到数据。
3.打开CCS的图形显示窗口,修改如下参数: Start Address=sin_x、
Page=Data、Acquisition Buffer Size=360、Display Data Size=360;DSP Data Type=16-bit signed integer
4.点击CCS的Debug/Animate运行此程序,就可以在CCS的图形观察窗口看到正弦波的显示。注:Animate运行方式是在遇见断点后继续执行的一种方式,在显示图形是特别方便,显示效果如下:
参考程序:
******************************************************
* 用泰勒级数开展开式计算一个角度的正弦值 *
*sin(x)=x(1-x*x/2*3(1-x*x/4*5(1-x*x/6*7(1-x*x/8*9))))*
******************************************************
.title sinx.asm
.mmregs
.def start
.ref sin_start,d_xs,d_sinx
STACK: .usect STACK,10
start: STM #STACK+10,SP
LD #d_xs,DP
ST #6487H,d_xs ;x--d_xs
CALL sin_start
end: B end
sin_start:
.def sin_start
d_coef_s .usect coef,4
.data
table_s: .word 01C7H ;c1=1/(8*9)
.word 030BH ;c2=1/(6*7)
.word 0666H ;c3=1/(4*
显示全部