;≥麓一
基于F P G A的改进F F T模块
在数字脉冲压缩系统中的应用与实现
潘琳
(上海交通大学电子工程系上海200240)电子科掌
[摘要】FFT算法足一种实现数字脉冲压缩的高效、灵活的方法,也是实现数字数字信号中重要技术。利用并行存储器和流水设计改进了FFT模块,运用FPG A实现1024点的FF T运算。另外,应用的乒乓存储技术使该模块提高了数据传输的效率,很好的满足了系统实时性和精度要求。
[关键词】F PG A FF T流水方式数字脉冲压缩
中图分类号:T P2文献标识码:A文章编号:1671--7597(2008)0520025--01
一、引畜
众所周知,F FT算法是一种实现数字脉冲压缩系统中的一种高
效、快速:核心的方法。但是,目前现有数字压缩系统中的FF T模块
一般只采用递归结构,对实际的数据处理速度是不够的。另外,当前
基于D SP技术的F FT模块的功耗和体积较大,价格较高,而且速度不
够,从而限制了其在数字信号处理中的应用。
本文以时间基-2F F T为基础,在理论上分析了FF T模块硬件实现的
资源占用问题。采用了级联结构,并在该结构当中加入了流水和乒乓
存储结构,改进并大大提高了F FT的处理性能。最后给出了模块详细
的实现方法和性能分析。
=、硬件资潭占用分析
令A=兄+儿,B=R+儿,其中咒和R表示复数的实部,,_和厶
表示复数的虚部,由此可以得到D I T的蝶形运算公式的实数表达式:
疋=也+【R co s(2石P I N)+I b si n(2.口P/Ⅳ)1(2.3.5)’
‘=,.+【‘c os(2Jj rP/Ⅳ)一R s in(2zr P/N)](2.3.6)-
毛=也一【R cos(2zP/N)+l b si n(29P/Ⅳ)】(2.3.7)
L=L一【厶cos(2zP/Ⅳ)一R s i n(2,rP/N)](2.3.8)
其中cos(2z P I N)和si n(2z P IⅣ)分别为w’的实部和虚部。
由上式可以看出,一个基2蝶形算法由1个复乘和2个复加组成,
转化为实数表示则要进行4次实数乘法和6次实数加法运算。综合考
虑,处理器选用基2蝶算的基于时间抽取的FF T(D I T-F FT)处理器结构
是比较合理的.
三、1024点FF T模块的总体结构
(一)1024点FF T模块的总体结构框图如图1所示
存储墨A —_
一存储嚣
B
J存
弛
蓄l慝
州詈
l存
批
撕
B
级
■
形
苴
一
兀
图1
由于采用了流水结构,每个时钟周期都能取2个数据做蝶形运算,并将运算好的2个结果送到下一级存储单元。10级流水结构都按这样的方式处理,因此,运算1024点的FFT R需要1024/2=512个时钟周期。
由于存储和运算同时进行,故采用乒乓模式。同一级存储器中,一组(A)用于寄存前一级的输入数据,另一组(B)存储器向下一级输出,当该级1024点运算结束后,两组存储器功能交换。
(:)单级模块主要由6部分组成
(1)基一2蝶形运算单元。每级蝶形运算单元采用6路并行输入方式,其中4路为输入信号的实部和虚部,另外2路是旋转因子的实部和虚部:输出为4路,对应了输出数据的实部和虚部。内部采用流水方式,先运算复数乘法部分,再运算复数加法部分,加快了数据处理速度。
(2)地址产生器。即a ddr,控制产生3组地址:上级数据存入RA M的地址、旋转因子RO M的地址、本级数据读取RA M地址。其中上级数据存入地址和本级数据读取R A M地址通过地址多路器进行多路选择后,输入R A M相应的地址端口。
(3)控制信号产生器。产生R A M的读写使能脉冲,并对中间结果R A M组输出进行多路选择。另外还要产生对R A M读写地址的多路选择控制信号。
(4)多路选择器。多路选择器分为地址多路器和数据选择器。地址多路器对地址产生器产生的地址进行多路选择,分别输出RA M读取地址和写入地址:数据选择嚣对R A M输出结果进行多路选择,再将结果送入蝶形运算单元。
(5)乒乓存储器组。由于每次取出或写入两个数据,数据又分为实部和虚部,即产生4路输入或输出,故每一存储器组(A或B)由2个双端口存储器(D PR A hl)组成,其一存储两个数据实部,另一个存储两个数据的虚部。由于是乒乓模式,每一级需要4个D PR A M,每个D PR A M的大小为1024×16bi t。在512个时钟周期后,两组存储器功能交换。
(6)旋转因子存储器组。旋转因子采用RO M进行存储,旋转因子的实部和虚部分别存储在两个单口R O M中,这样容易利用同址方式进行读取,最大R oM为512X16bit。
四、1024点F FT模块的仿真结果及性能分析
(一)仿真结果
由于Q uar t usl I5.O仿真波形输入复杂,且输出波形并不直观,所以本文选择-了.M at l ab与Q ua r t usI I.5.0进行联合仿真。对FFT模块输出的信号实部与M a t l a b计算的实部数值;F FT模块输出信号虚部与M a t l ab计算的虚部数值进行了比较。图略。
通过测试。系统由于由于采用的定点运算方式及截尾处理,误差是不可避免的。通过与理论值的比较,信号通过FF T计算后的输出能够保持理论上的频率特性,因此系统设计是可行的。
(二)性能分析‘
单级蝶形稳定运行在103.27M,FFT模块稳定运行在62.3删,仿真采用60M系统主频,从第一组数据输入,到结果输出,延时10'1.37№,每完成1024点FFT运算需要9.3l№,完全满足了实时性要求。
。
(下转第13页)
解:
(1)对单元和结点编号。
(2)计算局部坐标系下的单元刚度矩阵。
『:。O :纠
匠k 匠J 鼢医l @-医b ÷一。O :别
『:。0硼
I
l —1
01
0I
瞳】⑤:屠】⑥:j 瓦Lo
o
o
oJ
(3)求整体坐标系下钧单元刚度矩阵。
单元①、③:口=90。,则扩】_
k 】①:k 】③:旷】T 医J ①州:
单元⑤:口=45,则刚:万
k 】⑤:∽T 医J ⑤M :丽
O —l O
O
难
O O 0一l
O O 10O O —l
O
10O
—l
1O O 0O
l
O —l
1
单元②、④:口=o 。,则k 】②:k 】④:i
1
单元⑥:口=135,则:吲:万
一l
1
0O —l 一1O
0O 0-l 1
O
O
—l 一1
1
瞳】⑧:It]T 医J@州;j 而
SI LI C
;£l ■V A L
电子科学
(4)集装结构原始刚度矩阵。
将各整体坐标系下的单元刚度矩阵分块并按单元结点编号,对号入座形成结构原始刚度矩阵为:
kL=i
l .35O .3500一O .35
一O .35—10
0.351.35O —l -0.35一O .35O 0
(5)计算结点荷载向量。
妒}:恹。,y ,只:C :P
O
0J
(6)引入支撑条件.
由于U1=V 1=U 2=V 2=0,采用“划零归1”法,修改后的刚度方程为:
(7)解方程,求出结点位移。计算各单元在局部坐标系下的杆端
{,):【o
1.327P 0.326P 一0.673P 一0.462P
0.952P 】
参考文献:
[1]C .T .F .鲁斯,结构力学的有限元法,北京,人民交通出版社,
1991.
[2]宋非非等。结构力学,北京,清华大学出版社.
(上接第25页)
对E PI S40器件资源占用情况为:逻辑单元使用11%,内部存储器使用23%,专用D S P 使用42%。总体来说资源耗费适中,为后续系统整合在同一块FPGA 内预留了空间。
(三)误差的分析与控制
(1)乘法截断误差。2个16位的数据相乘得至I]32位的积,把该
积舍入为16位就会产生误差。去掉次高位多余的符号位并截去后15位。当被截去的各位是‘1’的时候,误差最大:被截去的各位为‘0’时,没有误差。对被截去的部分作类似4舍5入的处理,第18位为‘l ’则向上进位,为‘0’则直接舍去,可以有效减小误差。
(2)加减法溢出误差。2个16位的数据相加减得到17位的结果,在进行下一级运算之前,必须舍去1位,对舍弃的这l 位也进行上述的4舍5入运算。2个小数的加减运算而言,把结果全部右移l 位就可以防止溢出。
五、结论
FP G A 是当今数字电路系统设计的重要技术之一,F FT 是一种实现数字脉冲压缩的高效的方法,其运算结构相对比较简单和固定,适于用F PG A 进行硬件实现。本文介绍了如何将改进1024点FFT 算法用F PG A 模块化设计。设计和测试结果表明,改进的精度以及实时性都满足了应用要求,具有很强的应用价值。
参考文献:
[1]臭本海姆A v ,谢弗R ■.数字信号处理[M ].北京:科学出版社,1980.
[2]赵树杰,史林.数字信号处理[M ].西安:西安电子科技大学出版社,1997[3]f an
O ’D onne l l ,D e n ni s
Y e e .F FT I m pl e m e nt a t i o n
Ex plor at ion[EB /O L]
H tt p ://i nfopa d .Eec s .be rkel e y .e du /ia n /ee 225c /r epor t .htn
[4】刘朝晖,韩月秋.用FPG A 实现FFT 的研究[J 】.北京理工大学学报,1999,19(2):234—238.
[5]A l t er a
C om p any
D a ta
Sheet .Fas t
Four i er
Tr ans f orm [D B ].1997.
。忠一二;§
:;:甚驺弘
巧5
,
篇:慧二
55
皑皑州州q
∞o
。一苫:裟
o
∞耋。嘣眦。墨荨:嚣以K %K
U K
U
K
-l
o o o o
o 。嘣筋
5拓
l 一
00O O
O O
3
n
O 1
.
o o
o
笛粥o
55O O
O
33O O
O O O O 1O
O
O O
00l O O O O O
1
O O
0O
O O
O
O
O O
O 000
O
.O O O O O
1
O
l O
O 。.O
O
●1
O