DSP报告Word下载.docx

上传人:b****3 文档编号:15069137 上传时间:2022-10-27 格式:DOCX 页数:13 大小:661.42KB
下载 相关 举报
DSP报告Word下载.docx_第1页
第1页 / 共13页
DSP报告Word下载.docx_第2页
第2页 / 共13页
DSP报告Word下载.docx_第3页
第3页 / 共13页
DSP报告Word下载.docx_第4页
第4页 / 共13页
DSP报告Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

DSP报告Word下载.docx

《DSP报告Word下载.docx》由会员分享,可在线阅读,更多相关《DSP报告Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

DSP报告Word下载.docx

2.用C语言编写系统软件的核心部分,熟悉CCS调试环境的使用方法,在CCSIDE中仿真实现方案功能;

3.在实验箱上由硬件实现频谱分析。

三、课程设计内容

1、FFT算法C语言实现与验证

1)参考教材P371的14.3节完成CCS环境中的FFT工程的建立;

2)设计检测信号,验证FFT算法的正确性及FFT的部分性质;

3)运用FFT完成IFFT计算;

2、单路,多路模数转换(AD)

1)回顾CCS的基本操作流程,尤其是开发环境的使用;

2)参考实验指导和示例工程掌握5509芯片A/D的C语言基本控制流程;

3)仔细阅读工程的源程序,做好注释,为后期开发做好系统采集前端设计的准备;

3、系统集成,实现硬件频谱分析

1)整合前两个工程,实现连续信号的频谱分析工程的构建;

2)参考A/D转换示例和DSP系统功能自检示例完成硬件连接,并测试开发系统运行效果;

3)基于现有系统,对于实时频谱分析给出进一步开发设计和系统改良方案。

四、课程设计原理

1.(软仿真)先利用sin函数验证FFT的正确性

2.(硬仿真)将信号模拟信号经过AD采样后,转为离散的数字信号,将这些信号存储进缓冲区,然后读出缓冲区数据,经过变址运算后做蝶形运算,得到的数据进行IFFT运算,将运算后的图与开始的输入信号做对比。

原理流程图:

五、主要函数代码及流程分析:

main函数

#include"

myapp.h"

ICETEK-VC5509-EDU.h"

scancode.h"

FFT.h"

voidInitADC();

voidwait(unsignedintcycles);

voidEnableAPLL();

structcompxw[FFT_N];

floatm[FFT_N];

floatn[FFT_N];

unsignedintnADC0[FFT_N],nADC1[FFT_N];

//floatnADC0[256],nADC1[256];

floatre[FFT_N],im[FFT_N];

main()

