DSP课程设计正弦信发生器的设计

合集下载

基于DSP的正弦信号发生器的设计

基于DSP的正弦信号发生器的设计

软件设计
正弦波子程序流程图 :
软件设计
调幅和调相流程图: 调幅和调相流程图:
汇报内容
• • • • • • 背景 正弦波信号发生器的几种实现方法比较 正弦波信号发生器的数字实现 硬件设计 软件设计 结论
结论
文中分析了正弦波的产生原理,并给出了硬 件电路和软件编写流程;设计了一个更好的 实现人机对话的正弦波信号发生器,给出了 显示和键盘的接口电路。该设计改进了传统 的需要用软件界面来输入幅值和频率值的方 法,更方便的实现调节输出波形的幅值和频 率值。
正弦波信号发生的数字实现 产生正弦波的方法有两种:
查表法。 优点:处理速度快;调频调相容易。 不足:要得到较高的精度,存储空间足够大以存放 查找表。 适用:对精度要求不高的场合。 泰勒级数展开法。 优点:需要的存储单元很少;精度高;展开的级数 越多,失真度就越小;调频调相易。 不足:处理速度慢。
正弦波信号发生的数字实现
硬件设计
DSP与LCD显示和键盘连接电路: DSP与LCD显示和键盘连接电路: 显示和键盘连接电路
硬件设计
键盘电路:
汇报内容
• • • • • • 背景 正弦波信号发生器的几种实现方法比较 正弦波信号发生器的数字实现 硬件设计 软件设计 结论
软件设计
主程序流程图: 主程序流程图:
设计采用采用模块化思路来编写,包括主程序、 设计采用采用模块化思路来编写,包括主程序、正 采用模块化思路来编写 弦波产生程序、调幅和调相子程序等功能子程序。 弦波产生程序、调幅和调相子程序等功能子程序。
性差,波形精度不够高且用较多硬件等。
正弦波信号发生器的几种实现方法比较
基于DSP的正弦波信号发生器:
组成:DSP处理芯片、 D/A转换器等。 优点:可程控调幅、调频,调节精度高,实

基于DSP设计正弦信号发生器

基于DSP设计正弦信号发生器

基于DSP设计正弦信号发生器一.设计目的设计一个基于DSP的正弦信号发生器二.设计内容利用基于CCS开发环境中的C54X汇编语言来实现正弦信号发生装置。

三.设计原理一般情况,产生正弦波的方法有两种:查表法和泰勒级数展开法。

查表法是使用比较普遍的方法,优点是处理速度快,调频调相容易,精度高,但需要的存储器容量很大。

泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。

本文采用了泰勒级数展开法。

