c语言实验傅里叶变换运行结果,DSP实验报告1new.doc

DSP实验报告1new

实验报告

课程名称: DSP技术及应用 学号: 姓名:

实验2.1 基础实验

一、实验目的

1.掌握CCS3.3实验环境的使用;

2.掌握用C语言编写DSP程序的方法。

二、实验设备

1.一台装有CCS3.3软件的计算机;

2.DSP实验箱的TMS320F2812主控板;

3.DSP硬件仿真器。

三、实验原理

浮点数的表达和计算是进行数字信号处理的基本知识;产生正弦信号是数字信号处理中经常用到的运算;C语言是现代数字信号处理表达的基础语言和通用语言。写实现程序时需要注意两点:(1)浮点数的范围及存储格式;(2)DSP的C语言与ANSI C语言的区别。

四、实验步骤

1、在CCS3.3环境中打开本实验的工程(Example_base.pjt)[位置为:/ Example_2812/ Example_math/ Example_base],此文件是C程序,连接(project-connect),出现汇编。

2、选择file-load program编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;

3、选中变量名X0 , Y0 和Z0,单击鼠标右键,在弹出菜单中选择“Add Watch Window”命令,把X0 , Y0 和Z0添加到Watch窗口中作为观察对象。

4、选择view->graph->time/frequency… 。 设置对话框中的参数: 其中“Start Address”设为“sin_value”,“Acquisition buffer size”和“Display Data size”都设为“100”,并且把“DSP Data Type”设为“32-bit floating point”。

五、实验代码

#include "math.h"

#include "stdio.h"

#define N 100

#define pi 3.14159

float sin_value[100];

float X0,Y0,Z0;

void main(void)

{

int i;

for(i=0;i

sin_value[i]=0;

X0=0.5; /* 0.100 0000 0000 0000 */

Y0=0.5; /* 0.100 0000 0000 0000 */

Z0=X0*Y0; /* 00.01 0000 0000 0000 0000 0000 0000 0000 */

for(i=0;i

sin_value[i]=100*(sin(2*pi*i/N));

}

六、实验现象

设置好后观察信号序列的波形(sin函数,如图);

七、思考题

试用C语言编写实现其他数学运算的程序;

题:用C语言求5!

程序:

#include

void main()

{

int i,t;

t=1;

i=2;

while(i<=5)

{t=t*i;

i=i+1;}}

八、实验小结

本次试验是初次接触DSP硬件仿真器,将DSP实验箱的TMS320F2812主控板与一台装有CCS3.3软件的计算机连接,就可以进行仿真,打开相应的工程文件,将程序代码下载到DSP芯片,改变相应参数,运行即可看到程序运行的结果。

实验报告

课程名称: DSP技术及应用 学号: 姓名:

实验2.4 快速傅里叶变换 (FFT) 实现

一、实验目的

1.掌握FFT算法的基本原理;

2.掌握用C语言编写DSP程序的方法。

二、实验设备

1.一台装有CCS3.3软件的计算机;

2.DSP实验箱的TMS320F2812主控板;

3.DSP硬件仿真器。

三、实验原理

离散信号x(n)的傅里叶变换可以表示为

式中的WN 称为蝶形因子,利用它的对称性和周期性可以减少运算量。

时间抽取FFT是将N点输入序列x(n) 按照偶数项和奇数项分解为偶序列和奇序列。偶序列为:x(0), x(2), x(4),…, x(N-2);奇序列为:x(1), x(3), x(5),…, x(N-1)。这样x(n) 的N点DFT可写成:

单个蝶形运算示意图如下:

以N=8为例,时间抽取FFT的信号流图如下:

从上图可以看出,输出序列是按自然顺序排列的,而输入序列的顺序则是“比特反转”方式排列的。也就是说,将序号用二进制表示,然后将二进制数以相反方向排列,再以这个数作为序号。如011变成110,那么第3个输入值和第六个输入值就

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值