{

inti;

unsignedintuWork;

EnableAPLL();

SDRAM_init();

InitADC();

PLL_Init(132);

while

(1)

{

for(i=0;

i<

FFT_N;

i++)

{

ADCCTL=0x8000;

//启动AD转换,通道0

do

{

uWork=ADCDATA;

//ADCDATA见ICETEK-VC5509-EDU.h

}while(uWork&

0x8000);

nADC0[i]=uWork&

0x0fff;

//通道0信号采集

}

for(i=0;

{w[i].real=nADC0[i];

//将输入信号的实部赋值送w[i]

w[i].imag=0;

FFT(w,FFT_N);

//调用FFT对w做FFT

256;

{m[i]=w[i].real;

n[i]=w[i].imag;

IFFT(w,FFT_N)//调用IFFT对w做IFFT

for(i=0;

{re[i]=w[i].real;

im[i]=w[i].imag;

ADCCTL=0x9000;

//启动AD转换,通道1

nADC1[i]=uWork&

//通道1信号采集

asm("

nop"

);

//breakpoint

}

}

voidInitADC()

ADCCLKCTL=0x23;

//4MHzADCLK

ADCCLKDIV=0x4f00;

voidwait(unsignedintcycles)

for(i=0;

i<

cycles;

i++){}

voidEnableAPLL()

/*EnusreDPLLisrunning*/

*(ioportvolatileunsignedshort*)0x1f00=4;

wait(25);

*(ioportvolatileunsignedshort*)0x1f00=0;

//MULITPLY

*(ioportvolatileunsignedshort*)0x1f00=0x3000;

//COUNT

*(ioportvolatileunsignedshort*)0x1f00|=0x4F8;

//*(ioportvolatileunsignedshort*)0x1f00|=0x800

//MODE

*(ioportvolatileunsignedshort*)0x1f00|=2;

wait(30000);

//APLLSelect

*(ioportvolatileunsignedshort*)0x1e80=1;

//DELAY

wait(60000);

Main函数流程图:

FFT主程序:

#include<

math.h>

structcompx{floatreal;

floatimag;

}/*定义一个复数结构

structcompxs[257];

/*FFT输入,输出均从s[1]开始

structcompxEE(structcompx,structcompx);

voidFFT(structcompx*,int)

structcompxEE(structcompxb1,structcompxb2)

{structcompxb3;

b3.real=b1.real*b2.real-b1.imag*b2.imag;

b3.imag=b1.real*b2.imag+b1.imag*b2.real;

return(b3);

/*输入xin的实部,虚部,输出:

xin(实部,虚部)N为FFT点数

voidFFT(structcompx*xin,N)

{intf,m,nv2,nm1,i,k,j=1,l;

intle,lei,ip;

floatpi,x,y;

structcompxv,w,t;

nv2=N/2;

f=N;

for(m=1;

(f=f/2)!

=1;

m++){;

}/*求N为2的多少次幂放入m

nm1=N-1;

/*变变址运算,实现数据运算前的位倒序*/

for(i=1;

=nm1;

i++)

{if(i<

j){t=xin[j];

xin[j]=xin[i];

xin[i]=t;

}/*如果i<

j,即进行变址*/

k=nv2;

/*求j的下一个倒位序*/

while(k<

j)/*如果k<

j,表示j的最高位为1*/

{j=j-k;

k=k/2;

}/*k/2,比较次高位,以此类推,逐个比较,直到某个位为0*/

j=j+k;

/*FFT*/

for(l=1;

l<

m;

l++)

{le=pow(2,l);

lei=le/2;

pi=3.14159265;

v.real=1.0;

v.imag=0.0;

w.real=cos(pi/lei);

w.imag=-sin(pi/lei);

for(j=1;

j<

=lei;

i++)//控制计算不同种蝶形结,即计算系数不同的蝶形结{for(i=j;

=N;

i=i+le){ip=i+lei;

//控制计算同种蝶形结运算,即计算系数相同蝶形结

t=EE(xin[ip],v);

xin[ip].real=xin[i].real-t.real;

xin[ip].imag=xin[i].imag-t.imag;

xin[i].real=xin[i].real+t.real;

xin[i].imag=xin[i].imag+t.imag;

v=EE(v,w);

FFT流程图:

六、课程设计结果

1、输入sin信号

经fft变换后的频域实部虚部

2、输入三角波信号

3.输入方波信号

七、实验心得

通过一个半星期的DSP课程设计使我学到了好多课本上学不到的东西,增强了自己动手能力,并且复习了大一大二所学习的C语言能力。

对于FFT的算法的C语言实现,书上有部分语法的错误,比如:

第七行语句后面少一个分号,FFT函数中把L写成1等错误。

一开始对CCS开发环境不熟悉,在调试的时候,经常的会用到图形的输出,对于图片的属性设置很不熟悉,一开始感觉很不习惯,因为图太多加上对于程序总体把握的不准,经常搞出来不需要的图。

后来在同学的指导下才有所了解。

在使用硬件进行调试的时候,由于电脑和硬件的不稳定,经常出错,一开始不了解,出错了就只能通过重启来解决,浪费了大量时间。

后来才知道通过复位硬件也能解决。

由于时间有限,总体完成的不大满意,直到最后FFT算法还是有些问题,图形还是没做到实时性,不能使图形能实时的改变。

最后感谢周老师一个学期的悉心指导,本次课设使我们更加深入的了解DPS这门学科,为我们以后可能走上的研发调试工作提供了宝贵的经验。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1