一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种支持非基2点数输出序列的FFT处理器及处理方法

2022-12-03 00:01:51 来源:中国专利 TAG:

一种支持非基2点数输出序列的fft处理器及处理方法
技术领域
1.本技术涉及信号处理领域,尤其涉及一种支持非基2点数输出序列的fft处理器及处理方法。


背景技术:

2.合成孔径雷达(synthetic aperture radar,sar)是fft算法的一个典型应用场景,这是一种具有全天时、全天候工作能力的二维成像雷达。星载合成孔径雷达是空间对地观测领域的一个重要组成部分,被广泛应用于地球遥感、军事侦察、资源勘探等诸多国防和民生的重要领域。传统成像卫星获取的海量原始数据需传输到地面处理,系统环节多,数据传输量大,应用保障复杂,造成遥感信息获取时效性不足,难以满足如灾后搜救等应用场景的需求。
3.将雷达信号成像、信息处理等转换到在轨处理,提取感兴趣信息下传地面可有效解决上述问题。在过往的在轨sar实时处理中,由于卫星观测角变大、分辨率提升、成像模式增多等因素导致硬件平台整体规模提升,加之空间环境对体积、重量、功耗的严苛要求,降低硬件平台规模并保证处理实时性是在轨sar处理的核心难题。
4.作为sar实时处理中最主要运算模块的fft(fast fourier transform)/ifft(inverse fast fourier transform)运算核,受限于cooley-tukey算法基-2的分解思路,如实际转换长度不足2的整数次幂,需在时域进行补零操作将fft点数补全到2的幂次。以1600点fft为例,1024点fft无法满足处理需求,需要补全到2048点。在sar成像处理领域,一般进行fft运算处理的转换序列点数都是万点以上,因此fft的不灵活性导致系统不得不消耗额外大量的内部高速存储(如sram,static random-access memory,静态随机存取存储器)和外部大容量存储(如saram,synchronous dynamic random-access memory,同步动态随机存取内存)以匹配fft处理器的输出粒度。更严重的,sar成像算法的二维性(方位方向为飞行方向,距离方向为扫描的方向,相互垂直)使得存储浪费以平方趋势增大。
5.为了解决fft转换长度不灵活的问题,在一些特殊的应用场景下,会采用其他固定基算法,如基-3、基-5和基-6算法,但并非所有fft点数都是固定因数的整数次幂。在更灵活的场景下,将fft点数分解为至少两种因数的混合基fft处理器被应用。混合基fft处理器一般有2种结构:顺序摆放多种流水式固定基蝶形单元,根据实际fft点数选择若干流水级构成数据通路;采用可变基蝶形结构,顺序摆放多个可变基蝶形单元,根据实际fft点数配置每一级基数、选择若干流水级构成数据通路。
6.根据对现有非整数次幂转化长度的fft处理方法及处理器的分析,可知其中存在很多问题,主要为以下两点:
7.处理方法及处理器可配置的转换长度有限,存储浪费严重,混合多种固定基从本质上为fft点数拆解提供了更多可选择的拆解因子,但混合基的个数受电路规模限制不可能无穷多,及可配置为的点数仍然是有限的。且可支配的点数密集分布在小点数范围内,大点数范围内可配置点数较少,而存储浪费问题在大点数情况下才会凸显,故现有方案并没
有有效解决存储浪费问题。以13级混合基(基2/基3)fft为例,最长可配置为1.5m,最多可配置为104种长度,当实际处理长度为1.1m时,仍需要补齐至1.5m点,需浪费26%的存储资源。
8.处理器设计复杂、配置不灵活,为了丰富可配置点数或者对不同转换长度场景进行适应,需设计多种固定基结构甚至多基复用结构,并需要根据场景对硬件结构进行更改,这带来的设计与调试难度对于快速开发是很不利的。另外,对于一个已实现的混合基fft处理器,在实际处理时,面对一个新的转化点数需生成一个专用的因子拆解方案,再对各级fft进行硬件配置,预处理复杂,实现难度大。


技术实现要素:

