王朝网络
分享
 
 
 

超长可变点数FFT处理器设计与实现

王朝厨房·作者佚名  2007-01-04
宽屏版  字体: |||超大  

北京理工大学河北工业大学高振斌万红星陈禾韩月秋

一、引言

在现代高技术局部战争中,电子战(EW)数字接收机面临着十分复杂的电子环境。尤其对于侦查雷达信号的接收机,同一时间内可能有多个雷达信号进入接收机信道,准确、快速地识别这些雷达是EW接收机的基本要求。为了实时给出雷达脉冲描述字(PDW),EW接收机中数字信号处理操作一般使用硬件完成,主要功能是接收高速A/D采集的数据,对数据中存在的雷达信号进行分离与识别,最后给出雷达脉冲描述字。

对雷达信号的处理可分为频域和时域两部分:在频域主要进行频谱分析与载频测量,如果有多个雷达信号同时进入接收机,可在频域对其进行分离[1];在时域可采用自相关和非相干积累的方法,精确估计出雷达信号的脉冲重复间隔 (PRI),提取出脉冲到达时间 (TOA)和脉冲宽度 (PW) 等参数[2],完成各雷达信号的分析与测量。FFT/IFFT 处理器是完成信号在时域和频域之间转换的必需部件,为了得到较高的频率分辨率,接收机中的 FFT部件应能够执行超长序列的傅里叶变换,比如256k点或更多点数。另外,由于不同雷达信号频谱宽度不同,所以进行傅里叶逆变换的序列长度也不同。因此,对FFT的硬件实现提出了能够实时快速计算超长可变点数序列的要求。

二、超长可变点数FFT处理器关键技术

1.实现方法

在实时数字信号处理中,为达到较高的处理速度,FFT处理器一般采用将基本运算单元级联而形成的流水线型结构[3~7]。对于实现超长点数的FFT处理器,如果直接采用级联结构,需要的存储器规模过于庞大。本设计采用二维处理方式[8],以减小存储器规模。最长为1M点的可变点数FFT处理器实现方案如图1所示。此系统中,把1M点数FFT转换为二维处理,由 2个1 024点FFT模块组成,其中一个为固定1 024点基-4 FFT处理器,另一个为可变点基-2 FFT处理器(可计算2n点FFT,n = 1, ..., 10)。

在每个模块中,除了可变点数子FFT处理器模块,还包括取数、循环控制模块。FFT处理器模块完成行变换和列变换,取数、控制模块完成存储器地址产生、数据的读取、倒序以及输出等操作,以及控制进行变换的序列长度等功能。由于采用了二维处理方式,两片FFT处理器由一个暂存存储器相联,用于存储第一级FFT 的输出(中间数据)和旋转因子的乘积,并将数据重排后送到第二级FFT处理器。

2.流水线结构

为了提高FFT处理速度,每一个子FFT处理器均采用流水线结构,如图2所示。流水线由基本运算单元级联组成,数据进行流水操作。由于FFT每一级运算同时进行,系统总运算时间为一级流水结构处理时间。数据流经基本运算单元的级数由需要进行运算的序列长度控制,以完成可变点数序列的傅里叶变换。

数据输入模块根据数据准备情况,启动地址生成计数器,生成第一级运算单元相应RAM地址并将数据写入,完成输入数据的倒序处理。在接收完N点数据后,生成启动信号,启动流水线开始计算。

在流水线结构中,各基本运算单元是相同的,主要由蝶形运算单元和乒乓存储器组成。基本运算单元接收到启动信号后,读出乒乓存储器中的N点数据和相应旋转因子,和相关控制信号一起送入蝶形运算单元,并将运算结果存入下一级的乒乓存储器中。

数据输出模块根据进行FFT处理的序列长度,控制数据流经基本运算单元的级数,选取相应基本模块的计算结果存入输出乒乓存储器中,并在下一个启动头到来后,输出本处理器的计算结果。

3. 基本运算单元

FFT 处理器流水线结构中,每一级的蝶形运算由基本运算单元实现,其框图如图3所示。图中,蝶形运算单元即为基-2/4模块,旋转因子存储器中存储的是旋转因子表,乒乓存储器完成各级运算之间的数据倒序。地址生成及控制模块的核心是一模可变计数器,计数器的模为进行变换序列的长度,各乒乓存储器的地址及旋转因子表的读地址由计数值变换产生。此外,此模块还产生各存储器的读写使能信号、蝶形运算单元的控制信号和运算结束的标志信号等。

对于块浮点运算,则必须在此框图中加入一个数据因子控制器[7],控制每遍运算过程中的数据大小,以保证每段FFT运算输出增益一致。

4.计算不同长度序列的控制

根据以上讨论的超长可变点数处理器结构,实现不同长度序列FFT变换的控制主要包括两个方面:一是子FFT处理器变换的长度,一是子FFT变换循环次数。下面分别讨论其实现方法。

1)可变点数FFT的地址算法

分析N点基-2 DIT FFT的信号流图[8]可以看出, 2(n-1-p)组2(p+1)点FFT在第p级输出(p = 0, 1, ...,)。由此,基-2的FFT处理器可以实现2n点的FFT。固定点FFT不同的是,输入数据的倒序规律要依据计算的点数确定,而且也要根据点数来控制运算的级数和每级蝶形单元循环运算的次数。设计中,可变点子FFT处理器采用基-2 DIT算法的数据倒序规则,数据逆序输入、正序输出。各级运算采用原址运算的方法生成存储器地址,读本级存储器与写下一级存储器的地址相同。各存储器地址可由计数器的输出经过变换生成,由于序列长度可变,计数器应是最大模为序列最大长度的可变模计数器,运算时模为序列长度。