一个角度为θ的正弦和余弦函数,可以展开成泰勒级数,取其前5项进行近似得:式中:x为θ的弧度值,x=2πf/fs(fs是采样频率;f是所要发生的信号频率。

正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。

整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。

三.总体方案设计本设计采用TMS320C54X系列的DSP作为正弦信号发生器的核心控制芯片。

通过计算一个角度的正弦值和余弦值程序可实现正弦波,其步骤如下:1.利用sinx和cosx子程序,计算0°~45°(间隔为0.5°)的正弦和余弦值2.利用sin(2x)=2sin(x)cos(x)公式,计算0°~90°的正弦值(间隔为1°)3.通过复制,获得0°~359°的正弦值4.将0°~359°的正弦值重复从PA口输出,便可得到正弦波四.软件操作DSP 集成开发环境 CCS是 Code Composer Studio 的缩写,即代码设计工作室。

它是 TI 公司推出的集成可视化 DSP 软件开发工具。

DSP CCS 内部集成了以下软件工具:◆ DSP 代码产生工具(包括 DSP 的 C 编译器、汇编优化器、汇编器和链接器)◆ CCS 集成开发环境(包括编辑、建立和调试 DSP 目标程序)◆ 实时基础软件 DSP/BIOS (必须具有硬件开发板)◆ RTDX、主机接口和 API(必须具有硬件开发板)在 CCS 下,用户可以对软件进行编辑、编译、调试、代码性能测试(profile)和项目管理等工作。

正弦波信号发生器的DSP设计

正弦波信号发生器的DSP设计

正弦波信号发生器的DSP设计摘要:数字信号处理器(DSP)是在模拟信号变成数字信号以后进行高速实时处理的专用处理器。

DSP芯片以其独特的结构和快速实现各种数字信号处理算法的突出优点,发展十分迅速。

本文介绍了正弦信号产生的典型算法,并结合数字振荡器原理,应用迭代法编程完成了TMS320VC5402 DSP 正弦波信号发生器的设计。

关键词:DSP;正弦振荡;信号发生器正弦信号发生器能输出一个幅度可调、频率可调的正弦信号,特别是低频正弦信号发生器在科学研究及生产实践中均有着广泛应用。

目前,常用的信号发生器绝大部分是由模拟电路构成的。

当这种模拟信号发生器用于低频信号输出时,往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大。

而由数字电路构成的低频信号发生器,虽然其低频性能好,但体积较大,价格较贵。

而借助DSP芯片的运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的任意一种信号发生器速度更快,且实现更加简便。

1正弦波信号的产生方式1.1采样回放法通过对已有的标准正弦信号源进行采样得到数据后直接回放或进行变频变幅处理后回放。

该方法的关键在于合理设计高性能的硬件电路,尽量避免信号处理过程中的波形失真,来确保采样数据的精准性。

同时在数字域处理时,数据的回归点数必须满足Nyquist定理,以免频谱混迭情况的发生。

1.2查表法5402的片内ROM中存有256字的正弦及余弦数据表,可以通过程序直接调用该表中的数据,由D/A回放出正弦波。

通过MATLAB模拟仿真自己生成的正弦数据表,不但可以解决频率单一的问题,还可以增加精度,并改善系统的兼容性。

1.3泰勒级数展开法任一角度的正弦及余弦波都可以展开成泰勒级数,取前五项的近似公式为:其中:α为角度值,ω为其对应的弧度值。

通过变换的α值,且利用弧度与频率之间的关系很容易实现变频处理。

1.4数字正弦振荡器数字正弦波振荡器的系统函数可表示为:对应的是在单位圆上有复共轭极点的二阶振荡器,共扼极点为:P1,2=e±jω0,其离散时域脉冲单位冲击响应响应:h(n)=Asin[(n+1)ω0]·u(n)实际应用中对于给定的冲激信号所产生的正弦信号对应的差分方程为:如果系统无阻尼且稳定,我们不对系统加入冲击信号,改变y(-2)的起始值,从而使系统满足起始条件。

基于DSP的正弦信号发生器

基于DSP的正弦信号发生器

基于DSP的正弦信号发生器1.正弦信号在各种科学和工程领域中广泛应用,如通信系统、音频处理、医学诊断等。

因此,制作一个能够生成正弦信号的设备是非常必要的。

传统的方法是使用模拟电路,但这种方法需要用到很多电子元器件,难以控制和调整。

同时,传统的模拟电路还容易受到电磁干扰、温度等环境因素的影响,导致输出的信号失真。

因此,数字信号处理(DSP)技术逐渐成为生成正弦波信号的常见方法,能够实现高精度、低失真的输出。

2. 设计概述本文介绍一种基于DSP的正弦信号发生器的设计。

该设计采用TMS320C5505数字信号处理芯片和信号解调电路,通过软件和硬件设计,实现了一个高精度、低失真的正弦信号发生器。

2.1 硬件设计本设计采用了TMS320C5505数字信号处理器集成电路作为主控芯片。

该芯片具有低功耗、高性能、灵活性和易于开发等优点。

除此之外,还需要电源模块、时钟模块、信号解调模块等。

2.2 软件设计本设计采用了C语言进行程序设计。

使用Code Composer Studio作为开发环境,将程序编译后烧录到芯片中。

代码的主要实现过程为:1.生成一个只包含一周期正弦波形的信号2.将该信号送入DA(Digital to Analog)转换器,使其变为模拟信号3.经过信号解调器后输出到外部接口信号的生成采用的是Taylor级数展开,可以实现高精度的波形生成。

信号解调电路主要是由低通滤波器、防干扰电路和放大电路等模块组成。

3. 实验结果经过实验测试,本设计输出的正弦波信号的频率可以在0~10kHz范围内任意设定。

信号的失真率小于0.1%。

同时,本设计还支持正弦波的相位调节和幅度调节等功能。

通过外部的控制,可以实现信号的精准控制和调节。

4.本文介绍了一种基于DSP的正弦信号发生器的设计,通过使用数字信号处理技术,实现了高精度、低失真的正弦波信号的生成。

该设计具有灵活性和可扩展性,可以为各种科学和工程领域提供高精度的正弦信号源。

基于DSP的正弦波信号发生器(汇编语言)

基于DSP的正弦波信号发生器(汇编语言)

正弦波信号发生器一、实验目的1.了解用泰勒级数展开法计算角度正弦值和余弦值;2.了解产生正弦信号的方法;3.熟悉使用汇编语言编写较复杂的程序;4.熟悉在CCS 环境下计算角度正弦值和余弦值及产生正弦波的方法;二、实验原理泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。

正弦函数和余弦函数可以展开成泰勒级数,其表达式:递推公式: sin()2cos()sin[(1)]sin[(2)]cos()2cos()sin[(1)]cos[(2)]nx x n x n x nx x n x n x =---=--- 由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x )、sin(n -1)x 、sin(n -2)x 和cos(n -2)x 。

用这种方法求少数点还可以,如产生连续正弦波、余弦波,则积累误差太大,不可取。

下面主要用泰勒级数展开法求正弦和余弦值,以及产生正弦波的方法。

三、实验内容与步骤1.用泰勒级数展开法计算sin(x)的值;(1)在 CCS 中新建项目:sinx.pjt ,建立文件sinx.asm 、vectors.asm 和sinx.cmd 。

并将此三个文件加入到项目中。

