卷积算法在TMS320C643上实现.doc_第1页
卷积算法在TMS320C643上实现.doc_第2页
卷积算法在TMS320C643上实现.doc_第3页
卷积算法在TMS320C643上实现.doc_第4页
卷积算法在TMS320C643上实现.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP芯片及应用课程设计报告卷积算法在TMS320C643上实现 姓 名: 学 号: 专 业: 信息工程 指导教师: 2010年 11月 15日 目 录一实验目的3二实验要求3三实验内容3四程序代码7五总结10六参考文献10卷积算法在TMS320C643上实现一实验目的: DSP系统课程设计是一项实践教学内容。通过本课程的学习,使学生掌握典型DSP芯片的结构、原理和典型应用,既巩固数字信号处理基础、DSP与实时信号处理中的基础理论知识,又为学生日后从事实时系统开发设计奠定基础。 通过实际动手实现课程设计的要求,使课堂所学能应用到实际应用当中,以此来巩固理论知识,提高解决问题,完成工程的能力。卷积编码作为信道编码在移动通信中得到广泛应用,本次课程设计对信道编码的卷积编码进行研究,并结合DSP处理器的特点,给出了卷积编码的DSP快速算法和算法性能分析。二实验要求:1.完成课程设计的基本内容与要求;2.提交课程设计报告,应主要包含一下内容:实验目的,实验要求,实验内容,实验程序代码,总结,参考文献等,明确阐述设计思路和实现过程;三实验内容:(一).基本算法 卷积码的约束长度为9,码率为1/2和1/3。编码器由移位寄存器和模2加法器组成,其结构如图1所示。 图1 卷积编码器结构 1/2卷积编码器输出序列的顺序应为:输出1,输出2,输出1,输出2,输出1,输出2。1/3卷积编码器输出序列的顺序应为:输出1,输出2,输出3,输出1,输出2,输出3,输出1,输出3。编码之前,输入信息码组末尾应加上值为0的8位尾比特, 而编码器的移位寄存器则应初始化为全0状态。(二). DSP快速算法实现TMS320C64XX是TI公司最新的数字信号处理器系列,在体系结构上采用了VelociTI甚长指令字结构,具有适用于高并行性处理的架构和指令。其内部字长为32位,拥有64个CPU寄存器,主频可达1.1GHz甚至更高。采用C64XX DSP实现算法时,应遵循下面准则:一是充分利用处理器的并行处理能力,尽可能在同一指令周期内完成多个操作;二是减少存储器的访问次数,尽量一次读写并处理8的整数倍个比特,提高处理效率。下面以1/2卷积编码为例,说明DSP快速算法。首先给出该算法的实现流程,然后描述其中步骤的具体处理方法。图2为1/2卷积编码快速算法的实现流程。假设长度为比特的输入信息码组在小端模式下连续存放,其所占的整字节数为m。图2 1/2卷积编码DSP快速算法流程这里将卷积编码分为两个部分:左边灰框是输入信息码组通过移位寄存器和模2和加法器得到输出n(n=(1,2)序列;右边灰框是复用输出n(n=(1,2)序列得到最后编码结果。下面针对DSP的特点,对快速算法进行说明。(1) 对输入信息码组的第1个字节的处理,即图2中步骤(a),如图3所示。将输入信息码组的第1,2,8个比特读入寄存器的低8位中,其余位置0,作为右移的对象。然后根据1/2卷积编码器输出n(n=1,2)的抽头进行逻辑右移。右移的次数为除去最左和最 右的抽头,剩下的中间抽头数;每次右移的位数等于位于该抽头左方的移位寄存器的个数。最后将右移前后的寄存器值进行异或,所得结果的低8位比特即为输出n(n=1,2)结果序列的第1个字节。图3 信息码组第1字节处理步骤(2) 对输入信息码组的第2个字节至第m+1个字节的处理,即图2中步骤(b),如图4和图5所示。将输入信息码组的第8n-15,8n-14,8n-1,8n(n=2,m+1)比特读入寄存器的低16位中,其余位置0,作为左移对象。然后根据1/2卷积编码器输出n(n=1,2)的抽头进行逻辑左移。左移的次数为除去最右的抽头,剩下的抽头数;每次左移的位数等于位于该抽头右方的移位寄存器的个数。最后将左移前后的寄存器值进行异或,所得结果的第158位比特即为输出n(n=1,2)结果序列的第n个字节。图4 对于输出1的信息码组第2至m+1字节处理步骤图5 对于输出2的信息码组第2至m+1字节处理步骤 (3)对输出1和输出2 的序列进行复用,得到1/2卷积编码的最后输出结果。由于在TI的TMS320C6416DSP上实现该算法,图2中步骤(c)可采用C64XX DSP独有的 SHFL指令大大简化了两路复用时所需要的操作。SHFL指令功能如图6所示,可以一次完成4个字节的复用。 图6 SHFL指令功能 1/3卷积编码的DSP快速算法与1/2卷积编码的DSP快速算法基本相同。区别在于将输出1,输出2,输出3结果序列进行3路复用时,先利用SHFL指令对输出1和输出2的结果序列进行2路复用,然后将所得和输出3的结果序列进行复用,得到1/3卷积编码的最终结果。(3) . DSP快速算法性能本文卷积编码DSP快速算法在TI的TMSC6416 DSP上进行编程实现。表1显示了AMR12.2 + 3.4 kbps业务下快速算法实现的开销。从该业务下的测试结果可见,快速算法的处理开销低于4指令周期/比特。而在相同测试环境下,卷积编码基本算法的处理开销在10指令周期/比特以上。可见,本文提出的卷积编码DSP快速算法具有很好的性能和效率。传输信道1 传输信道2 传输信道3 传输信道4 卷积编码码率1/3 1/3 1/2 1/3 输入比特长度93比特103比特60比特164比特处理开销 344指令周期371指令周期113指令周期567指令周期4 实验程序代码: /*工程名:卷积程序;*功能:实现两个数列的卷积运算;*/#include #include volume.hint inp1_bufferBUFSIZE=1,3,5,7,9;/*定义需要卷积的数组1*/int inp2_bufferBUFSIZE=2,4,6,8,10; /*定义需要卷积的数组2*/ int out4_bufferBUFSIZE*2; /*运算结果存放数组*/int size = BUFSIZE;int ain = MINGAIN;int sk=64; /*sk代表所开的bufsize的大小,需修改它.输入文件sine.dat为32点,sine11.dat, sin22.dat,sin33.dat,sin44.dat为64点的输入波形.*/ /* volume control variable */extern void load(unsigned int loadValue);static int processing1(int *input1,int *input2,int *output4);static void dataIO1(void);static void dataIO2(void);/* * = 主函数= */void main() int *input1 = &inp1_buffer0; int *input2 = &inp2_buffer0; int *output4 = &out4_buffer0; puts(volume example startedn); dataIO1();/ break point dataIO2();/ break point /* apply gain */ processing1(input1,input2,output4) ; /*卷积算法子函数*/static int processing1(int *input1,int *input2,int *output4) int m=sk; int y=0; int z,x,w,i,f,g; for(;(m-y)0;) i=y; x=0; z=0; f=y; for(;i=0;i-) g=input1z*input2f; x=x+g; z+; f-; *output4+ = x; y+; m=sk; y=sk-1; w=m; for(;m0;m-) i=y; z=sk-1; x=0; f=sk-y; for(;i0;i-,z-,f+) g=input1z*input2f; x=x+g; *output4+=x; y-; / load(processingLoad); return(TRUE); /* * = dataIO = * * FUNCTION: read input signal and write processed output signal. * * PARAMETERS: none. * * RETURN VALUE: none. */static void dataIO1() /* do data I/O */ return;static void dataIO2() /* do data I/O */ return; 五总结:通过这次为期一周的DSP课程设计,我更加深刻的理解了这门课的内容,更有体会到这门课学的什么?学的这些东西能干什么?也更加明白了DSP开发的流程。在设计过程中碰到了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论