9.本技术针对现有技术中由fft处理方法或处理器得到的输出粒度都是固定因数的整数次幂,以及fft处理器设计复杂、配置不灵活的缺点,提出了基于非整数点时域插值技术实现在频域输出非整数次幂转化长度序列的fft处理方法或处理器,同时能够克服对不同转换长度场景需要进行大幅度硬件结构更改的缺陷。
10.一方面,本技术提供一种支持非基2点数输出序列的fft处理器,包括:
11.平滑插值模块,用于对输入序列进行非整数点插值得到基2点数的时域插值序列;所述非整数点插值使得所述输入序列经过所述fft处理器得到的输出序列在进行截取处理之前,为所述输入序列进行dft处理的输出序列在频域补零得到的序列;
12.fft处理模块,用于对所述基2点数的时域插值序列进行基2fft处理得到基2点数的频域序列;
13.补偿截取模块,用于对所述基2点数的频域序列进行相位补偿,并进行所述截取处理得到非基2点数的输出序列作为所述fft处理器的输出序列;所述fft处理器的输出序列与所述输入序列进行dft处理的输出序列相同。
14.优选的,所述fft处理模块包括可变点fft模块和流水式调序模块;所述可变点fft模块,用于对所述时域插值序列进行多级迭代的蝶形运算得到比特逆序fft频域序列;所述流水式调序模块,用于对所述比特逆序fft频域序列进行调序得到所述基2点数的频域序列。
15.优选的,所述平滑插值模块包括数据控制器、移位寄存器、浮点数乘加器和插值核查找表;所述可变点fft模块包括多级的单路延时反馈结构单元和译码控制器;所述流水式调序模块包括顺、逆序地址寄存器和地址选择器、随机存取存储器;优选的,所述补偿截取模块包括因子乘法器、计算截取器。
16.优选的,所述fft处理器的输出序列会被移交至系统的缓存和内存中进行后继的信号处理。
17.优选的,所述输入序列的长度作为唯一参数独立提供给所述平滑插值模块、所述fft处理模块和所述补偿截取模块。
18.另一方面,本技术提供一种支持非基2点数输出序列的fft处理方法,包括:
19.获取输入序列,根据非整数点插值技术将所述输入序列进行平滑插值得到基2点数的时域插值序列;所述非整数点插值技术使得所述输入序列经过所述fft处理方法得到的输出序列在进行截取处理之前,为所述输入序列进行dft处理的输出序列在频域补零得到的序列;
20.根据基2fft技术对所述基2点数的时域插值序列进行处理得到基2点数的频域序列;
21.对所述基2点数的频域序列进行相位补偿,并进行所述截取处理得到非基2点数的输出序列作为所述fft处理方法的输出序列;所述fft处理方法的输出序列与所述输入序列进行dft处理的输出序列相同。
22.优选的,所述基2fft技术包括对所述基2点数的时域插值序列进行多级迭代的蝶形运算得到比特逆序fft频域序列;所述基2fft技术还包括对所述比特逆序fft频域序列进行调序得到所述基2点数的频域序列。
23.优选的,所述非整数点插值技术对所述输入序列进行数据控制、插值核查找、移位寄存和浮点数乘加;所述基2fft技术对所述时域插值序列进行多级迭代的蝶形运算;利用顺、逆序地址寄存器和地址选择器对所述比特逆序fft频域序列进行调序;利用循环因子补偿和计算截取技术对所述基2点数的频域序列进行处理得到所述fft处理方法的输出序列。
24.优选的,所述fft处理方法的输出序列会被移交至系统的缓存和内存中进行后继的信号处理。
25.优选的,所述输入序列的长度是执行所述非整数点插值技术、所述基2fft技术、所述相位补偿和所述截取处理的唯一参数。
26.与现有技术相比,本发明可以实现转换长度任意配置的fft处理方法及处理器,可充分节约大点数fft应用场景下存储资源开销;采用参数配置方案,无需根据应用场景更改硬件结构即可实现装换长度的在线配置,简化了开发过程。
附图说明
27.为了更简单说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1为现有技术中fft蝶形运算单元图;
29.图2为现有技术中dif-fft蝶形变换流程图;
30.图3为本技术实施例提供的一种支持非基2点数输出序列的fft处理器的结构示意图;
31.图4为本技术实施例提供的一种支持非基2点数输出序列的fft处理方法的流程图;
32.图5为本技术实施例提供的平滑插值模块的结构示意图;
33.图6为本技术实施例提供的可变点fft模块的结构示意图;
34.图7为本技术实施例提供的流水式调序模块的结构示意图;
35.图8为本技术实施例提供的补偿截取模块的结构示意图。
具体实施方式
36.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例,本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.对于fft的底层硬件实现流程来说,主要包括:蝶形运算单元(如图1所示)的结构、旋转因子的生成、存储结构(输入数据的存储、中间操作数的存储、旋转因子的存储等)、相关的寻址规律和硬件架构。fft从算法上而言主要有以下两个特点:时域输入数据量=频域输出的数据量,如:八点频域抽取(decimation-in-frequency,dif)fft每次输入8个数据,那么对应输出8个数据;输入和输出是倒序关系,这里的倒序指的是二进制的倒序,如图2所示,输入的顺序为(用前四个数举例):000、001、010、011(0、1、2、3),那么对应的输出就是000、100、010、110(0、4、2、6),也就是,输入的时域序列顺序为x(0)、x(1)、x(2)、x(3),那么对应输出的频域序列逆序为x(0)、x(4)、x(2)、x(6)。
38.在典型的sar成像算法中,如距离多普勒(range doppler,rd)算法、工作中线性调频变标(chirp scaling,cs)算法等,fft是不避免的核心运算步骤,由于传统fft对运算长度的特殊要求(需在时域进行补零操作将fft点数补全到2的幂次)和sar处理的二维性(方位方向为飞行方向,距离方向为扫描的方向,相互垂直),数据规模往往被扩大2-3倍。在硬件系统中,fft运算的运算结果往往会被移交至系统的缓存和内存中,以进行后续的信号处理。而在当前的sar成像系统中,片上缓存容量和片外内存带宽是最宝贵的硬件资源,往往是制约系统性能的瓶颈要素。
39.本技术提出的fft处理器采用流水线结构。流水线结构的fft处理器可以同时实现数据连续输入输出、大数据吞吐能力与高实时性,使用最为广泛。流水线结构中占用资源最少、性能最好的电路结构为单路延时反馈结构(single-path delay feedback,sdf)。
40.在图3-7中,本发明以16~1024任意点数fft处理器(单精度浮点)为实施例进行说明。
41.图3为本技术实施例提供的一种fft处理器的结构示意图,硬件实现采用数据流驱动结构,由平滑插值模块31、可变点fft模块32、流水式调序模块33、补偿截取模块34首尾相接构成。
42.在图3中,非整数次幂转换长度fft处理器依次完成循环移位后的平滑插值、n点fft、调序、以及循环因子补偿和m点截取。转换长度作为唯一参数独立提供给各个模块。
43.平滑插值模块31,用于对输入序列进行非整数点插值得到基2点数的时域插值序列;非整数点插值使得所述输入序列经过fft处理器得到的输出序列在进行截取处理之前,为输入序列进行dft处理的输出序列在频域补零得到的序列;如图5所示,平滑插值模块包括数据控制器、移位寄存器、浮点数乘加器和插值核查找表。
44.非整数点时域插值原理如下:
45.假设一个离散时域信号为x(m),m=0,1,2,...,m-1。其离散频谱为x(w),w=0,1,2,...,m-1。x(w)可由以下dft公式求得:
[0046][0047]
最经典的fft算法作为dft的快速算法,要求转化长度必须为2的整数次幂,当m不满足此条件时,需将m延长为n=2s。如可以利用fft原理得到一个新的频谱x

