DSP课程设计报告(优)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP课程设计报告
——多波形信号发生器
目录
一、实验目的 (2)
二、实验内容 (2)
三、实验原理 (3)
1.产生连续的波形的方法 (3)
1.1 查表法: (3)
1.2计算法: (3)
2. TLV320AIC23B的内部结构及工作原理 (3)
四、程序设计 (4)
五、程序调试 (10)
1、编译过程 (10)
2、.cmd程序(5502.cmd)全文及其解释: (10)
3、程序运行结果(图形和数据显示): (12)
六、硬件输出演示: (14)
七、实验感想与体会....................................................................................... 错误!未定义书签。
八、参考文献 (16)
一、实验目的
1.学习并掌握D/A转换器的初始化设置及其应用
2.学习并掌握使用DSP产生正弦波的原理和算法,进而掌握任意信号波形(如三角波、锯齿波、矩形波等信号)产生的原理和算法。
3.比较产生信号的两种主要方法(查表法和计算法)的优缺点。
4.熟练使用软件CCS3.3对程序的完整调试过程。
二、实验内容
使用DSP产生300~16000Hz的正弦、方波、锯齿波和三角波信号,输出信号的幅度从0~1Vrms(有效值)。要求使用计算法,并且频率可变、幅度可变。
本实验要求用软件CCS3.3编程实现,并与硬件连接进行功能演示。
三、实验原理
1.产生连续的波形的方法
1.1 查表法:
把事先将需要输出的数据计算好,存储在DSP 中,然后依次输出就可以了。查表法的优点是速度快,可以产生频率较高的波形,而且不占用DSP 的计算时间;查表法的缺点在于需要占用DSP 的内部的存储空间,尤其对采样频率比较大的输出波形,这样,需要占用的内部的空间将更大,而DSP 内部的存储空间毕竟有所限制。这使得查表法的应用场合十分有限。
1.2计算法:
采用计算的方法依次计算数据而后输出,然后再计算而后输出。计算法的优缺点正好和查表法相反。即:其优点是不占用DSP 的存储空间,其缺点是占用DSP 的计算时间,使得执行程序的开销变大。本实验将用第二种方法即计算法产生一个正弦波信号,从DA 输出。由余弦信号的递推公式:
得知:如果需要产生连续的余弦信号,必须知道首先两个余弦值的大小,然后就可以利用上式计算出后面的数据,这就是下面编程依据的核心算法。
正弦函数和余弦函数的泰勒级数数学表达式为:
=x sin +--+-+-+---)!
12()1(!9!7!5!31
219753n x x x x x x n n ,x ∀),(∞-∞∈ =x cos +-+-+-+-)!
2()1(!8!6!4!2128
642n x x x x x n n ,x ∀),(∞-∞∈. 如果要计算一个角度ⅹ的正弦和余弦值,可以取其前五项进行近似计算。
也可以用递推公式求正弦和余弦值:
θθθθ)2sin()1sin(cos 2sin ---•=n n n
θθθθ)2cos()1cos(cos 2cos ---•=n n n
利用递推公式计算正弦和余弦值需已知cos(x)、sin(n-1)x 、sin(n-2)x 和cos(n-2)x 的值。用这种方法,求少数点可以,如产生连续正弦、余弦波,则累积误差太大,不可取。 最终产生信号的频率为f0=fs/N ,其中N 为抽样点数。
2. TLV320AIC23B 的内部结构及工作原理
TLV320AIC23B 是TI 公司生产的高性能语音CODEC 芯片,16、20、24、32位串行A/D 、
D/A转换电路。
采样速率:可通过DSP编程来设置,范围8KHz~96KHz。
内含抗混叠滤波器和重构滤波器。
//AIC23波特率设置,CLKIN=CLKOUT=MCLK,采样率32KHz,时钟模式为普通模式,Uint16 Sample_Rate_Control[2] = {
Codec_SRC_REV,
SRC_CLKIN(0)+SRC_CLKOUT(0)+SRC_SR(6)
+SRC_BOSR(0)+SRC_USB(0)
};
在AIC23中设置如下:
// AIC23的波特率设置,采样率为32k,CLKIN=CLKOUT=MCLK
// 时钟模式设为普通模式,基过采样率为250Fs
//96k 7
//48k 0
//32k 6
//8k 3
Uint16 Sample_Rate_Control[2] = {
Codec_SRC_REV,
SRC_CLKIN(0)+SRC_CLKOUT(0)+SRC_SR(6)+SRC_BOSR(0)+SRC_USB(0)};
本报告中所有程序的采样频率波特率均为32000Hz
四、程序设计
我们的设计围绕要求展开,需要实现的基本功能为:
1.产生正弦、方波、三角波、锯齿波四种波形
2.波形幅度、频率可借助GEL的slider调整
通过对GEL的学习,我们发现其slider也可以实现选择波形,于是整个演示过程就不需要切换程序了。
主程序设计思路如下图:
代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include "E2PROM_Function.h"
#include "CODEC.h"
#define Nx 360 //每周期抽取点数
#pragma DATA_SECTION(output1,"data_out1"); //存放sin数据,浮点型float output1[Nx];
#pragma DATA_SECTION(output2,"data_out2"); //存放sin数据,浮点型