- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京交通大学 国家工科电工电子教学基地 DSP应用课程设计 * Leading Digital Signal Processing 北京交通大学电子信息工程学院 * 北京交通大学 国家工科电工电子教学基地 DSP应用技术 * 实验5 利用DSP实现信号谱分析 一、实验目的 二、实验原理 三、实验内容 四、实验思考题? 一、实验目的 1.掌握FFT的算法原理和基本性质 2.掌握CCS基本调试技术 3.掌握利用DSP系统进行信号频谱分析的方法 重点讲述FFT滤波算法,结合CODEC实验,形成利用DSP实现信号频谱分析。 1.快速傅立叶变换FFT算法原理 2.CCS基本调试技术: 数据显示与剖析 二、实验原理 一个N点序列x[k]的DFT为X[m],以及IDFT分别定义为: 1.快速傅立叶变换FFT算法原理 FFT是DFT的快速算法,有效降低了DFT的乘法次数。 FFT工程说明 BJTU_FFT.pjt工程 将FFT滤波算法嵌入到CODEC工程 中,实现DSP信号频谱分析。 BJTU_FFT.c说明 /*从J5接收数据*/ for(i=0;iSampleLong;i++) { while(!MCBSP_rrdy(hMcbsp)){}; DataTemp = MCBSP_read16(hMcbsp); DataBuffer[i] = DataTemp; } /*将接收到的数据组成复信号*/ for(i=0;i(SampleLong/2);i++) { DDataBuffer[i].real=DataBuffer[2*i]; //short int DDataBuffer[i].imag=DataBuffer[2*i+1]; //short int } /*从J5接收数据*/ fft1024(DDataBuffer,1024);//这里FFT点数可以是256、512或1024 m=0; for(i=0;i1024;i++) //计算幅度谱 { p=DDataBuffer[i].real; q=DDataBuffer[i].imag; n=(long)p*(long)p+(long)q*(long)q; mod[m]=sqrt(n); m++; } 2.CCS基本调试技术:数据显示与剖析 数据显示: 可以利用CCS调试工具watch window和Memory查看变量数据数值或数据存放在存储器中的地址位置,也可以利用图形观察窗,动态显示数据及其频谱的图形,并能利用CCS频谱分析工具分析信号的频谱成分。 数据显示与剖析(续) 剖析工具(Profiler): 通过收集在指定的代码区间程序执行的统计性能,来帮助确定处理器在程序的每一部分所花时间,为优化程序提供参考。 功能:确定程序在执行特定函数所花费的时钟周期数,以及调用的频率,对分支转移次数、中断发生等进行评价,以便于用户对程序性能影响大的代码段的进行优化。 启动剖析进程: 1.选择Profile→Setup,在新对话框中选中custom所有项。 2.选择Profile→clock,并选择Enable。 3.选择Profile→Viewer。 4.点击1对话框中的 和 。 5.选择File→Load Program,将可执行文件下载到DSP中。 这样在3出现的对话框将出现函数的profile参数。 数据显示与剖析(续) profiler参数显示 相关的数值是运行某程序段所需的机器周期。 数据显示与剖析(续) 运行程序一段时间后停止,便可以根据统计观察函数的运行情况。根据时钟数和机器周期,计算出执行某段代码所需的时间,为优化代码提供参考。 Code Size 代码大小 Inc.Count 运行中进入代码段次数 Inc.Total. 消耗的所有时钟周期 Inc.Maximum 执行代码一遍消耗的最大时钟周期 Inc.Minimum 执行代码一遍消耗的最小时钟周期 Incl.Average 执行代码一遍平均消耗的时钟周期 Profiler各值含义 数据显示与剖析(续)
文档评论(0)