试验七多波形发生器试验.docVIP

  • 2
  • 0
  • 约3.55千字
  • 约 5页
  • 2019-09-13 发布于山西
  • 举报
试验七、多波形发生器试验 试验目的 了解数字波形产生的原理; 学习用DSP产生各种波形的基本方法和步骤,提高用C语言进行DSP编程的能力; 掌握DSP与D/A转换芯片(DAC7724)接口的使用; 掌握图形显示窗口的使用方法。 实验设备 计算机、DSP硬件仿真器、DSP教学试验箱 试验背景知识 数字波形信号发生器是利用DSP芯片,通过软件编程和D/A转换来产生所需要的信号波形的一种方法。在通信、仪器和控制等领域的信号处理系统中,经常会用到各种数字波形发生器。 譬如,一般产生正弦波的方法有两种: 1、查表法:此种方法用于对精度要求不是很高的场合。如果要求精度高,所需要的表格就很大,相应的存储器容量也要很大。 2、泰勒级数展开法:这是一种更为有效的方法。与查表法相比,需要的存储单元很少,而且精度比较高。 一个角度为θ的正弦函数和余弦函数,都可以展开成泰勒级数,取其前5项进行近似得: 其中:x为θ的弧度值。 也可以用递推公式求正弦和余弦值: 利用递推公式计算正弦和余弦值需已知COSθ和正、余弦的前两个值。用这种方法,求少数点可以,如产生连续正弦、余弦波,则累积误差太大,不可取。 实验内容 DSP源文件的建立; DSP程序工程文件的建立; 掌握DAC7724的使用方法。 在图形显示窗口中显示出各种波形。 实验步骤 将DSP仿真器与计算机连接号; 将DSP仿真器的JTAG插头与DSP试验箱主板上DSP_JTAG相连接; 打开试验箱电源。观察SEED-DTK_Moard单元的+5V,+3.3V,+15V,-15V的电源知识灯以及SEED-DEC643的电源指示灯D1是否均亮;若有不亮的,请断开电源,检查电源。 运行,设置硬件仿真的环境。 运行,按照下列源文件编写test6_sina,下载运行例程,点击View/Graph/ Time/Frequency,在弹出的对话框中设置相应的参数,得到相应的波形。 实验报告要求 简述数字波形生成的原理。 图形显示窗口显示出各种波形。 #include math.h unsigned int *pmem=0; #define PMST *(pmem+0x001D) #define SWCR *(pmem+0x002B) #define SWWSR *(pmem+0x0028) #define BSCR *(pmem+0x0029) #define READS *(pmem+0x4000) #define IMR *(pmem+0x0000) #define IFR *(pmem+0x0001) #define TIM0 *(pmem+0x0024) #define PRD0 *(pmem+0x0025) #define TCR0 *(pmem+0x0026) #define PI 3.1415926 int i,A,k,T,BIAN; int N,j; float fo,fs; unsigned int x[4000]; void wave0(void) /*正弦波*/ { A=1000; fo=1000; N=1000; fs=N*fo; for(i=0;iN;i++) x[i]=(int)(A*sin(2*PI*i*fo/fs)+A); } void wave1(void) /*余弦波*/ { A=1000; fo=10; N=1000; fs=N*fo; for(i=0;iN;i++) x[i]=(int)(A*cos(2*PI*fo*i/fs)+A); } void wave2(void) /*三角波*/ { k=1; T=1000; N=1000; fs=(float)N/T; for(i=0;iN/4;i++) x[i]=(int)(k*i*1.0/fs+k*T/4.0); for(i=N/4;iN/2;i++) x[i]=(int)(k*(T/2.0-i*1.0/fs)+k*T/4.0); for(i=N/2;i3*N/4;i++) x[i]=(int)(k*(T/2.0-i*1.0/fs)+k*T/4.0); for(i=3*N/4;iN;i++) x[i]=(int)(k*(i*1.0/fs-T)+k*T/4

文档评论(0)

1亿VIP精品文档

相关文档