- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
该设计论文已经通过各大高校老师审核认可并通过答辩,。欢迎大家下载学习交流。如有疑问可随时联系店主,竭诚为您解答!!
DSP课程设计总结
(2011-2012学年第2学期)
题 目: 数据采集处理和控制系统设计
班 级: 电子09—1班
学生姓名:
学 号:
指导教师:
2012年6月
目 录
一 设计目的
通过对基于 TMS320VC5416 的信号采集处理与控制系统的设计掌握 PCB 设计软件Altium Designer) 的使用方法,以及卷积、FFT、FIR 滤波器等数字信号处理算法并熟悉 TI 的 DSP 集成开发环境 CCS的使用掌握基于 DSP的系统设计流程。①设计一个功能完备,能够独立运行的精简 DSP 硬件系统。绘制出系统的功能框图、使用AD(Altium Designer)绘制出系统的原理图和PCB 版图。
②利用实验箱的模拟信号产生单元产生不同频率的信号,或者产生两个频率的信号的叠加。在 DSP 中采集信号,并且对信号进行频谱分析,滤波等。通过键盘或者串口命令选择算法的功能,将计算的信号频率或者滤波后信号的频率在LCD 上显示。
主要功能如下:
一、 对外部输入的模拟信号采集到DSP 内存,会用CCS 软件显示采集的数据波形。
二、 对采集的数据进行如下算法分析:
(1) 频谱分析:使用fft 算法计算信号的频率。
(2) 对信号进行IIR 滤波或FIR 滤波,并且计算滤波前后信号的频率。
三、 外部键盘或者从计算机来的串口命令选择算法功能,并且将结果在LCD 上显示。
2.2 主要任务
①绘制出DSP系统的功能框图、使用AD(Altium Designer)绘制出系统的原理图和PCB 版图。
②在 DSP 中采集信号,用CCS 软件显示采集的数据波形,以及对采集的数据进行算法分析。
三 硬件设计
3.1 硬件总体结构
3.2 DSP模块设计
3.3 电源模块设计
将5V电源电压转换为3.3V和1.6V电源
3.4 时钟模块设计
此处由外部晶振提供时钟信号
3.5 存储器模块设计
DSP上只有一个读写控制信号引脚,而FLASH有两个引脚,将读、写分开,故在OE上接一个非门电路,实现高时读,低时写。FLASH上的地址线和数据线与DSP上的地址线、数据线相连
JATG模块设计
3.7 TMS320VC5416 最小系统 PCB 版图
4.2 核心模块及实现代码
FFT算法程序:
void kfft(double pr[Length],double pi[Length],int n,int k,double fr[Length],double fi[Length],int l,int il)
{
int it,m,is,i,j,nv,l0;
double p,q,s,vr,vi,poddr,poddi;
for (it=0; it=n-1; it++)
{ m=it; is=0;
for (i=0; i=k-1; i++)
{ j=m/2; is=2*is+(m-2*j); m=j;}
fr[it]=pr[is]; fi[it]=pi[is];
}
pr[0]=1.0; pi[0]=0.0;
p=6.283185306/(1.0*n);
pr[1]=cos(p); pi[1]=-sin(p);
if (l!=0) pi[1]=-pi[1];
for (i=2; i=n-1; i++)
{ p=pr[i-1]*pr[1]; q=pi[i-1]*pi[1];
s=(pr[i-1]+pi[i-1])*(pr[1]+pi[1]);
pr[i]=p-q; pi[i]=s-p-q;
}
for (it=0; it=n-2; it=it+2)
{ vr=fr[it]; vi=fi[it];
fr[it]=vr+fr[it+1]; fi[it]=vi+fi[it+1];
fr[it+1]=vr-fr[it+1]; fi[it+1]=vi-fi[it+1];
}
m=n/2; nv=2;
for (l0=k-2; l0=0; l0--)
{ m=m/2; nv=2*nv;
for (it=0; it=(m-1)*nv; it=it+nv)
f
文档评论(0)