(k),该频谱是在dft公式计算得到的x(w)之后补充m-n个0值,即对x(w)频域补零。如频域补零的结果作为
fft处理器的输出,之后通过简单截取即可获得所需的任意长度频谱。故如何对x(m)进行预处理得到一个长度为n的输入x

(n),该x

(n)对应的fft结果为原频谱补零,是本发明技术方案的关键点。算法推导如下:
[0048]
将x(w)补零至x

(k),k=0,1,2,...,n-1,总结如下:
[0049][0050][0051]
根据dft公式可得:
[0052][0053]
令:
[0054][0055]
代入原式可得:
[0056][0057]
上式中末尾项是类似于sinc函数分布的权值项:其中θ的范围是-π~π,故sin(θ/2)为持续半周期的正弦信号,而sin(mθ/2)的震荡频率是sin(θ/2)的m倍,共持续m/2个周期,故该权值的主要能量集中在θ=0附近。根据计算,90%的能量分布在-0.009rad~0.009rad范围内,99%的能量分布在-0.1rad~0.1rad范围内。从能量角度出发,我们可将
加权范围缩小到θ=0附近,同时可将sin(θ/2)替换为θ/2,公式如下:
[0058][0059]
公式转为sinc插值的形式,这与时频关系中频域补零对应时域插值的原理相吻合。假定插值核长度为cl,习惯上取cl为偶数。令:
[0060][0061]
可得m的范围如下,其中m取整数,n取单值时对应cl个m值:
[0062][0063]
原式转化为:
[0064][0065]
考虑到有限长度插值对原加权项进行截取操作会引入振铃效应,故对sinc函数进行kaiser窗加权,将加权后sinc函数命名为sinc