假设处理器能处理的最长序列的长度为M(M= 2m),当前计算的序列长度为N(N= 2n),共需n级蝶形运算。设各模块计数器输出为Cm-1...C0,RAM地址为Am-1...A0,数据从外部存储器顺序读入,倒序后写入第一级基本运算模块,输入模块使用的存储器地址可按照下式生成:

对于不同数据长度N,输入模块写操作时RAM地址生成方法不同,具体实现可使用一多路选择器,根据n来选择生成相应存储器地址。

由于采用原位运算方法,各级基本运算单元的读操作和写操作使用相同的存储器地址。以M = 8为例,各模块地址生成方法如图4所示。

对于旋转因子存储器,计算不同点数FFT时,同一级蝶形运算对应的旋转因子是不变的。根据基-2 DIT FFT算法,第n级蝶形运算有2n-1个旋转因子,旋转因子存储器的寻址方法如图5所示。

输出计算结果时,可根据n来选择,把FFT处理器第n级基本运算单元的输出作为最终运算结果。根据与输入数据地址产生的同样方法,生成存储结果的存储器地址,从而达到实现点数可变FFT处理器的目的。

2)子FFT循环次数控制方法

根据一维FFT变为二维处理的数据重排规则,L点FFT处理器每次循环需要从外部RAM中抽取L个数据进行运算,需要循环M次。从外部RAM取数时,连续两个数据的存储器地址相差M,即地址每隔M取一个数据。数据抽取的方法和循环次数控制的方法如下:

设所处理序列的最大长度为2k,设置一个k位计数器,由两个k/2位计数器级联组成,计数器L作为低位计数器,计数器M作为高位计数器,它们的模分别为L和M,可由外部控制。在读取数据时,计数器M计和数器L的有效位组成RAM地址。外部RAM地址An-1~A0的生成方式与计数器计数值的对应关系如图5所示。

输入的L点数据存放在片内RAM中,然后给出启动信号,进行L点的FFT处理,同时再取下一组L点数据。每取一组数据,计数器M增1,当计数器M溢出时,N点FFT运算完毕。

子FFT处理器变换的长度由流水线中数据输入模块和输出模块控制。在输出计算结果时,可根据L来选择,把 FFT处理器第l级基本运算单元的输出作为最终运算结果。根据与输入数据地址产生的同样方法,生成运算结果的存储器地址,从而达到实现点数可变FFT处理器的目的。

三、设计结果与应用

从目前的技术情况来看,现有FPGA器件发展迅猛,内部丰富的乘法器、存储器和查找表(LUT)尤其适合作数字信号处理。根据本文的方法,作者设计了N=210+m(m=1, 2,...,10)点FFT处理器。采用两片Xilinx公司的XC2V3000分别完成固定1 024点基-4 FFT处理器和可变点数(2m点)FFT处理器。数据采用了块浮点表示方法,扩大了数的表示范围,提高了运算精度。设计采用了自顶向下设计方法,源代码使用VHDL书写。开发环境为Xilinx公司的ISE 6.1。在综合实现的过程中,对关键路径的延时加以合适的约束,此处理器可工作在66 MHz,连续运算时,完成256K点复数点FFT仅需4.090 ms。

此FFT处理器已用于某EW接收机数字信号处理模块中,其功能框图如图6所示。

信号处理模块的工作过程为:接收到高速A/D采集的数据后,对整个输入序列加窗,进行傅里叶变换,求得幅度谱,经过通道校正、低通滤波后,在频域对信号进行检测,得到雷达脉冲信号的中心频率和带宽。对于同时到达的频率互不重叠的信号,分离出各个信号的频谱,再进行傅里叶逆变换,得到信号的时域波形,测得脉冲重复频率和脉宽等参数。它可以被外部设备如DSP控制,处理完的数据或中间数据可以通过标准总线或通过专用总线和外部设备交互。

测试时,用MATLAB产生256K点原始数据,进行FFT运算,然后进行频谱分离,取出其中一个峰值(3 dB带宽),补零到64K点后再进行IFFT运算。分别用MATLAB和FFT处理器进行上述操作,我们将实际运算结果与matlab仿真结果进行比较,如图7所示。

四、结论

本文实现了超长可变点数FFT处理器设计,此处理器可完成1k~1M点可变长度序列的FFT/IFFT计算,序列长度由外部控制。采用FFT的多维映射方法,将一维长点数FFT映射为二维小点数子FFT处理,每一维子FFT在一片FPGA中完成。采用了基-2/基-4运算模块的级联结构,使用了乒乓存储器进行流水线处理,可以连续计算N点复数输入FFT(IFFT),即输入可以是分段N点连续复数数据流,提高处理速度。对输入数据的顺序以及参与流水运算的级数加以控制,用同一电路可以计算不同长度序列的FFT。采用此FFT处理器的EW数字接收机信号处理模块能够方便地进行信号的频谱分析、信号相关等操作,具有重要使用价值。

本文摘自《电讯技术》

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有