******************************************************* 用泰勒级数开展开式计算一个角度的正弦值 **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 startSTACK: .usect "STACK",10start: STM #STACK+10,SPLD #d_x,DPST #6487H,d_x ;x-->d_x CALLsin_start end:B end sin_start:35792222sin()3!5!7!9! 111123456789(((())))x x x x x x x x x x x =-+-+=----⨯⨯⨯⨯24682222cos()12!4!6!8! 11112345678((()))x x x x x x x x x =-+-+=----⨯⨯⨯.def sin_startd_coeff .usect "coeff",4.datatable: .word 01C7H ;c1=1/(8*9).word 030BH ;c2=1/(6*7).word 0666H ;c3=1/(4*5).word 1556H ;c4=1/(2*3)d_x .usect "sin_vars",1d_squr_x .usect "sin_vars",1d_temp .usect "sin_vars",1d_sinx .usect "sin_vars",1c_1 .usect "sin_vars",1.textSSBX FRCTSTM #d_coeff,AR5RPT #3MVPD #table,*AR5+STM #d_coeff,AR3STM #d_x,AR2STM #c_1,AR4ST #7FFFH,c_1SQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2MPYA A ;A=T*A=x^2(1-x^2/72)STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)MASR *AR2-,*AR3+,B,A ;A=1-x^2/42(1-x^2/72),T=x^2(1-x^2/72)MPYA *AR2+ ;B=x^2(1-x^2/42(1-x^2/72))ST B,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72))MPYA *AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))ST B,*AR2 ;(d_temp)=B||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))MPYA d_x ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))STH B,d_sinx ;sin(theta)RET.end*******************************************************中断向量文件vectors.asm******************************************************.title "vectors.asm".ref start.sect ".vectors"B start.end*******************************************************链接命令文件******************************************************vectors.objsinx.obj-O sinx.out-m sinx.map-estartMEMORY{PAGE 0:EPROM: org=0090H,len=0F70HVECS: org=0080H,len=0010HPAGE 1:SPRAM: org=1000H,len=1000HDARAM: org=2000H,len=2000H}SECTIONS{.text :>EPROM PAGE 0.data :>EPROM PAGE 0STACK :>SPRAM PAGE 1sin_vars :>DARAM PAGE 1coeff :>DARAM PAGE 1.vectors :>VECS PAGE 0}(2)编译、链接项目文件sinx.pjt。

基于DSP的正弦信号发生器的设计

基于DSP的正弦信号发生器的设计

/(/A)低16位→d_xc
sinx
/调/ 用sinx程序
cosx
/调/ 用cosx程序
#d_sinx,DP /D/P←d_sinx
@d_sinx,16,A /A/=sin(x)
@d_cosx
/B/= sin(x)*cos(x)
B,1,*AR6+
/A/R6→2*sin(x)*cos(x)
*AR1+0

ST
A,*AR2 /(/ A)左移16位→AR2
||LD *AR4,B /(/ AR4)左移16位→B
MASR
*AR2+,*AR3+,B,A /从/ 累加器A中减去(AR2)
*(AR3)
MPYA
A
/操/ 作数与累加器A中高位相乘
STH
A,*AR2 /(/ A)高16位→AR2
MASR
*AR2-,*AR3+,B,A /从/ 累加器A中减去(AR2)
.text
定//义文本代码段
SSBX
FRCT
/F/RCT=1以清除冗余符号位
STM
#d_coef_c,AR5 /A/R5指向d_coef_c首地址
RPT
#3
重//复下条指令4次
MVPD
#table_c,*AR5+ /把/ table_c中的数复制到中
AR5
STM
#d_coef_c,AR3 /A/R3指向d_coef_c首地址
d_temp_c .usect "cos_vars",1 //为d_temp_c中cos_vars保存1个存储
单元
d_cosx .usect "cos_vars",1 //为d_cosx中cos_vars保存1个存储单

基于DSP的正弦波信号发生器设计

基于DSP的正弦波信号发生器设计