,表示平滑后插值函数。由于fft算法自身特性,计算后的频谱的高频分布中部,低频分布在两侧,即频谱轴为[0~fs/2,-fs/2~0)。如直接对x(w)左侧补零得到x

(k),x(w)中的低频区将步入x

(k)的高频区。由于kaiser窗在高频区拥有短暂的抑制带,故以上作法会对使x

(n)的高频成分被显著削弱并导致频谱变形。通过时域相移x(w)的补零序列插入高频区可解决以上问题。具体做法为:将x(w)循环右移m/2得到x1(w);对x1(w)右端补m-n个0得到x2(w);x2(w)循环左移m/2得到x

(k)。根据信号处理理论:
[0066][0067]
可将以上三步可总结为:
[0068][0069]
联立三式可得:
[0070]
[0071]
上式中x

(n)即对应高频补零的结果。同时可发现公式自然简化。
[0072]
考虑到是很小的相位扰动偏移值,对fft计算的误差远小于有限插值核引入的误差,且实时计算的代价大,故公式进一步简化为:
[0073][0074]
考虑到x

(n)前cl个值可能需要x(m)末尾几个值参与计算,出于实时处理的角度,fft处理器输入x

(n),x

(n)为x

(n)循环左移cl:
[0075]
x

(n)=x

(mod(n cl,n)),
[0076]
如此可将x

(n)前cl个值的计算放置在最后,但需要将x(m)前几个值缓存。
[0077]
根据信号处理理论:
[0078][0079]
最终输出频谱调整为:
[0080][0081]
综上,算法流程总结如下:
[0082][0083]
对x

(k)按以下方式截取可获得目标频谱x(w):
[0084]
m为偶数:
[0085]
m为奇数:
[0086]
可变点fft模块32,用于对基2点数的时域插值序列进行多级迭代的蝶形运算得到比特逆序fft频域序列;如图6所示,可变点fft模块包括多级的单路延时反馈结构单元和译码控制器。
[0087]
在一个实施例中,利用基2dif-fft技术对时域插值序列进行若干级迭代的蝶形运算,得到比特逆序fft频域序列,并根据转换长度确定多数迭代的级数。
[0088]
设时域序列x(n)长度为n,n为偶数,即n=2m,将x(n)按前后进行分组,可对dft进行分解有:
[0089][0090]
从上式可以看出,k的取值不同,会导致两个数据之间的加减运算不同,以此为依据将x(k)按照奇偶分组,即x(2r)、x(2r 1),其中r=0,1,...,n/2-1。故上式可继续分解为:
[0091][0092][0093]
令:
[0094][0095]
可推导出基-2蝶形单元如图1所示。
[0096]
同理可知当n/2仍为偶数时,则继续依此蝶形单元进行分解。当n为2的整数次幂时,则一直进行分解到点数为2,而2点dft同样用蝶形单元实现。如图2所示为8点dif-fft示意图。
[0097]
流水式调序模块33,用于对比特逆序fft频域序列进行调序得到基2点数的频域序列;如图7所示,流水式调序模块包括顺、逆序地址寄存器和地址选择器、随机存取存储器。
[0098]
补偿截取模块34,用于对基2点数的频域序列进行相位补偿,并进行截取处理得到非基2点数的输出序列作为fft处理器的输出序列;fft处理器的输出序列与输入序列进行dft处理的输出序列相同;如图8所示,补偿截取模块包括因子乘法器、计算截取器。
[0099]
图4为本技术实施例提供的一种支持非基2点数输出序列的fft处理方法的流程图,包括以下步骤:
[0100]
步骤s410:获取输入序列,根据非整数点插值技术将输入序列进行平滑插值得到基2点数的时域插值序列;非整数点插值使技术得所述输入序列经过fft处理方法得到的输出序列在进行截取处理之前,为输入序列进行dft处理的输出序列在频域补零得到的序列。
[0101]
步骤s420:根据基2fft技术对基2点数的时域插值序列进行处理得到基2点数的频域序列。
[0102]
基2fft技术包括对基2点数的时域插值序列进行多级迭代的蝶形运算得到比特逆序fft频域序列;基2fft技术还包括对比特逆序fft频域序列进行调序得到基2点数的频域序列
[0103]
步骤s430:对基2点数的频域序列进行相位补偿,并进行截取处理得到非基2点数的输出序列作为fft处理方法的输出序列;fft处理方法的输出序列与输入序列进行dft处
理的输出序列相同。
[0104]
非整数点插值技术对输入序列进行数据控制、插值核查找、移位寄存和浮点数乘加;基2fft技术对所述时域插值序列进行多级迭代的蝶形运算;利用顺、逆序地址寄存器和地址选择器对比特逆序fft频域序列进行调序;利用循环因子补偿和计算截取技术对基2点数的频域序列进行处理得到fft处理方法的输出序列。
[0105]
fft处理方法的输出序列会被移交至系统的缓存和内存中进行后继的信号处理。
[0106]
输入序列的长度是执行非整数点插值技术、基2fft技术、相位补偿和截取处理的唯一参数。
[0107]
图5为本技术实施例提供的平滑插值模块的结构示意图,平滑插值模块,包括数据控制器、移位寄存器、浮点数乘加器和插值核查找表对获取得到的需要进行fft处理的离散时域序列进行非整数点时域插值。
[0108]
在一个实施例中,
[0109]
原始数据x(m)经过该模块的插值运算生成x

