首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
LTE系统中FFT的研究与DSP实现
来源:本站整理  作者:佚名  2011-12-26 11:18:53




    使用C语言编写主函数,汇编语言编写FFT算法的实现函数。程序中假设输入数据最大长度为1 024,由于DSP C6455可以直接存取处理32 bit,所以在内存中定义了长度为8 192 bit作为存放输出序列的内存空间。为了提高运算精确度,输入数的实部和虚部分别占用一个字,在程序中进行复数相乘操作是采用汇编指令MPYHI。内存定义了长度为2 048 bit的Tempsequence作为存放倒序序列,并且建立了2张旋转因子查找表,分别为Wr和Wi。
    外循环中,在每次内循环之前从输入比特序列中取出32 bit放入一个寄存器,作为一个内循环的输入,内循环结束后,取下一个32 bit输入比特更新这个寄存器。
    内循环中,计算蝶形过程采用查表的方式。对于每一级,计算出需要的旋转因子个数以及相同旋转因子相距的间隔。计算蝶形过程时,首先提取出X(k),根据相同旋转因子间隔找到X(k+B)完成蝶形计算。考虑到旋转因子的对称性,在内存中存放旋转因子时只存放一半,剩余的数据根据对称性进行处理。图2给出了FFT算法实现计算流程图。

2.jpg

    按时间抽取法的FFT输入序列是倒序,输出序列是自然顺序;按频率抽取法的FFT输入序列是自然顺序,输出序列是倒序的。不管采用哪种方法进行FFT计算,都需要倒序处理。倒序是整个FFT计算的重要部分,进行汇编程序时,按自然顺序将输入数据存入到存储单元内,通过变址运算,将自然顺序的序列按时间抽取法要求进行倒位。
    重新排序之前,存储单元Y中依次存放输入数据,I表示当前输入数据比特的顺序数的十进制数值,I的取值从0到N-I;J表示当前倒序数的十进制数值。输入序列的第一个和最后一个数的位置不需要倒序处理,完成倒序的外循环的次数为N-2。为了保证调换数据的正确性,需要检测一下是否I<J,只有当I<J,才将Y(I)与Y(J)的内容互换。形成倒序数J以后,就可以实现变址功能,按照自然顺序存放在存储单元的数据重新按照倒序排列。图3给出了实现倒序的汇编流程图。

3.jpg

3 性能分析与总结
    在DSP软件实现中,通过指令并行,尽量优化程序循环体,减少或消除程序中的’NOP’指令[6]。通过程序仿真运行,得到统计结果如表1所示。

4.jpg

    从表中可以看出,当运用TMS320C64×DSP芯片实现时,由于处理器的超高主频一般为1 GHz,一个指令周期耗时为1 ns,其运算速率非常快,完全可以满足实时性信号处理。因此,采用旋转因子查表法的实现方案不仅简化了程序实现方法,还减少了模块程序代码编写,节约了系统存储空间。
    本文提出了一种简单有效的FFT算法实现方案,详细介绍了算法在DSP的实现方法,并在TMS320C64x芯片上加以实现。程序运行结果表明,该算法能够满足TD-LTE系统的需求,具有可行性和高效性。该方案已应用于LTE-TDD无线综合测试仪表的开发中。
参考文献
[1] 丁玉美.数字信号处理[M].西安:西安电子科技大学出版社,2002.
[2] 何方白,张德民.数字信号处理[M].北京:高等教育出版社,2009.
[3] 3GPP TS 36.211 v9.0.0.Evolved universal terrestrial radio aCCess(E-UTRA) physICal channels and modulation (Release 9)[S].2009-12.
[4] SAIDI A.Decimation-in-time-Frequency FFT algorithm[M]. Manuscript, To be published.1993.
[5] Texas Instruments Incorporated.TMS320C64x/C64x+DSP CPU and instruction set referenceguide[EB/OL].Http://www.ti.com.cn,2008.
[6] Texas Instruments Incorporated.TMS320C6000系列DSP编程工具与指南[M].田黎育,何佩琨,朱梦宇,译.北京:清华大学出版社,2006.

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:54,957.03000 毫秒