基于DSP的正弦波信号发生器设计————————————————————————————————作者:————————————————————————————————日期:目录第1章绪论 (1)1 DSP简介 (1)第2章总体方案的分析和设计 (2)2.1 总体方案设计 (2)2.2正弦波信号发生器 (2)第3章硬件设计 (3)3.1硬件组成 (3)3.2控制器部分 (4)3.4人机接口部分 (5)第4章软件设计 (6)4.1流程图 (6)4.2 正弦信号发生器程序清单 (7)第5章总结 (12)参考文献 (12)第1章 绪论1 DSP 简介数字信号处理(Digital Signal Processing ,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。

在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。

图一是数字信号处理系统的简化框图。

此系统先将模拟信号转换为数字信号,经数字信号处理后,再转换成模拟信号输出。

其中抗混叠滤波器的作用是将输入信号x (t)中高于折叠频率的分量滤除,以防止信号频谱的混叠。

随后,信号经采样和A/D 转换后,变成数字信号x(n)。

数字信号处理器对x(n)进行处理,得到输出数字信号y (n),经D/A 转换器变成模拟信号。

此信号经低通滤波器,滤除不需要的高频分量,最后输出平滑的模拟信号y(t)。

图1.1 数字信号处理系统简化框图数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。

例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。

近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。

dsp-正弦波信号发生器课程设计.

dsp-正弦波信号发生器课程设计.

※※※※※※※※※※2009级学生DSP原理※※※※及应用课程设计※※※※※※※※※※太原理工大学DSP原理及应用课程设计报告书课题名称正弦波信号发生器姓名学号院、系、部专业正弦波信号发生器课程设计一、课程设计基础数字信号处理(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实现正弦信号发生器三、课程设计总体方案1. 总体方案设计①基于DSP的特点,本设计采用TMS320C54X系列的DSP作为正弦信号发生器的核心控制芯片。

②用泰勒级数展开法实现正弦波信号。

③设置波形时域观察窗口,得到其滤波前后波形变化图;④设置频域观察窗口,得到其滤波前后频谱变化图。

2. 正弦波信号发生器正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。

通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。

基于dsp技术的正弦信号发生课程设计

基于dsp技术的正弦信号发生课程设计

第一章:绪论数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。

在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。

图一是数字信号处理系统的简化框图。

此系统先将模拟信号转换为数字信号,经数字信号处理后,再转换成模拟信号输出。

其中抗混叠滤波器的作用是将输入信号x(t)中高于折叠频率的分量滤除,以防止信号频谱的混叠。

随后,信号经采样和A/D转换后,变成数字信号x(n)。

数字信号处理器对x(n)进行处理,得到输出数字信号y(n),经D/A转换器变成模拟信号。

此信号经低通滤波器,滤除不需要的高频分量,最后输出平滑的模拟信号y(t)。

图一数字信号处理系统简化框图数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。

例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。

近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。

可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。

第二章:TMS320C54x芯片介绍1.总线结构C54x 包括8 条16 比特宽度的总线,其中:一条程序总线(PB):传送取自程序存储器的指令代码和立即操作数三条数据总线(CB、DB、EB):将内部个单元连接在一起,CB和DB传送读自数据存储器的数据,EB传送写入存储器的数据四条地址总线(PAB CAB DAB EAB):传送执行指令所需的地址2.C P UC54x 的CPU 结构包括:40 比特的ALU ,其输入来自16 比特立即数、16 比特来自数据存储器的数据、暂时存储器、T 中的16 比特数、数据存储器中两个16 比特字、数据存储器中32 比特字、累加器中40 比特字。

DSP原理及应用课程设计

DSP原理及应用课程设计

DSP原理及应用课程设计正弦信号发生器的实现专业班级:通信0902姓名:高雯菁学号:2009001342同组人:扆立人、陈威、段进涛、侯勇强、黄飞、冀鑫、贾华萍一、设计目的1、学会用CCS 集成开发软件,在开发环境下完成工程项目创建,程序编辑,编译,链接,调试和数据分析。

2、掌握正弦波信号的DSP 实现原理和C54X 编程技巧,进一步加深对CCS 的认识3、学习使用CCS 的波形能通过 CCS 的图形显示工具观察正弦信号波形二、设计内容用DSP 汇编语言进行编程,利用CCS 软件产生正弦波三、设计原理正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。

通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。

查表法是通过查表的方式来实现正弦波,主要用于对精度要求不高的场合。

泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。

本次主要用泰勒级数展开法来实现正弦波信号。

产生正弦波的算法正弦函数和余弦函数可以展开成泰勒级数,其表达式:取泰勒级数的前5项,得近似计算式:-+-+-=!9!7!5!3)sin(9753x x x x x x-+-+-=!8!6!4!21)cos(8642xx x x x ))))((((981761541321 !9!7!5!3)sin(22229753⨯-⨯-⨯-⨯-=+-+-=x x x x x x x x x x x递推公式: 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)x 和cos(n -2)x 。

利用计算一个角度的正弦值和余弦值程序可实现正弦波。

基于DSP的正弦波信号发生器

基于DSP的正弦波信号发生器

《DSP应用》论文题目:基于TMS320C54X DSP任意信号发生器设计学院:信息学院专业班级:班姓名:学号:指导教师:王洪群时间:4. 总体方案设计1.基于DSP 的特点,本设计采用TMS320C54X 系列的DSP 作为正弦信号发生器的核心控制芯片。

2.用泰勒级数展开法实现正弦波信号。

3.设置波形时域观察窗口,得到其滤波前后波形变化图;4.设置频域观察窗口,得到其滤波前后频谱变化图。

硬件设计 4.1硬件组成基于DSP 的信号发生器的硬件结构图如图3.1所示,它主要由DSP 主控制器,输出D/A 通道和人机界面等几个主要部分组成。

图4.1 基于DSP 的信号发生器系统框图 4.2控制器部分本系统采用TI 公司的TMS320LF2407 DSP 处理器,该器件具有外设集成度高,程序存储器容量大,A/D 转换精度高,运算速度高,I/O 口资源丰富等特点,芯片内部集成有32KB 的FLASH 程序存储器、2KB 的数据/程序RAM ,两个事件管理器模块(EVE 和EVB )、16通道A/D 转换器、看门狗定时器模块、16位的串行外设接口(SPI )模DSP 微控制器 TMS320LF 2407 PGE段驱动器 2*SN74LS07四位LED位驱动器 74LS07 缓冲及电平转换电路输出三相 正弦波 独立式四 键功能键有源滤波 电路减法电路放大电路 AD624电源(自带复位功能)ClockCircuit块、40个可单独编程或复用的通用输入输出引脚(GPIO )以及5个外部中断和系统监视模块。

4.3微输出D/A 通道部分本系统的输出通道部分主要负责实现波形的输出,此通道的入口为TMS320LF2407的PWM8口,可输出SPWM 等幅脉冲波形,出口为系统的输出端,这样,经过一系列的中间环节,便可将PWM 脉冲波转化为交流正弦波形,从而实现正弦波的输出,其原理框图如图3.2所示。

图4.2 输出通道的原理结构图4.2中的缓冲电路的作用是对PWM 口输出的数字量进行缓冲,并将电压拉高到5V 左右,以供后级模拟电路滤波使用。

DSP课程设计--正弦信号发生器的设计

DSP课程设计--正弦信号发生器的设计

DSP课程设计–正弦信号发生器的设计简介正弦信号发生器是一种常见的电子信号发生器。

在数字信号处理中,正弦信号是非常重要的一种基础信号。

在本次课程设计中,我们将使用MATLAB软件设计一个正弦信号发生器。

设计步骤步骤一:信号采样我们的信号采样频率为fs,即每秒采样多少个点。

首先我们需要设置采样频率。

信号采样频率的选取需要满足采样定理,保证采样信号能够完全还原原信号。

我们使用MATLAB的“fs”命令设置采样频率。

假设我们的采样频率为10KHz,代码为:fs = 10000; % 设置采样频率为10KHz步骤二:生成时域正弦信号根据正弦波方程,我们可以生成时域上的正弦信号:f0 = 1000; % 正弦信号的频率为1kHzA = 1; % 正弦信号的幅度为1Vt = 0:1/fs:1; % 假设信号长度为1秒y = A * sin(2 * pi * f0 * t);代码中,我们生成了一个正弦信号,频率为1kHz,幅度为1V,信号长度为1秒,并将其存放在y变量中。

步骤三:对信号进行FFT变换为了验证我们生成的信号是否正确,我们需要对信号进行FFT变换。

FFT变换可以将一个时域信号转化为频域信号。

我们使用MATLAB的“fft”命令对信号进行FFT变换。

代码如下:Y = fft(y); % 对信号y进行FFT变换,得到频域信号YL = length(y); % 计算信号的长度P2 = abs(Y/L); % 取FFT变换结果的绝对值,然后除以长度LP1 = P2(1:L/2+1);P1(2:end-1) = 2*P1(2:end-1);f = fs*(0:(L/2))/L; % 生成频率坐标轴代码中,我们使用FFT变换对信号y进行变换,并将结果存放在Y变量中。

然后我们根据FFT变换结果,得到频率分量以及对应的幅度分量。

步骤四:绘制频域正弦信号最后,我们使用MATLAB的plot函数绘制频域信号采样结果图。

DSP课程设计

DSP课程设计

题目一:正弦波信号发生器一、设计题目:正弦波信号发生器二、设计目的:1、掌握正弦波发生器的工作原理2、掌握如何用汇编语言实现正弦波信号发生器3、熟悉CCS操作环境三、设计要求:1、用汇编语言设计一个正弦波信号发生器2、在CCS环境下实现正弦信号发生器四、设计原理:正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。

通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。

查表法主要用于精度要求不是很高的场合,而泰勒级数展开法是一种比查表法更为有效的方法,它能精确地计算出一个角度的正弦值和余弦值,且只需较小的存储空间。

五、正弦波的实现利用计算一个角度的正弦值和余弦值可实现正弦波。

其实现步骤如下:第一步:利用sin_start和cos_start子程序,计算0~45(间隔为0.5)的正弦值和余弦值;第二部:利用sin(2x)=2sin(x)cos(x)公式,计算0~90的正弦值(间隔为1);第三部:通过复制,获得0~359的正弦值;第四步:将0~359的正弦值重复从PA口输出,便可得到正弦波。

产生正弦波源程序清单sin.asm:.title “sin.asm”.mmregs.def start.def d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x: .usect "sin_x",360STACK: .usect "STACK",10Hk_theta .set 286 ;theta=pi/360(0.5deg)start:.textSTM #STACK+10H,SPSTM k_theta,AR0STM 0,AR1STM #sin_x,AR6STM #90,BRCRPTB loop1-1LDM AR1,ASTL A,@d_xsSTL A,@d_xcCALL sinx ;d_sinx=sin(x)CALL cosx ;d_cosx=cos(x)LD #d_sinx,DPLD @d_sinx,16,A ;A=sin(x)MPYA @d_cosx ;B=sin(x)*cos(x)STH B,1,*AR6+ ;AR6----2*sin(x)MAR *AR1+0loop1: STM #sin_x+89, AR7 ;sin91(deg.)-sin179(deg.)STM #88,BRCRPTB loop2-1LD *AR7-,ASTL A,*AR6+loop2: STM #179,BRC ;sin180(deg.)-sin359(deg.)STM #sin_x,AR7RPTB loop3-1LD *AR7+,ANEG ASTL A,*AR6+loop3: STM #sin_x,AR6 ;generate sin waveSTM #1,AR0STM #360,BKB loop3sinx:.def d_xs,d_sinx.datatable_s .word 01C7H ;C1=1/(8*9).word 030BH ;C2=1/(6*7).word 0666H ;C3=1/(4*5).word 1556H ;C4=1/(2*3)d_coef_s .usect "coef_s",4d_xs .usect "sin_vars",1d_squr_xs .usect "sin_vars",1d_temp_s .usect "sin_vars",1d_sinx .usect "sin_vars",1d_l_s .usect "sin_vars",1.textSSBX FRCTSTM #d_coef_s,AR5 ;move coeffs table_sRPT #3MVPD #table_s,*AR5+STM #d_coef_s,AR3STM #d_l_s,AR4ST #7FFFH,d_l_sSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2MPYA A ;A=T*A=x^2(1-x^2/72)STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)MASR*AR2-,*AR3+,B,A ;A=1-x^2/42(1-x^2/72);T=x^2(1-x^2/72)MPYA*AR2+ ;B=x^2(1-x^2/42(1-x^2/72))STB,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72))||LD *AR4,B ;B=1MASR*AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72))MPYA*AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))ST B,*AR2 ;(d_temp)=B||LD *AR4,B ;B=1MASR*AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))MPYAd_xs ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))STH B,d_sinx ;sin(theta)RETcosx:.def d_xc,d_cosxd_coef_c .usect "coef_c",4.datatable_c .word 0249H ;C1=1/(7*8).word 0444H ;C2=1/(5*6).word 0AABH ;C3=1/(3*4).word 4000H ;C4=1/2d_xc .usect "cos_vars",1d_squr_xc .usect "cos_vars",1d_temp_c .usect "cos_vars",1d_cosx .usect "cos_vars",1c_l_c .usect "cos_vars",1.textSSBX FRCTSTM #d_coef_c,AR5 ;move coeffs table_cRPT #3MVPD #table_c,*AR5+STM #d_coef_c,AR3STM #d_xc,AR2STM #c_l_c,AR4ST #7FFFH,c_l_cSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2MPYA A ;A=T*A=x^2(1-x^2/56)STH A,*AR2 ;(d_temp)=x^2(1-x^2/56)MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56); T=x^2(1-x^2/56)MPYA*AR2+ ;B=x^2(1-x^2/30(1-x^2/56))STB,*AR2 ;(d_temp)=x^2(1-x^2/30(1-x^2/56))||LD *AR4,B ;B=1MASR*AR2-,*AR3+,B,A ;A=1-x^2/12(1-x^2/30(1-x^2/56))SFTA A,-1,A ;-1/2NEG AMPYA*AR2+ ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))MAR *AR2+RETDADD*AR4,16,B ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))STH B,*AR2 ;cos(theta)RET.end产生正弦波链接命令文件sin.cmdMEMORY{PAGE 0:EPROM: org=0E000H, len=1000HVECS: org=0FF80H, len=0080HPAGE 1:SPRAM: org=0060H, len=0020HDARAM1: org=0080H, len=0010HDARAM2: org=0090H, len=0010HDARAM3: org=0200H, len=0200H}SECTIONS{.text :> EPROM PAGE 0.data :> EPROM PAGE 0STACK :> SPRAM PAGE 1sin_vars :> DARAM1 PAGE 1coef_s :> DARAM1 PAGE 1cos_vars :> DARAM2 PAGE 1coef_c :> DARAM2 PAGE 1sin_x : align(512) {} > DARAM3 PAGE 1.vectors :>VECS PAGE 0}六、产生的波形七、设计总结课程设计对于大学生是一门非常重要的课程,是一门将理论用于实践的重要课程。

基于DSP的正弦信号发生器的设计

基于DSP的正弦信号发生器的设计

图1 程序流程图
4、 程序设计
4.1 产生正弦波程序清单sin.asm
.title "sin.asm" //为汇编文件取名为“sin.asm”
.mmregs
/定/ 义存储器映像寄存器
.def
_c_int00
.ref
sinx,d_xs,d_sinx,cosx,d_xc,d_cosx //定义标

sin_x: .usect "sin_x",360 //为"sin_x"保留360个存储空间
MPYA
*AR2+ /B/=x^2(1-x^2/30(1-x^2/56))
2(1-x^2/30(1-x^2/56))
||LD *AR4,B //B=1
MASR
*AR2-,*AR3+,B,A //A= 1-x^2/12(1-x^2/30(1-x^2/56))
SFTA
A,-1,A
NEG
A
MPYA
*AR2+ //B=1-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
STM
#d_xc,AR2
/A/R2 指向d_xc首地址
STM
#c_l_c,AR4 /A/R4指向c_l_c首地址
ST
#7FFFh,c_l_c /7/FFFh→c_l_c
SQUR
*AR2+,A
/求/ x的平方存放在累加器A中
ST
A,*AR2
/(/ A)左移16位→AR2
||LD *AR4,B
/(/ AR4)左移16位→B
d_temp_c .usect "cos_vars",1 //为d_temp_c中cos_vars保存1个存储

基于dsp的正弦波发生器课程设计概要

基于dsp的正弦波发生器课程设计概要

第1章 绪论1.1 DSP 简介数字信号处理(Digital Signal Processing ,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。

在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。

图一是数字信号处理系统的简化框图。

此系统先将模拟信号转换为数字信号,经数字信号处理后,再转换成模拟信号输出。

其中抗混叠滤波器的作用是将输入信号x (t)中高于折叠频率的分量滤除,以防止信号频谱的混叠。

随后,信号经采样和A/D 转换后,变成数字信号x(n)。

数字信号处理器对x(n)进行处理,得到输出数字信号y (n),经D/A 转换器变成模拟信号。

此信号经低通滤波器,滤除不需要的高频分量,最后输出平滑的模拟信号y(t)。

图1.1 数字信号处理系统简化框图数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。

例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。

近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。

可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为抗混叠 滤波器A/D数字信号处理D/A低通滤波器x(n)y(n) x(t)y(t)一系列新兴学科的理论基础。

1.2课题研究的目的意义科技的进步带动了DSP技术的发展,现代控制设备的性能和结构发生了巨大的变化,我们已经进入了高速发展的信息时代,DSP技术也成为当今科技的主流之一,被广泛地应用于生产的各个领域。

对于本次设计,其目的在于:(1) 了解DSP及DSP控制器的发展过程及其特点。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

D S P课程设计正弦信发生器的设计SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#太原理工大学DSP课程设计:正弦信号发生器的设计学号:班级:姓名:指导教师:一、设计目的1、通过实验掌握DSP的软件开发过程2、学会运用汇编语言进行程序设计3、学会用CCS仿真模拟DSP芯片,通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。

二、设计原理三、本实验产生正弦波的方法是泰勒级数展开法。

泰勒级数展开法需要的单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。

求一个角度的正弦值取泰勒级数的前5项,得近似计算式:四、总体方案设计本实验是基于CCS开发环境的。

CCS是TI公司推出的为开发TMS320系列DSP软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一。

它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。

通过CCS软件平台上应用C54X汇编语言来实现正弦信号发生装置。

总体思想是:正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。

整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。

五、设计内容1、设置在Family下选择C55xx,将看到所有C55xx的仿真驱动,包括软件仿真和硬件仿真;在Platform下选择Simulator,在Available Factory Boards中只显示软件仿真驱动,选中相应的驱动;双击C55xx Rev4.0 CPU Functional Simulator,可以在My System下看到所加入的驱动;点击Save & Quit,将保存设置退出Setup CCStudio v3.1并启动运行CCStudio。

2、编写汇编源程序sin。

3.、建立汇编源程序在CCS环境下,点击file/new/source file菜单命令,打开一个空白文档,将汇编程序输入。

单击file/save菜单命令,在D:\program files\ti\myprojects下保存文件名为sin,并选择保存类型为*.asm。

4、建立链接命令文件。

5、创建新的工程文件启动CCS,在Project菜单中选择New项,在Project中输入denglin,CCS将创建一个名为denglin.pjt的工程。

6、将文件添加到工程中在工程中添加源文件,执行菜单project/add files to project,把sin文件添加到工程中。

7、生成和运行程序(1)选择菜单命令Project→Rebuild All,对工程重新编译、汇编和链接,主窗口下方的信息窗口将显示build进行汇编、编译和链接的相关信息。

(2)选择菜单命令File→Load Program,在当前目录的Debug目录下选择sin并打开,将Build生成的程序加载到DSP中。

(3)选择菜单命令Debug→Run或在Debug工具栏上单击Run按钮,运行该程序。

8、观察运行结果点击view/gragh菜单命令观看图像六、主要参数七、源程序汇编源程序sin.mmregs.def start.def d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x: .usect "sin_x",360STACK: .usect "STACK",10Hk_theta .set 286 ;theta=pi/360(0.5deg)start:.textSTM #STACK+10H,SPSTM k_theta,AR0STM 0,AR1STM #sin_x,AR6STM #90,BRCRPTB loop1-1LDM AR1,ALD #d_xs,DPSTL A,@d_xsSTL A,@d_xcCALL sinx ;d_sinx=sin(x)CALL cosx ;d_cosx=cos(x)LD #d_sinx,DPLD @d_sinx,16,A ;A=sin(x)MPYA @d_cosx ;B=sin(x)*cos(x)STH B,1,*AR6+ ;AR6----2*sin(x)MAR *AR1+0loop1: STM #sin_x+89, AR7 ;sin91(deg.)-sin179(deg.)STM #88,BRCRPTB loop2-1LD *AR7-,ASTL A,*AR6+loop2: STM #179,BRC ;sin180(deg.)-sin359(deg.)STM #sin_x,AR7RPTB loop3-1LD *AR7+,ANEG ASTL A,*AR6+loop3: STM #sin_x,AR6 ;generate sin waveSTM #1,AR0STM #360,BKB loop3sinx:.def d_xs,d_sinx.datatable_s .word 01C7H ;C1=1/(8*9).word 030BH ;C2=1/(6*7).word 0666H ;C3=1/(4*5).word 1556H ;C4=1/(2*3)d_coef_s .usect "coef_s",4d_xs .usect "sin_vars",1d_squr_xs .usect "sin_vars",1d_temp_s .usect "sin_vars",1d_sinx .usect "sin_vars",1d_l_s .usect "sin_vars",1.textSSBX FRCTSTM #d_coef_s,AR5 ;move coeffs table_s RPT #3MVPD #table_s,*AR5+STM #d_coef_s,AR3STM #d_xs,AR2STM #d_l_s,AR4ST #7FFFH,d_l_sSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2MPYA A ;A=T*A=x^2(1-x^2/72)STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)MASR *AR2-,*AR3+,B,A ;A=1-x^2/42(1-x^2/72);T=x^2(1-x^2/72)MPYA *AR2+ ;B=x^2(1-x^2/42(1-x^2/72)) ST B,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72))MPYA *AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))ST B,*AR2 ;(d_temp)=B||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))MPYA d_xs ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))STH B,d_sinx ;sin(theta)RETcosx:.def d_xc,d_cosxd_coef_c .usect "coef_c",4.datatable_c .word 0249H ;C1=1/(7*8).word 0444H ;C2=1/(5*6).word 0AABH ;C3=1/(3*4).word 4000H ;C4=1/2d_xc .usect "cos_vars",1d_squr_xc .usect "cos_vars",1d_temp_c .usect "cos_vars",1d_cosx .usect "cos_vars",1c_l_c .usect "cos_vars",1.textSSBX FRCTSTM #d_coef_c,AR5 ;move coeffs table_cMVPD #table_c,*AR5+STM #d_coef_c,AR3STM #d_xc,AR2STM #c_l_c,AR4ST #7FFFH,c_l_cSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2MPYA A ;A=T*A=x^2(1-x^2/56)STH A,*AR2 ;(d_temp)=x^2(1-x^2/56) MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56);T=x^2(1-x^2/56)MPYA *AR2+ ;B=x^2(1-x^2/30(1-x^2/56)) ST B,*AR2 ;(d_temp)=x^2(1-x^2/30(1-x^2/56))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/12(1-x^2/30(1-x^2/56))SFTA A,-1,A ;-1/2NEG AMPYA *AR2+ ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))MAR *AR2+RETDADD *AR4,16,B ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))STH B,*AR2 ;cos(theta)RET.end .mmregs.def start.def d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x: .usect "sin_x",360STACK: .usect "STACK",10Hk_theta .set 286 ;theta=pi/360(0.5deg)start:.textSTM #STACK+10H,SPSTM k_theta,AR0STM 0,AR1STM #sin_x,AR6STM #90,BRCRPTB loop1-1LD #d_xs,DPSTL A,@d_xsSTL A,@d_xcCALL sinx ;d_sinx=sin(x)CALL cosx ;d_cosx=cos(x)LD #d_sinx,DPLD @d_sinx,16,A ;A=sin(x)MPYA @d_cosx ;B=sin(x)*cos(x)STH B,1,*AR6+ ;AR6----2*sin(x)MAR *AR1+0loop1: STM #sin_x+89, AR7 ;sin91(deg.)-sin179(deg.)STM #88,BRCRPTB loop2-1LD *AR7-,ASTL A,*AR6+loop2: STM #179,BRC ;sin180(deg.)-sin359(deg.)STM #sin_x,AR7RPTB loop3-1LD *AR7+,ANEG ASTL A,*AR6+loop3: STM #sin_x,AR6 ;generate sin waveSTM #1,AR0STM #360,BKB loop3sinx:.def d_xs,d_sinx.datatable_s .word 01C7H ;C1=1/(8*9).word 030BH ;C2=1/(6*7).word 0666H ;C3=1/(4*5).word 1556H ;C4=1/(2*3)d_coef_s .usect "coef_s",4d_xs .usect "sin_vars",1d_squr_xs .usect "sin_vars",1d_temp_s .usect "sin_vars",1d_sinx .usect "sin_vars",1d_l_s .usect "sin_vars",1.textSSBX FRCTSTM #d_coef_s,AR5 ;move coeffs table_s RPT #3MVPD #table_s,*AR5+STM #d_coef_s,AR3STM #d_xs,AR2STM #d_l_s,AR4ST #7FFFH,d_l_sSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2MPYA A ;A=T*A=x^2(1-x^2/72)STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)MASR *AR2-,*AR3+,B,A ;A=1-x^2/42(1-x^2/72);T=x^2(1-x^2/72)MPYA *AR2+ ;B=x^2(1-x^2/42(1-x^2/72)) ST B,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72))MPYA *AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))ST B,*AR2 ;(d_temp)=B||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))MPYA d_xs ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))STH B,d_sinx ;sin(theta)RETcosx:.def d_xc,d_cosxd_coef_c .usect "coef_c",4.datatable_c .word 0249H ;C1=1/(7*8).word 0444H ;C2=1/(5*6).word 0AABH ;C3=1/(3*4).word 4000H ;C4=1/2d_xc .usect "cos_vars",1d_squr_xc .usect "cos_vars",1d_temp_c .usect "cos_vars",1d_cosx .usect "cos_vars",1c_l_c .usect "cos_vars",1.textSSBX FRCTSTM #d_coef_c,AR5 ;move coeffs table_cRPT #3MVPD #table_c,*AR5+STM #d_coef_c,AR3STM #d_xc,AR2STM #c_l_c,AR4ST #7FFFH,c_l_cSQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2MPYA A ;A=T*A=x^2(1-x^2/56)STH A,*AR2 ;(d_temp)=x^2(1-x^2/56) MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56);T=x^2(1-x^2/56)MPYA *AR2+ ;B=x^2(1-x^2/30(1-x^2/56)) ST B,*AR2 ;(d_temp)=x^2(1-x^2/30(1-x^2/56))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/12(1-x^2/30(1-x^2/56))SFTA A,-1,A ;-1/2NEG AMPYA *AR2+ ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))MAR *AR2+RETDADD *AR4,16,B ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))STH B,*AR2 ;cos(theta)RET链接命令文件MEMORY{PAGE 0:EPROM: org=0E000H, len=1000HVECS: org=0FF80H, len=0080HPAGE 1:SPRAM: org=0060H, len=0020HDARAM1: org=0080H, len=0010HDARAM2: org=0090H, len=0010HDARAM3: org=0200H, len=0200H}SECTIONS{.text :> EPROM PAGE 0.data :> EPROM PAGE 0STACK :> SPRAM PAGE 1sin_vars :> DARAM1 PAGE 1coef_s :> DARAM1 PAGE 1cos_vars :> DARAM2 PAGE 1coef_c :> DARAM2 PAGE 1sin_x : align(512) {} > DARAM3 PAGE 1.vectors :>VECS PAGE 0}八、实验结果及分析结果成功生成了正弦波图像,表明改程序能通过TMS320C54x产生正弦信号九、设计总结这次实验通过与小组的探讨研究使我对这门学科的基本知识、理论解起来更加方便直观和深刻。

相关文档
最新文档