(n),数据流协议为最常见的axi4-stream,选取插值核长度为16,量化位移为1/64,kaiser窗旁瓣参数为10。
[0110]
平滑插值模块中各单元介绍如下:
[0111]
数据控制器311,执行过程如下:
[0112]
(1)将前8个数据暂存到寄存器组中,当计算x

(n)末尾16个数据时取出;
[0113]
(2)根据转换长度控制计算某个x

(n)时,是否接收并传递给移位寄存器新的数据(根据m的范围可知,由于随着n增大,m也在随之滑动增大。但由于m<n,故m滑动速度小于n,即存在多个n值对应同一组m值。在此情形下,计算x

(n)不需要接收新的x(m),通过axi4-stream协议发出阻塞信号);
[0114]
(3)控制浮点乘法器使能;
[0115]
(4)根据转换长度给插值核查找表提供地址,以取出所需的16
×
32bit平滑插值核。
[0116]
移位寄存器312,执行过程如下:
[0117]
(1)16个64位寄存器首尾相连,用于存储计算某个x

(n)时需要的16个x(m);
[0118]
(2)将16个x(m)传递给浮点乘加器。
[0119]
浮点数乘加器313,同时完成16个数据和16个平滑插值核的乘法,再将乘法结果相加输出。
[0120]
插值核查找表314,执行过程如下:
[0121]
(1)用于保存64
×
16点平滑插值核,并根据地址提供16点插值核;
[0122]
(2)采用单口rom实现,数据位宽为16
×
32=512bit,总空间占64
×
16
×
32bit=4kb;
[0123]
(3)sinc

