利用dsp实现实时藕牌追治.doc
《利用dsp实现实时藕牌追治.doc》由会员分享,可在线阅读,更多相关《利用dsp实现实时藕牌追治.doc(34页珍藏版)》请在沃文网上搜索。
1、国家电工电子实验教学中心DSP课程设计设 计 报 告设计题目:利用DSP实现实时信号频谱分析学 院:电子信息工程学院专 业:通信工程成 员:指导老师 :侯亚丽目录1设计环境简介11.1 DSP芯片主要特性11.2BJTU-DSP5502实验板板上资源主要包括:11.3 TMS320VC5502片上外设12 指标及设计要求23 设计思路及原理23.1 整体思路23.2 信号的实时采集与传输23.3 FFT算法33.4 “ping-pong”存储方式64 实验步骤65 实验结果及分析76 实验中遇到的问题及解决方法97 实验感想98 参考文献109 程序清单及源代码101 设计环境简介1.1 DS
2、P芯片主要特性C55x是TI的C5000系列的DSP的子系列,是目前能耗效率很高的DSP处理器,其功耗可低至0.05mW/MIPS. 是54系列发展起来的,和C54x代码兼容,但是速度更快,功耗明显降低,如300MHz的C55x与120MHz的C54x相比,处理速度提高了5倍,功耗只有C54x的1/6. TMS320VC5502的程序数据存储空间采用统一编址,整个寻址空间大小为16M 字节(bytes),其中片内DARAM 占64K 字节,ROM 占32K 字节,其余存储空间被映射到片外4 个片选的子空间。BJTU-DSP5502板支持TMS320VC5502 DSP,工作频率可以高达300M
3、Hz,工作的核电压为1.26V,I/O 电压为3.3V。1.2 BJTU-DSP5502实验板板上资源主要包括:DSP芯片1枚(U1):TMS320VC5502300MHzSDRAM 1枚(U5):2M32bit(8Mbytes) HY57V643220CTFLASH 1枚(U4):256K16bit(512Kbytes) SST39VF400A-70CPLD 1枚(U2):CY37064VP100通信接口3个:仿真器JTAG接口(J1)、连接到PC机USB接口(J4)和UART接口(J2)信号采集和输出端口:立体音输入接口line-in(J5,直接接电脑的语音输出端口)/ 麦克风输入接口(J
4、7)/耳机音频输出接口(J6)扩展板接口(J9,J10)1.3 TMS320VC5502片上外设64bit Timer:4个,TIMER0/TIMER1/Watch Dog TIMER/TIMER3(DSP/BIOS timer)McBSP:3通道, McBSP0/McBSP1/McBSP2DMA:6通道, DMA0/ DMA1/ DMA2/ DMA3/ DMA4/ DMA5/ DMA6IIC:1通道UART:1通道816bit HPI:1通道2 指标及设计要求(1) 设计谱分析算法,或调用DSPLIB中FFT函数,实现对信号的频谱分析。(2) 利用C语言对A/D、D/A进行初始化(3) 利用
5、C语言对DMA进行初始化(4) 编写DMA中断服务程序,实现信号的实时谱分析(5) 利用CCS信号分析工具分析信号的频谱成分,对FFT算法结果进行验证。(6) 信号频谱数据实时输出到Headphone输出接口,并在示波器上进行显示;(7) 在实验板的Line in输入端接入正弦信号,分左右声道分别采集,并分别进行频谱分析;(8) 利用CCS的Profiler工具计算FFT算法所需要的时间,并根据实时性要求进行必要的算法优化3 设计思路及原理3.1 整体思路首先通过DSP的DMA方式对外部信号进行实时采集,外部模拟信号先进行A/D转换,利用MCBSP的接收寄存器接收数据,并将数据存放到DSP存储
6、区中。设计FFT算法或调用DSPLIB中的rfft或cfft频谱分析函数,对信号进行快速傅立叶变换。频谱数据利用DMA方式送到D/A转换器转换为模拟信号在示波器上显示。3.2 信号的实时采集与传输DMA控制器可以在不影响CPU的情况下完成数据的传输,因此数据传输速度快,在要求信号实时采集和处理的系统中常采用DMA方式进行信号传输。本设计中输入信号经过A/D转换成数字信号后,将DMA通道4的源地址设为串口的接收寄存器,利用DMA通道4进行传输;而将DMA通道5的目的地址设置为串口的发送寄存器,将信号频谱利用DMA5通道进行传输,此步骤需要对AIC23、McBSP、DMA通道4和DMA通道5进行初
7、始化配置。处理流图如图3.2.1所示。图 3.2.13.3 FFT算法FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换(DFT)的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。(1) 离散傅里叶变换DFTN点DFT的正变换公式为:X(k)= N-nk式中,WN=e-j*2/N ,称为旋转因子或蝶形因子。从DFT的定义可以看出,在x(n)为复数序列的情况下,对某个k值,直接按(1)式计算X(k) 只需要N次复数乘法和(N-1)次复数加法。因此,对所有N个k值,共需要N2次复数乘法和N(N-1)次复数加
8、法。对于一些相当大有N值(如1024点)来说,直接计算它的DFT所需要的计算量是很大的,因此DFT运算的应用受到了很大的限制。(2) 快速傅里叶变换FFT旋转因子WN 有如下的特性。对称性: WNk+N/2=-WNk 周期性:WNn(N-k)=WNk(N-n)=WN-nk利用这些特性,既可以使DFT中有些项合并,减少了乘法积项,又可以将长序列的DFT分解成几个短序列的DFT。FFT就是利用了旋转因子的对称性和周期性来减少运算量的。一般而言,FFT算法分为按时间抽取的FFT(DITFFT)和按频率抽取的FFT(DIF FFT)两大类。DIF FFT算法是在时域内将每一级输入序列依次按奇偶分成个短
9、序列进行计算。而DIF FFT算法是在频域内将每一级输入序列依次奇偶分成个短序列进行计算。两者的区别是旋转因子出现的位置不同,得算法是一样的。在DIF FFT算法中,旋转因子 出现在输入端,而在DIF FFT算法中它出现在输入端。假定序列x(n)的点数N是2的幂,按照DIF FFT算法可将其分为偶序列和奇序列。偶序列:x(2r)=x1(r)奇序列:x(2r+1)=x2(r) 其中:r=0,1,2,N/2-1 则x(n)的DFT表示为 式中,x1(k)和x2(k)分别为x1(r)和x2(r)的N/2的DFT。由于对称性,WNk+N/2=-WNk。因此,N点DFT可分为两部分:前半部分:x(k)=
10、x1(k)+WkNx2(k) (1)后半部分: x(N/2+k)=x1(k)-WkNx2(k) k=0,1,N/2-1 (2)从式(1)和式(2)可以看出,只要求出0N/2-1区间x1(k)和x2(k)的值,就可求出0N-1区间x(k)的N点值。以同样的方式进行抽取,可以求得N/4点的DFT,重复抽取过程,就可以使N点的DFT用上组2点的 DFT来计算,这样就可以大减少运算量。基2 DIF FFT的蝶形运算如图3.3.1所示。设蝶形输入为X1(k)和X2(K),输出为x(k)和x(N/2+K),则有 x(k)=x1(k)+WkNx2(k) (6) x(N/2+k)=x1(k)-WkNx2(k)
11、 (7)在基数为2的FFT中,设N=2M,共有M级运算,每级有N/2个2点FFT蝶形运算,因此,N点FFT总共有MN/2个蝶形运算。 图3.3.1 基2 DIF FFT的蝶形运算例如:基数为2的FFT,当N=8时,共需要3级,12个基2 DIT FFT的蝶形运算。其信号流程如图3.3.2所示。 图3.3.2从图可以看出,输入是经过比特反转的倒位序列,称为位码倒置,其排列顺序为x(0),x(4),x(2),x(6),x(1),x(5),x(3),x(7),输出是按自然顺序排列,其顺序为x(0),x(1),x(2),x(3),x(4),x(5),x(6),x(7).在本设计中,信号的频谱通过FFT
12、算法得出,FFT算法可以自己编写,也可以调用55xdsp.lib库rfft或cfft函数。调用库函数的需要在工程中添加库文件55xdsp.lib,并且在程序中包含头文件dsplib.h。调用的时候入口参数是时域信号地址,返回处理后的FFT信号,注意返回值不包含求模过程,而是交替返回实部和虚部。本实验采用自己编写的基2频率抽取法计算FFT。3.4 “ping-pong”存储方式Ping-pong存储方式在内存开辟四块存储区,分别是gBufferRcvPing、gBufferRcvPong、gBufferXmtPing、gBufferXmtPong,其中前两块用于DMA接收,后两块用于DMA发送。
13、目的是将正在接收或发送的区域与正在处理的区域分离开。这个过程通过变量“pingpong”控制,以进入中断时pingpong=0为例,进入终端后将其值改为1,将DMA接收目的区改为gBufferRcvPong,处理gBufferRcvPing的数据,并将处理的数据发往gBufferXmtPing,而同时DMA发送源是gBufferXmtPong,这样发送和接收都不冲突。程序有序的运行。 4 实验步骤(1) 新建工程,正确设置工程选项(build option),设置工程的存储器模式、头文件路径及库文件路径等,注意工程存放路径不能有中文名; (2) 编写工程所需的所有实验源程序,实验程序包括c文件
14、、h文件、cmd文件、GEL文件、中断向量s55文件等,并添加进工程;(3) 将仿真器等硬件正确连接上,注意音频输入输出方向是否正确。将音频立体声输入J5接电脑耳机输出口,将J7接电脑语音录入口;(4) 按F7键编译连接生成obj文件(无错误时),若程序有错误则查看错误信息,双击错误处光标自动跳转到错误处,直到排除所有错误;(5) 点击file菜单下load program载入程序,将程序下载在DSP芯片中,点击“run”或按键F5全速运行;(6) 使用变量观察图形观察窗等工具观察分析输入输出信号是否与预期效果相同;(7) 系统调试、代码优化等;(8) 确定最终方案,撰写设计报告。5 实验结果
15、及分析图5.1和图5.2显示的是左右声道同时输入相同频率的正弦信号的实验结果,图5.1是实际输出的示波器显示,图5.2 是用ccs工具计算的结果显示,用于验证实验结果。图5.3、图5.4和图5.5显示的是双声道不同输入的结果,左右声道分别输入2kHz正弦和1kHz方波。三个图分别是ccs工具得出的结果、本实验FFT算出的结果和输出的示波器显示的结果,根据实验设置,信号的采样率是32kHz,做256点FFT。由数字信号处理原理知频谱的分辨率是32k/256=125Hz.,从图中看,波峰的主要频频率分别是5*8=1000Hz和125*16=2000Hz。当然除此之外还有其他的谐波成分,谐波主要是由
16、于输入方波造成的。实际示波器再进行一定的处理就可以精确计算出输入信号的频谱成分,因此本实验的效果达到预期效果。图5.1图 5.2图5.3图5.4图 5.5 6 实验中遇到的问题及解决方法1. 编译时提示找不到库文件或头文件,找不到库文件是工程设置的问题,也可以收到添加,找不到头文件可以把include语句的尖括号改成引号试试。2. 编译正确但是载入后不能正常运行,这种情况可以让CPU复位一下,或者重启软件环境等。3. 左右声道分别采集并分别做FFT,原理是采集的时候是“左-右-左-右-左-右”采集的,按此规律分别提取两个声道的数据即可。4.各寄存器的初始化配置,刚开始时候没什么头绪,完全不知道
17、怎么配置那些寄存器,后来找到一些例程和TI官方文档,按照例程框架模仿编程,逐步完善。7 实验感想殷彦浩: 虽然已经学习了信号系统和数字信号处理等先修课程,但是两门课程的学习都仅限于理论知识,并没有实际的用到信号处理中来,而这次的课程设计才是真正的实际应用。可以说我们在dsp的实际应用上还是一片空白,通过这次课程设计,我们开始了解了dsp处理的过程及dsp芯片的应用方法和过程。我想这是很重要的,因为dsp的芯片是很多的我们不可能在短时间内全部学习到,但是可以通过学习一个芯片而触类旁通,在以后接触到类似的芯片的时候能很快上手。 我们的设计题目是利用dsp实现实时信号谱分析,简单的实现功能并不是很难
18、,但在课程设计中我们也遇到了很多的困难,包括基础一些的C语言的组织语法问题以及专业相关的数字信号处理原理上的问题等。但是最终都通过查阅资料或者请教老师解决了,结果并不是最重要的,重要的是通过这次课程设计,我们更过的了解了在设计一个系统的时候遇到问题的解决思路以及接触一个自己不熟悉的设计时怎样才能尽快上手去哪里怎样获取资料等技能。另外在实验中特别是编程的时候遇到了很多问题都是细节的问题,这也再次提醒我们,细节很重要,在很大程度上决定最终的成败。 总之这次课程设计收获还是不小的。张俊凯:这次DSP系统课程设计给我最大的感受便是它将理论知识与实际编程相结合。通过之前学习的数字信号处理,我们对DSP已
19、经有了基本的认识,但仅仅是理论课程的学习并不能对知识有十分深入的理解,没有一个直观的认识。本次课程设计在理论知识的基础之上,加入了软件编程与硬件连接,是理论与实践的结合。通过这次课设,我对DSP的原理有了更深入直观的理解,同时提升了自己的编程能力,逐渐掌握如何将思想通过代码表达出来,这是本专业极其重要的一种能力。此外,面对一个相对陌生的问题时,我们学会了如何查阅资料,如何学习相关知识,如何与大家共同学习探讨。这些都是十分宝贵的学习经历,对我们今后的学习工作有很大的帮助。8 参考文献1 TMS320VC5501/5502 DSP Direct Memory Access ControllerRe
20、ference Guide.pdf2 TMS320C55x DSP Library Programmers Reference.pdf3TMS320C55x DSP Library Programmers Reference, SPRU422J.pdf4 TMS320VC5502 Fixed-Point Digital Signal Processor Data Manual, SPRS166K.pdf5 TMS320C55x Chip Support Library API Reference Guide, SPRU433I.pdf9 程序清单及源代码1C文件AIC23.c :A/D和D/A
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 dsp 实现 实时 藕牌追治
