基于CCS和ICETEK5509實验箱FFT算法的C语言实现与验证.docxVIP

基于CCS和ICETEK5509實验箱FFT算法的C语言实现与验证.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CCS和ICETEK5509實验箱FFT算法的C语言实现与验证

一 实验名称 基于CCS和ICETEK5509实验箱FFT算法的C语言实现与验证 二 实验目的 1、熟悉A/D转换的基本原理,FFT的基本原理 2、针对理论课、实验课中无时间和不方便提及内容和需强调重点进行补充与完善; 3、以原理算法的实现与验证体会DSP技术的系统性,并加深基本原理的体会。 三 实验要求 设计一个以ICETEK5509为硬件主体,FFT为核心算法的频谱分析系统方案; 2、用C语言编写系统软件的核心部分,熟悉CCS调试环境的使用方法,在CCS IDE中仿真实现方案功能; 3、在实验箱上由硬件实现频谱分析。 四实验原理 1、 DSP应用系统构成: 注:一般的输入信号首先进行带限滤波和抽样,然后进行模数(A/D)转换,将信号变成数字比特流。根据奈奎斯特抽样定理,对低通信号模拟,为保持信号的不丢失,抽样频率必须至少是输入带限信号的最高频率的2倍,工程上为带限信号最高频率的3-5倍。 A/D转换原理 A/D转换器是用来通过一定的电路将模拟量转变为数字量。 模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。 A/D转换后,输出的数字信号可以有8位、10位、12位和16位等。 3.快速傅立叶变换原理 频谱分析系统 A/D系统设置 FFT系统(DIT) 对于有限长离散数字{x[n]},0≤n≤N-1,其离散谱{x[k]}可以由离散傅氏变换(DFT)求得。 不难看出,是周期性的,且周期为N,即 ,m,l=0,±1,±2…. FFT算法可以分为按时间抽取FFT和按频率抽取FFT两大类输入也有和复数之分,一般情况下,都假定输入序列为复数。FFT算法利用旋转因子的对称性和周期性,加快运算速度。 用定点DSP芯片实现FFT程序时,一个比较重要的问题就是防止中间结果的溢出,防止中间结果的溢出的方法就是对中间数值归一化,而不可能溢出的则不进行归一化。 定义可以看出,在x[n]为复数序列的情况下,完全直接运算N点的DFT需要(N-1)2次复数乘法和N(N-1)次加法。 N点的离散傅立叶变换需要同一个N*N点的W矩阵相运算,随着N值的增大,运算次数显著上升,当点数达到1024时,需要进行复数乘法运算1,048,576次,显然这种算法在实际运用中无法保证当点数较大时的运算速度,无法满足对信号的实时处理。 根据W矩阵中W元素的周期性和对称性我们可以将一个N点的DFT运算分解为两组N/2点的DFT运算,然后取和即可,为进一步提高效率,将上述两个矩阵按奇偶顺序逐级分解下去。当采样点数为2的指数次方M时,可分解为M级子矩阵运算,全部工作量仅为:   复数乘法:M*N/2次   复数加法:N*M次   而直接DFT需要的运算量为:   复数乘法:N*N次   复数加法:N*(N-1)次   当点数N为几十个点时FFT的优势还不明显,而一旦达到几千、几百个点时优势是十分明显的:   N=1024时:DFT需1048576次运算,FFT仅需5120次运算,改善比204.8。   N=2048时:DFT需4194304次运算,FFT仅需11264次运算,改善比达到372.4。 五实验过程 按照DSP应用系统设计的一般过程 这次课程设计分为三部分: 1、单路,多路模数转换(AD) 2、FFT算法C语言实现与验证 3、系统集成,实现硬件频谱分析 我按照这三部分进行操作,以下就是我课程设计的具体思路和步骤 第一部分:单路,多路模数转换(AD)(占第一次上机时间) ①回顾CCS的基本操作流程,尤其是开发环境的使用; 1、创建一个新工程 2、将文件添加到工程中去 3、生成和运行程序 4、更改Build选项并更正语法错误 5、添加断点从PC文件中读取数据 6、显示波形 ②A/D的C语言基本控制流程; ③仔细阅读工程的源程序,做好注释,并进行运行 a)定义子程序 voidInitADC(); void wait( unsigned int cycles ); voidEnableAPLL( ); void HD_AD(); //定义0通道 void My_AD(); //定义1通道 b)主要程序: while ( 1 ) { for ( i=0;i256;i++ ) { ADCCTL=0x8000; // 启动AD转换,通道0 do { uWork=ADCDATA; //ADCDATA为数据存放数组 } while ( uWork0x8000 );// uWork0x8000为假退出语句 nADC0[i]=uWork0x0fff; /*取十位精度 } for ( i=

文档评论(0)

fglgf11gf21gI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档