摘要:提出了一种基于最优搜索嘚稀疏傅里叶变换(SFT)的并行实现设计首先将输入信号分为并行N组,分别进行快速傅里叶变换(FFT)实现信号频率分量的取模处理,然后通过排序搜索获得经验证,相较于FFTW当信号长度大于524 288时,执行时间会有更好的表现;相较于正交匹配算法及其他SFT的FPGA实现其系统的复杂度降低叻。
稀疏傅里叶变换(Sparse Fourier Transform, SFT)是一种新的算法框架也是快速傅里叶变换(Fast Fourier Transform,FFT)在处理稀疏频谱信号上的延伸2003年AYDINER A A等人提出了针对频域稀疏信號的傅里叶变换基本思想[1]。对于频域稀疏信号来说其频谱可以通过其多级子集频谱获得。之后IWEN M
A等人从压缩感知得到启发,将采样囷频率估计整合到快速傅里叶变换并提出了经典SFT框架[2]之后SFT广泛运用于稀疏频谱信号(诸如音频信号、医学图像信号)的处理以及频譜感知领域[3]。大量的SFT算法被提出它们多利用经典的频率估计算法通过亚奈奎斯特采样点的子集的傅立叶变换重构稀疏频点[4]。但甴于经典SFT的亚奈奎斯特率样本是通过多次采样获得的因此,经典SFT 不可能代替
FFT来处理实时信号比如雷达信号等。
2010年以来一种并行结构嘚SFT算法受到了广泛的关注[5]。并行SFT首先通过并行下采样采集计算所需的所有时域数据,然后再通过FFT通过亚线性频谱估计方法获得信號的稀疏频率及其幅值。由于该类方法以并行取代迭代获得频谱估计所需的所有信息因此可以实时处理各种频域稀疏信号,使得经典SFT得箌了改善基于此,参考文献[6]~[8]探讨了稀疏傅里叶变换在GPU以及多核CPU上的实现方式这些研究显示,基于GPU加速的实现方案运行速度要顯著高于基于CPU的实现方案然而,基于GPU的实现方案都存在主存储区与GPU存储区的连接交互问题因此数据间的正常流动不能得到更好的促进。
为解决GPU的数据并行处理的局限性本文研究SFT的并行算法并在FPGA上对其进行实现,同时应用中国余数定理(CRT)的基本原理对信号进行重构楿较于传统的SFT,本文的方法可以极大地降低系统的复杂度减少了硬件的开销。本文首先介绍SFT的并行框架,然后讨论SFT的FPGA实现架构最后從仿真结果以及硬件实现两方面对系统进行评估。
SFT并行算法主要由下采样、频率估计、幅度估计三个部分组成在下采样过程中,将输信號划分为N个组每个组的采样因子分别为σ1,σ2,…,σN。利用中国余数定理(Chinese Residue TheoremCRT)进行频率以及幅度的估计,设定各组的采样因子两两互质
並行SFT算法从L个采样样点中重构2 K算个参数,其中包括K个时延参数以及K个幅度参数重构法的具体计算步骤如下:首先,设采样通道数为N每個通道的采样点数分别为qi,i=1,2,…,N。计算X~=M*X其中M为下采样矩阵,X为采样样本之后,对X~进行DFT变换得到X^=DFT(X~)。按幅度从大到小对X^向量中的值进行排序计算hk:
其中K为指定的重构信号的参数。得到hk之后则可通过求余运算获取余数信息r1,k?hk的位置modq1通过并行查询的方式搜索余数的最优解:
利鼡CRT通过r1,b,…,rNb重构时延参数τk,幅度估计参数可由公式(4)和 (5)得出:
本文考虑使用MATLAB Simulink工具构建SFT采样算法的FPGA实现架构图1展示了当采样通噵数N=3时的SFT并行结构,其主要包括下采样、频率估计、幅度估计三个部分
如图1所示,频率估计与幅度估计共用部分相同的硬件结构信號在经过下采样之后,通过FFT运算得到复数的输出信号为了对该复数信号进行排序,将该复数信号取模后送入排序网络由于每个通道送叺排序网络的点数不同,排序网络的结构会稍有差异在利用CRT估计信号的幅度和频率之前,需要对信号进行求余、求最优解等运算其中,最优解运算的核心是排序网络利用排序网络的思想求取输入信号的最大值以及获取排序后的信号在原输入信号中的位置;CRT模块由一些加法器和乘法器组成。
输入信号经过多路选择器获得下采样信号所以该部分主要研究下采样信号的频率估计以及幅度估计,频率估计包括最优解模块以及CRT重构模块另外,硬件构成部门还包含了存储和控制单元各通道采样因子数ql、参数t、排序位置信息等都在存储单元中保存,控制单元产生地址值来执行读写存储器的操作并输出必要的控制信号来初始化运算模块。
在本设计中设定信号长度N=223,参数个数K采样通道数M=3,其中各个通道的采样点分别为q1,q2q3;q1,q2,q3两两互质且乘积大于信号长度N,因此通过中国余数定理可由q1+q2+q3个采样点数获取原始信号所有的信息,降低了幅度以及频率估计时所需的采样点数下面介绍各个主要功能模块的设计。
2.1.1最优解模块实现架构
频率估计模块的核心部分在于最优解的获得最优解实现架构如图2所示。图中X^t*q1+r1,k可由采样样本经过多路选择器MUX获得根据t的取值不同,可以得到多个定点采樣的样点值当排序网络为三输入结构时,r1,k代表排序网图2最优解模块架构络模块中获得的k1,1,k1,2,k1,3对应位置信息数据对q1取余所得的值t的取值范围為0~qj,j=2,3,其中当j=2时q2=4,同样地有q3=5;两种情况下只有t值的变化导致定点采样的样点值的变化,而其对应的模块架构是相同的所以这里仅对j=2时嘚情况加以分析。
根据排序网络结构需要的输入数据有两组,一组为需要排序的数据以便求得最小值,另外一组则为数据对应的位置信息t这样在排序网络求取完最小值后可以直接获取相应的t值而不需要进行其他的运算处理。为此将需要排序的数据并行导入排序网络嘚数据输入接口,将对应的位置信息t值也并行导入排序网络的位置信息接口
如图3所示,原有输入的3路信号序号为1,2,3该模块实现对这3路信號进行从大到小的排序,并获得排序后的信号在原序列中的序号即取位。图3显示了3输入结构的排序图4输入乃至更多输入结构图原理相哃,图中比较器的输出作为多路选择器的sel选择端输入利用比较器以及多路选择器的硬件电路连接实现逻辑上的比较选择排序。k1,1,k1,2,k1,3为3输入信號经过排序网络的输出信号有k1,1>k1,2>k1,3。k1,1_loc,k1,2_loc,k1,3_loc分别记录了k1,1,k1,2,k1,3在原序列中的位置同时将位置信息存储到位置信息存储器中。
最优解模块输出一组余数信息的集合利用中国余数定理可以轻易地通过一组累加求和运算获取频率集合,进一步便可获取时延参数τk由中国余数定理可以得到如丅方程组:
其中ri(i=1,2,…,n)为频率点的集合,qi(i=1,2,…,n)为采样点数的集合假设Q为q1到qn的乘积,并设Qi=Q/qi,?i∈{1,2,…,n}为Qi模qi的数论倒数,则有:
图4显示了一個频率点的CRT重构模块架构
幅度估计中,利用CRT重构模块中获取的频率集合w1,w2分别与L1,L2作求余运算以此为基础求得hk,利用前面式(4)和式(5)可求得原始信号的幅度估计。其中频率集合w1,w2由CRT模块获得图5中求余的作用为频率集合w1,w2分别对采样点数L1,L2作求余运算。输入序列xl、稀疏度值、采樣通道数、每个通道的采样点数存储在寄存器中供乘法器调用利用排序网络分别求得输入信号实部与虚部的最大值,再对其进行取模则鈳得到幅度值的估计幅度估计的模型如图5所示,其中排序网络为4输入结构。
3结果分析以及性能评估
为评估该算法框架的有效性将其與FFTW做对比,FFTW是一个快速计算离散傅里叶变换公式的库,这个库可以在多核CPU以及GPU上运行分别考虑稀疏度k恒定为1 000时信号长度的变化对执行时间嘚影响,以及信号长度N恒定为223时稀疏度的变化对执行时间的影响比较结果如图6所示。
将本文讨论的稀疏傅里叶变换采样框架与已知的OMP算法框架作性能上的对比实现了信号长度N=32,参数个数K=2以及采样点数的采样框架其中,使用RAM块实现所有所需的向量、常数或矩阵的存储將OMP架构[9]以及SFT架构[10]在同样的平台下做了实现来与本文算法架构进行对比,其结果如表1所示
相较于OMP架构,本文提出架构大大减少了DSP48E鉯及所需寄存器的数量相较于文献[10]提出的SFT架构,本文架构依旧能够有良好的表现
本文提出了SFT的FPGA并行实现方案,使用Simulink中的XSG开发工具構建FPGA实现框架对独立功能块的并行化处理可以大大减少执行时间。之后对FPGA上的硬件实现进行了评估相对于FFTW的实现方案,在采样点数的量级足够大时提高了系统运行速度,降低了计算所需的时间;相对于其他OMP等算法的FPGA实现方案减少了资源的消耗,降低了系统的复杂度