用PLD实现FFT

嵌入式设计应用

133人已加入

描述

【摘 要】 描述了采用可编程逻辑器件实现FFT(快速傅里叶变换)的方法和思路,包括单级运算和级连运算实现方式以及级连方式中采用模块划分的实现形式。
    关键词:可编程逻辑器件,FFT,实现


1 引 言

  在现代信号处理当中,很多信号处理需要在频域进行运算,一般采用FFT作为时域-频域的变换工具,IFFT作为频域-时域变换工具。如图1所示。其中,FFT与IFFT在实现结构上基本相同,只需将输入数据和输出数据分别取共轭即可。
  随着PLD技术的不断发展,采用硬件自主完成FFT运算已经完全可以实现,本文以采用ALTERA公司的可编程器件为例就FFT的实现作一个简要介绍。

PLD

2 PLD的FFT实现

  目前,大规模可编程逻辑器件(如FPGA、EPLD、CPLD等)的容量已超过100万门,乘法运算时,时钟最高可达250MHz,其先进的性能指标为高速数字信号处理芯片设计提供了良好的基础,使采用大规模可编程逻辑器件实现许多系统的信号处理模块成为可能。
  PLD中FFT的实现方式如图2(a)所示:需要相应的数据缓存。当输入数据经过一个蝶形运算的核时,完成一次蝶形运算并将运算结果原位存储;当所有的数据参加完一次蝶形运算后,再开始另一次,如此反复进行下去,直至完成所需的蝶形运算。如对于1024点的FFT运算,需要10次基2蝶形运算组成,数据需要10次流过蝶形运算核,处理时间约为0.5ms(以FLEX10K系列为例)。如果需要节约数据的存取时间,需要相应的数据缓存A、B。如图2(b)所示,当输入数据由A经过一个蝶形运算的核时,完成一次蝶形运算并将运算结果存储到B中;同时缓存A中另一组数据读出输入到运算核;运算核甚至可以设计为流水线结构,加快数据处理速度,以便能更快地完成一轮蝶形运算。当数据由B反向再经过一次蝶形运算核时,再完成一次蝶形运算并将运算结果存储到A中;如此反复进行下去,直至完成所需的蝶形运算。对于没有片内存储器的PLD而言,数据的片外存取时间成为时间瓶颈。对于具有片内存储的PLD而言,可以大大提高处理速度,并且可以增加运算核,提高运算基(基4、基16);但控制就要复杂得多。

PLD
PLD

  即使我们使用片内存储器进行的是原址运算,每次处理的结果仍放置于原来的存储空间,可以将数据缓存减小一半,但处理点数较多(如8K点)的系统时,对目前内部存储容量最大的芯片而言,想要保证一定的运算精度,就很难满足8K点的数据量要求。以APEX20K1500E为例,它具有442368bits的内部存储空间,我们以SHARP公司LH9124同样的运算精度-24bits数据分解,最多能存储9216个数据。因此对于处理点数较多的系统,时间比较紧张,实现相对复杂。
  对于图2(b)中的结构,我们可以组成级连的方式,采用运算基比较高的运算核完成FFT(IFFT)。这是取材于LH9124级连结构的思想,但是,需要更多的存储空间,更繁复的控制。

PLD
PLD

  如图3所示,在这样一种系统结构中,采用模块化设计,即各运算模块和地址控制模块都以固有的形式设计好,按照不同的处理点数、运算基数和运算级数来放置这些功能块。如:运算核包括基2、基4、基16三种,地址模式依据不同的运算点数和运算方式分为许多种。设计相对繁复,但一劳永逸,在以后实现各种点数的运算时只需要模块组合即可。由于受PLD内部存储空间的限制,须采用外部的存储空间来存放数据和中间运算结果。
  图3所示均为乒乓式存储模式以方便实现流水结构的数据存取,存储区控制模块的功能包括产生数据的读取和写入地址,产生存储区的读写控制切换。其中,数据地址的产生要以处理数据的点数和FFT运算核的基数为基础,视处于不同运算中间的结点而定。
  表1为实现1K点FFT,采用三级如图3所示的级连结构各运算核对应的运算以及存储模块对应的地址产生模式。这些运算核的控制功能块可通过图2(b)介绍的方式实现。地址产生模式可依靠状态机控制完成。对于不同的模式可将不同的控制模块组合,当完成4K点FFT运算时,可采用基4→基4→基16→基16的四级级连方式实现;当完成8K点FFT运算时,可采用基2→基16→基16→基16的四级级连方式实现。以此类推。由于现在大容量的双端控制存储芯片和PLD的性能、规模和封装结构不断改善提高,选取相应资源的PLD实现其功能,并采用相应大小的数据存储器即可最低成本地实现本系统所需的FFT运算模板。

PLD

3 结束语

  采用PLD实现FFT,在许多可编程芯片的支持软件上现在基本上都有模块可直接使用,但由于购置成本较高且由于PLD资源限制等因素,时常无法满足系统一些要求。因此,将其功能模块化后自己实现其模块功能,对于有效地组织利用资源,最低成本、最低功耗实现系统所需要求的功能是一种可行的解决方案。

参考文献

1 Altera Corp..ALTERA APEX数据手册及应用.Altera  Corporation,2001
2 刘宝琴等编译.ALTERA可编程逻辑器件及其应用。北京:清华大学出版社,1995
3 王世一编著.数字信号处理.北京:北京工业学院出版社,1986
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • PLD

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分