平滑插值核数据如下表1所示:
[0124]
表1:
[0125]
0.0000.0000.0000.0000.0000.0000.0001.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.000-0.0010.002-0.0030.006-0.0151.0000.015-0.0070.003-0.0020.0010.0000.0000.0000.0000.001-0.0020.003-0.0070.013-0.0290.9980.031-0.0130.007-0.0040.002-0.0010.0000.0000.0000.001-0.0030.005-0.0100.019-0.0420.9960.047-0.0200.010-0.0050.003-0.0010.0000.000-0.0010.001-0.0030.007-0.0130.025-0.0550.9940.064-0.0270.014-0.0070.004-0.0020.0010.000-0.0010.002-0.0040.008-0.0160.030-0.0680.9900.081-0.0340.018-0.0090.005-0.0020.0010.000-0.0010.002-0.0050.010-0.0190.036-0.0800.9850.098-0.0410.021-0.0110.006-0.0030.0010.000-0.0010.002-0.0060.011-0.0220.041-0.0910.9800.116-0.0480.025-0.0130.007-0.0030.0010.000-0.0010.003-0.0060.013-0.0240.046-0.1020.9740.134-0.0550.028-0.0150.008-0.0030.0010.000-0.0010.003-0.0070.014-0.0270.051-0.1120.9670.153-0.0620.032-0.0170.009-0.0040.0020.000-0.0010.003-0.0080.015-0.0290.056-0.1220.9600.172-0.0690.036-0.0190.009-0.0040.002-0.001-0.0010.004-0.0080.017-0.0320.060-0.1310.9510.191-0.0760.039-0.0210.010-0.0050.002-0.001-0.0010.004-0.0090.018-0.0340.064-0.1390.9420.211-0.0830.043-0.0230.011-0.0050.002-0.001-0.0010.004-0.0090.019-0.0360.068-0.1470.9320.231-0.0900.046-0.0250.012-0.0060.002-0.001-0.0020.004-0.0100.020-0.0380.072-0.1540.9220.251-0.0970.050-0.0260.013-0.0060.002-0.001-0.0020.004-0.0100.021-0.0400.075-0.1610.9100.272-0.1040.053-0.0280.014-0.0070.003-0.001-0.0020.005-0.0110.022-0.0410.078-0.1670.8980.292-0.1110.057-0.0300.015-0.0070.003-0.001-0.0020.005-0.0110.022-0.0430.081-0.1730.8850.313-0.1180.060-0.0320.016-0.0070.003-0.001-0.0020.005-0.0110.023-0.0440.084-0.1780.8720.334-0.1240.063-0.0340.017-0.0080.003-0.001-0.0020.005-0.0120.024-0.0460.086-0.1820.8580.355-0.1310.067-0.0350.018-0.0080.003-0.001-0.0020.005-0.0120.024-0.0470.089-0.1860.8440.377-0.1370.070-0.0370.019-0.0090.004-0.001-0.0020.005-0.0120.025-0.0480.090-0.1890.8280.398-0.1430.072-0.0380.020-0.0090.004-0.001-0.0020.005-0.0120.025-0.0490.092-0.1920.8130.419-0.1490.075-0.0400.020-0.0100.004-0.001-0.0020.005-0.0120.026-0.0490.093-0.1940.7960.441-0.1540.078-0.0410.021-0.0100.004-0.001-0.0020.005-0.0120.026-0.0500.094-0.1960.7800.462-0.1600.080-0.0430.022-0.0100.004-0.001-0.0020.005-0.0130.026-0.0500.095-0.1970.7620.484-0.1650.083-0.0440.022-0.0110.004-0.001-0.0020.005-0.0130.026-0.0510.096-0.1970.7450.505-0.1690.085-0.0450.023-0.0110.004-0.002-0.0020.005-0.0130.026-0.0510.096-0.1970.7260.526-0.1740.087-0.0460.024-0.0110.005-0.002-0.0020.005-0.0130.026-0.0510.096-0.1970.7080.547-0.1780.089-0.0470.024-0.0110.005-0.002-0.0020.005-0.0130.026-0.0510.096-0.1960.6890.568-0.1820.091-0.0480.025-0.0120.005-0.002-0.0020.005-0.0120.026-0.0510.096-0.1950.6690.589-0.1850.092-0.0490.025-0.0120.005-0.002-0.0020.005-0.0120.026-0.0500.095-0.1930.6500.609-0.1880.093-0.0490.025-0.0120.005-0.002-0.0020.005-0.0120.026-0.0500.094-0.1910.6300.630-0.1910.094-0.0500.026-0.0120.005-0.002-0.0020.005-0.0120.025-0.0490.093-0.1880.6090.650-0.1930.095-0.0500.026-0.0120.005-0.002-0.0020.005-0.0120.025-0.0490.092-0.1850.5890.669-0.1950.096-0.0510.026-0.0120.005-0.002-0.0020.005-0.0120.025-0.0480.091-0.1820.5680.689-0.1960.096-0.0510.026-0.0130.005-0.002-0.0020.005-0.0110.024-0.0470.089-0.1780.5470.708-0.1970.096-0.0510.026-0.0130.005-0.002-0.0020.005-0.0110.024-0.0460.087-0.1740.5260.726-0.1970.096-0.0510.026-0.0130.005-0.002-0.0020.004-0.0110.023-0.0450.085-0.1690.5050.745-0.1970.096-0.0510.026-0.0130.005-0.002-0.0010.004-0.0110.022-0.0440.083-0.1650.4840.762-0.1970.095-0.0500.026-0.0130.005-0.002-0.0010.004-0.0100.022-0.0430.080-0.1600.4620.780-0.1960.094-0.0500.026-0.0120.005-0.002-0.0010.004-0.0100.021-0.0410.078-0.1540.4410.796-0.1940.093-0.0490.026-0.0120.005-0.002-0.0010.004-0.0100.020-0.0400.075-0.1490.4190.813-0.1920.092-0.0490.025-0.0120.005-0.002-0.0010.004-0.0090.020-0.0380.072-0.1430.3980.828-0.1890.090-0.0480.025-0.0120.005-0.002-0.0010.004-0.0090.019-0.0370.070-0.1370.3770.844-0.1860.089-0.0470.024-0.0120.005-0.002-0.0010.003-0.0080.018-0.0350.067-0.1310.3550.858-0.1820.086-0.0460.024-0.0120.005-0.002-0.0010.003-0.0080.017-0.0340.063-0.1240.3340.872-0.1780.084-0.0440.023-0.0110.005-0.002-0.0010.003-0.0070.016-0.0320.060-0.1180.3130.885-0.1730.081-0.0430.022-0.0110.005-0.002-0.0010.003-0.0070.015-0.0300.057-0.1110.2920.898-0.1670.078-0.0410.022-0.0110.005-0.002-0.0010.003-0.0070.014-0.0280.053-0.1040.2720.910-0.1610.075-0.0400.021-0.0100.004-0.002-0.0010.002-0.0060.013-0.0260.050-0.0970.2510.922-0.1540.072-0.0380.020-0.0100.004-0.002-0.0010.002-0.0060.012-0.0250.046-0.0900.2310.932-0.1470.068-0.0360.019-0.0090.004-0.001-0.0010.002-0.0050.011-0.0230.043-0.0830.2110.942-0.1390.064-0.0340.018-0.0090.004-0.001-0.0010.002-0.0050.010-0.0210.039-0.0760.1910.951-0.1310.060-0.0320.017-0.0080.004-0.001-0.0010.002-0.0040.009-0.0190.036-0.0690.1720.960-0.1220.056-0.0290.015-0.0080.003-0.0010.0000.002-0.0040.009-0.0170.032-0.0620.1530.967-0.1120.051-0.0270.014-0.0070.003-0.0010.0000.001-0.0030.008-0.0150.028-0.0550.1340.974-0.1020.046-0.0240.013-0.0060.003-0.0010.0000.001-0.0030.007-0.0130.025-0.0480.1160.980-0.0910.041-0.0220.011-0.0060.002-0.0010.0000.001-0.0030.006-0.0110.021-0.0410.0980.985-0.0800.036-0.0190.010-0.0050.002-0.001
0.0000.001-0.0020.005-0.0090.018-0.0340.0810.990-0.0680.030-0.0160.008-0.0040.002-0.0010.0000.001-0.0020.004-0.0070.014-0.0270.0640.994-0.0550.025-0.0130.007-0.0030.001-0.0010.0000.000-0.0010.003-0.0050.010-0.0200.0470.996-0.0420.019-0.0100.005-0.0030.0010.0000.0000.000-0.0010.002-0.0040.007-0.0130.0310.998-0.0290.013-0.0070.003-0.0020.0010.0000.0000.0000.0000.001-0.0020.003-0.0070.0151.000-0.0150.006-0.0030.002-0.0010.0000.000
[0126]
考虑到插值核的长度,本实施例中尽量不做0~16的点数。这个是因为图5中插值核长度设置为16,也就是x(m)的长度至少为16时,计算出的结果在精度上才有保障,也就是x(n)至少为16点。如果x(n)的长度小于16会导致参与加权的x(m)数量过小,不敢保证其运算精度。此外,在100点以内的fft对存储资源的占用都很小,没有必要为了节省存储进行针对性设计,本技术主要还是瞄准类似于sar的大点数应用场景。
[0127]
图6为本技术实施例提供的可变点fft模块的结构示意图,可变点fft模块,包括多级的单路延时反馈结构单元和译码控制器,用于对所述时域插值序列进行若干级迭代的蝶形运算得到比特逆序fft频域序列。
[0128]
在一个实施例中,
[0129]
该模块承担fft的运算,同时考虑到当m<n/2时,仅需进行n/2点或更小点fft,故该模块支持1024点内、2整数次幂点fft计算。fft算法基本原理,该模块输出的数据流为比特逆序。下图为可变点fft模块结构示意。可变点fft模块由10级sdf结构首尾相接,由译码控制器控制各级的数据通路。
[0130]
可变点fft模块中各单元介绍如下:
[0131]
sdf单元321,执行过程如下:
[0132]
(1)最广泛被使用的流水式fft结构。运行原理:以第0级sdf单位为例,当前512位数据流入该结构中,数据缓存到第0级存储中。后512位数据流入过程中,读取缓存区中对应的数据送入蝶形单元进行运算,并将蝶形单元加结果送入w因子乘单元,同时将蝶形单元减结果反馈到第0级存储中,覆盖使用过的数据。当后512位数据全部流入后,第0级存储全部为蝶形单元减结果。此时sdf结构接收下一帧数据的前512位,将第0级存储中的减结果送入w因子乘单元。依次反复完成多帧fft的第一级计算。第n级sdf结果与第0级sdf结构完全一值,仅第n级存储大小、处理数据的跨度逐渐递减1/2。
[0133]
(2)数据分配器和数据选择器配合工作,决定数据流是否经过某个sdf结构处理,或直接送往下级;
[0134]
译码控制器322,根据转换长度确定使用几级sdf结构,并控制所有数据分配器和数据选择器实现数据链路的控制。尽量使用末位级sdf结构,避免对sdf结构的动态配置。如m=500时,使用1-9级;m=50时,使用4-9级。
[0135]
本实施例提供的可变点fft模块的结构处理器,设计简单、配置灵活,可以丰富配置不同点数或者对不同转换长度场景进行适应,只需要根据译码控制器来控制使用几级sdf结构、并复用同样结构的sdf,就可以实现任意的转换长度场景,不需要根据场景对硬件结构进行较大更改,非常有利于快速开发。
[0136]
图7为本技术实施例提供的流水式调序模块的结构示意图,流水式调序模块,包括顺、逆序地址寄存器和地址选择器、随机存取存储器,用于对比特逆序fft频域序列进行调序得到比特正序fft频域序列,该模块负责以流水形式完成对比特逆序fft结果的调序。
[0137]
在一个实施例中,流水式调序模块中各单元介绍如下:
[0138]
顺序地址寄存器331、逆序地址寄存器332,根据比特逆序原理生成2种地址逻辑,供地址选择器选择。
[0139]
地址选择器333,执行过程如下:
[0140]
(1)轮流选择顺、逆序地址对存储器进行读写操作,实现流水调序。流程为:第1帧数据以顺序读入、逆序读出,由于读写共享地址,同时第2帧数据逆序读入;由于第二帧数据逆序读入,只需顺序读出,同时第3帧数据顺序读入。依次反复,可实现流水调序。
[0141]
(2)根据转换长度对地址进行截取。考虑到当m<n/2时,仅需进行n/2点或更小点fft。如m=500时,顺序地址截取为[8:0],逆序地址截取为[9:1];m=50时,顺序地址截取为[5:0],逆序地址截取为[9:4]。
[0142]
随机存取存储器(ram)334,用于缓存1帧完整数据,完成调序。读写地址相同,即数据读出时被新数据覆盖。总空间占1024
×
64bit=8kb。
[0143]
图8为本技术实施例提供的补偿截取模块的结构示意图,补偿截取模块,包括因子乘法器、计算截取器,用于对比特正序fft频域序列进行相位补偿并截取比特正序fft频域序列中非零的部分作为转换长度的fft频域序列。该模块负责对调序后n点fft结果进行相位补偿,并截取至m点。
[0144]
在一个实施例中,补偿截取模块中各单元介绍如下:
[0145]
因子乘法器341,用于完成fft结果与补偿相位的乘法。
[0146]
计数截取器342,根据截取公式对补偿后的x

(k)进行截取,得到x(w)。
[0147]
采用本发明技术方案提出的支持非基2点数输出序列的fft处理器可避免对数据规模的扩大,可成倍地减少缓存和内存开销,压缩系统硬件规模,同时还可以缓减后续信号处理的运算压力。
[0148]
需要说明的是,在此提供的方法不与任何特定计算机、虚拟处理器或者其它设备固有相关。各种通用处理器也可以与基于在此的示教一起使用。根据上面的描述,构造这类处理器所要求的结构是显而易见的。此外,本发明也不针对任何特定的编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明内容,并且上面对特定语言、系统功能模块的调用所做的描述仅仅是为了披露发明的最佳实施方式。
[0149]
在此处所提供的说明书中,说明了大量的具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下完成实现。在一些示例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0150]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要去及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献