定点高动态范围快速傅立叶变换的制作方法

文档序号:15739430发布日期:2018-10-23 22:02阅读:275来源:国知局
定点高动态范围快速傅立叶变换的制作方法

本公开总体上涉及数字信号处理,并且更具体地涉及用于计算定点快速傅立叶变换的算法。



背景技术:

接收器是一种电子设备,其接收例如形式的信号。电磁波(在电磁接收器的情况下)或声波(在声学接收器的情况下)并将接收到的信号转换成电子信号,然后对电子信号进行分析以提取由接收到的信号携带的信息。可以在时域中分析信号的行为(例如信号幅度如何随时间变化)以及频域(即组成信号的不同频率分量),其中傅立叶变换在数学上将这两个域。另外,信号可以分析为连续的波形,或者在数字信号处理(DSP)应用中分析为一组大量的时域点。快速傅立叶变换(FFT)指用于计算以数字形式表示的信号的离散傅立叶变换(DFT)及其倒数(IDFT)的算法。

由于在信号处理应用中普遍使用傅立叶变换,所以已经做出努力以计算方式改善其执行-因此许多FFT方法,例如时间抽取、频率抽取、基-2、基-4、混合基数等。然而,期望实现FFT的进一步改进。



技术实现要素:

本公开的实施方案提供了用于计算定点FFT的机制。这些方法对于雷达和声纳接收器中的应用可能是特别有利的,其中可以使用FFT来确定对象的距离、位置或速度。然而,这些方法不限于这种应用,并且实际上可以用于使用定点FFT的任何应用中,例如,航空、电信、声源定位和分离等。

根据本公开的一个方面,公开用于产生输入信号的FFT的计算机实施的方法。该方法包括:将第一FFT算法应用于输入信号以产生第一FFT,第一FFT包括用索引n索引的N个第一值输出1[n];和将第二多级FFT算法应用于输入信号以产生第二FFT,第二FFT包括用和第一值相同的方式索引的N个第二值输出2[n]。第一FFT算法被配置为缩放第一FFT算法的一个或多个级的输出,使得第一FFT算法的增益为K,而第二FFT算法被配置为缩放第二FFT算法的一个或多个级的输出,使得第二FFT算法的增益为L,其中L小于K。缩放通常用于限制定点FFT的多级输出的增长,以避免FFT输出的饱和。该方法还包括通过基于第一值和第二值重建包括以索引n索引的N个FFT值输出[n]的FFT来产生FFT。通过对于每个索引n,确定第一值输出1[n]和第二值输出2[n]的比较是否满足预定条件,当满足时,确认/指示第一FFT的输出值[n]、第一值输出1[n]不饱和,然后在肯定确定后(即,当确定第一FFT的输出值[n]由于饱和而未削波时),包括所述第一值输出1[n]作为FFT值输出[n],并且在否定确定后(即,当确定第一FFT的输出值[n]由于饱和而削波时),包括基于例如正比于或等于第二值输出2[n]的值作为FFT值输出[n]。由于通过使用第一和第二FFT算法的输出执行重建来计算FFT输出,所以这种方法在本文中被称为重建方法/算法,并且N个值FFT值输出[n]被称为重建值。

在一些实施方案中,第一FFT算法是包括两个或更多个蝶形级的FFT算法,其中第一FFT算法的一个或多个级的输出的缩放包括对于复指数输入信号,缩放每对蝶形级的输出这样的缩放因子,该缩放因子等于第一FFT算法的蝶形级对的增长因子的倒数的两倍。当用于雷达或声纳接收器时,用于雷达或声纳接收器可以处理的任何类型的输入信号,这种缩放可以允许实现在具有可能针对特定输入信号获得的信噪比(SNR)值与成功处理该输入信号所需的SNR值之间的平衡。

在示例性实施方案的本描述中,缩放有时用一个或多个FFT蝶形级的输出乘以某个缩放因子来描述。然而,本领域的普通技术人员将容易认识到,乘法仅仅是一个非限制性示例,因为基本上可以通过其他手段来实现相同的缩放,例如,通过移位或除以与乘法缩放中使用的因子相反的缩放因子。因此,如本文所述通过乘以缩放因子有效执行缩放的所有可能的缩放实现,并且缩放的所有可能的实现方式都有效地减小了缩放FFT输出级的输出,这在本公开的范围内。

本公开的一个方面提供了一种系统,该系统至少包括接收器和被配置为执行在此描述的FFT重建方法的数据处理系统。

在本公开的一些方面中,该系统可以是雷达或声纳系统,例如用于汽车应用或航空领域的雷达或声纳系统。该系统还可以包括雷达或声纳发射机。雷达发射机被配置为发送可以包括频率斜坡的无线电信号,而声纳发射机被配置为发送可以包括频率斜坡的声学信号。雷达接收器被配置为检测包括从对象反射的所发送的无线电信号的至少一部分的无线电信号,并且基于检测到的无线电信号为数据处理系统产生输入信号。声纳接收器被配置为检测包括从对象反射的所发送声纳信号的至少一部分的声纳信号,并且基于检测到的声纳信号为数据处理系统生成输入信号。在这两个系统中,数据处理系统被配置为提供输入信号作为FFT重建算法的输入,并且确定与对象的距离的指示,对象的速度的指示以及基于FFT重建算法的输出来指示对象的位置。

本公开的另一方面提供了一种使用FFT重建算法来提取目标基带信号的系统。该系统至少包括数据处理系统,其被配置为接收输入信号并执行如本文所述的FFT重建算法,其中输入信号包括由一个或多个无线电天线检测的无线电信号或由一个或多个声纳传感器检测的声纳信号。数据处理系统进一步配置为基于FFT重建算法的输出提取基带信号。

根据本公开的其他方面,包括至少接收器和被配置为执行本文描述的FFT重建方法的数据处理系统的系统可以是例如电信系统,用于正交频分复用,用于音频源定位和分离的系统,即用于确定或估计各种声源的空间位置(声源定位)的系统,其可以向环境提供声学贡献和/或区分一个或多个声源对声学环境(声源分离)的贡献,或者接收输入信号并对接收到的信号执行FFT以便得出关于环境的结论的任何其他系统。

如本领域技术人员将认识到的,本公开的各方面,特别是本文描述的FFT重建方法可以以各种方式来体现-例如,作为方法、系统、计算机程序产品或计算机可读存储介质。因此,本公开的各方面可以采取全部硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施例的形式,这些实施例通常可以被称为在此称为“电路”、“模块”或“系统”。在本公开中描述的功能可以被实现为由一个或多个处理单元执行的算法,例如,一台或多台计算机的一个或多个微处理器。在各种实施例中,本文描述的每个方法的不同步骤和步骤的部分可以由不同的处理单元执行。此外,本公开的各方面可以采取体现在一个或多个计算机可读介质(优选地非暂态计算机可读介质)中的计算机程序产品的形式,其具有例如存储在其上的计算机可读程序代码。在各种实施例中,这样的计算机程序可以例如被下载(更新)到现有的设备和系统(例如,到现有的接收器或/和它们的控制器等),或者在制造这些设备时被存储并且系统。

根据以下描述和权利要求,本公开的其他特征和优点是显而易见的。

附图说明

图1A和1B示出了示例性蝶形运算;

图2示出了根据本公开的一个实施方案的示例性6-级基-2FFT算法的缩放;

图3示出了根据本公开的另一实施方案的示例性6-级基-2FFT算法的缩放;

图4提供了根据本公开的一个实施方案的FFT重建方法的示意图,该方法用于基于具有不同增益值的两个FFT算法产生输入信号的FFT输出;

图5示出了根据本公开的一些实施方案的说明输入信号的实部和虚部的曲线图;

图6示出了根据本公开的一些实施方案的如图4所示的输入波形的256点FFT的模拟结果的曲线图,叠加在用于相同输入波形的理想FFT模型的结果上;

图7示出了根据本公开的一些实施方案的对于使用本文所述的FFT重建方法产生的FFT输出的模拟结果的曲线图,其针对如图4所示的输入波形叠加在相同输入波形的理想FFT模型的结果上;

图8示出了根据本公开的一些实施方案的如图5所示的输入信号的实部和虚部的曲线图,但其幅度比图5的输入信号的振幅大2倍;

图9示出了根据本公开的一些实施方案的说明用于输入波形的256点FFT的模拟结果的曲线图,如图8所示,叠加在用于相同输入波形的理想FFT模型的结果上;

图10示出了根据本公开的一些实施方案的说明用于使用本文所述的FFT重建方法生成的FFT输出的模拟结果的曲线图,用于如图8所示的输入波形,叠加在用于相同输入波形的理想FFT模型的结果上;

图11图示了根据本公开的一些实施方案的利用FFT重建算法的方法的示例性流程图;

图12描绘了示出根据本公开的一些实施方案的示例性数据处理系统的框图;

图13示出了根据本公开的一些实施方案配置为实现FFT重建算法的示例性无线电或声纳接收器的系统视图。

具体实施方式

FFT基础和在雷达和声纳应用中使用FFT的例子

如前所述,FFT是指用于计算离散傅里叶变换的算法和以数字形式表示的信号的离散傅里叶逆变换。

FFT是可以应用于所采集的信号的变换函数的示例,由此将所获取的信号(可能在变换之前处理,例如通过将所采集的波形与窗函数相乘)从时域变换到频域。结果,获得所获取信号的一部分的频率分解。举例说明在分析采集信号中使用FFT的情况,下面在例如雷达(即电磁)或声纳信号的上下文中提供。然而,这里描述的FFT重建技术同样适用于在任何其他设置中使用的任何其他FFT以及任何其他类型的接收信号,例如,适用于电信中使用的FFT或用于声源定位和分离的FFT。

雷达和声纳系统的功能如下。首先,雷达/声纳发射机输出一个信号,其回波将被评估以定位一个对象。通常情况下,发射机会周期性地输出一个信号。由发射机发射的信号通常是啁啾(chirp)信号。众所周知,啁啾信号是频率随时间增加或减小的信号,前者通常称为“上啁啾”,后者通常称为“下啁啾”。有时与术语“啁啾”互换使用的其他术语是“频率斜坡”、“频率扫描”或“扫描信号”。在雷达系统的情况下,所使用的信号是无线电范围内的电磁信号。在声纳系统的情况下,使用的信号是声学信号。

发射的信号从对象反射,并且雷达/声纳接收器使用适当的传感器获取反射的,即回波的信号。在雷达系统的情况下,适当的传感器包括至少一个但通常是多个无线电天线。在声纳系统的情况下,适当的传感器包括至少一个但通常是多个声传感器。

雷达/声纳接收器将采集到的反射信号转换为电输入信号提供给雷达/声纳系统的数据处理单元。数据处理单元然后对输入信号执行一系列操作,这些操作涉及一个或多个FFT算法的多个应用。

如果发射机发射的信号是啁啾信号,则反射信号也是啁啾信号。由于对象距发射机一定距离,接收到的线性调频脉冲信号相对于发送的线性调频脉冲信号是相移的。发射信号与接收到的反射信号之间的相位差与传输信号到达对象所花费的时间以及反射信号返回所花费的时间直接成正比,而反射信号又与到对象的距离成正比。因此,相位差表示到对象的距离。因为发射的信号是啁啾声,所以发射和反射的啁啾声之间的相位差本身表现为FFT输出中的相位差,这是由于如本文所述应用FFT算法而产生的。因此,将FFT算法应用于接收的啁啾信号允许估计到对象的距离。另外,将FFT算法应用于所接收的线性调频脉冲信号还可以允许估计其他特性,例如,移动对象的速度、对象的移动方向、和/或对象相对于发射机和/或接收器的位置。

下面描述使用FFT算法处理检测到的雷达信号的一种方法。然而,本领域普通技术人员也知道其他方式,所有这些方式都在本公开的范围内。

雷达接收器使用雷达天线检测从对象反射的信号,并创建数据矩形,其中每行是接收信号的样本序列,下一行是下一个样本序列,所有序列一起构成一个斜坡。然后对每行样本执行水平(加窗)FFT。然后对水平FFT的结果执行垂直加窗FFT,并且从对象反射并由雷达接收器检测的信号在垂直加窗FFT的结果的幅度中显示为“峰值”。用于雷达接收器的特定输入天线的垂直窗口FFT的结果通常被布置成二维阵列,其中一维(通常为阵列的水平轴)指示频率,而另一维度通常是垂直轴该数组索引对象的速度。当发送的信号是啁啾声时,这样的阵列中的峰值的频率分量,即如在横轴上所指示的峰值出现的频率的值,通过指示在发送信号之间的相位差而用作时间戳如上所述,反射的啁啾与该对象的距离成正比。因此,阵列的水平轴通常被描述为对象的索引距离或范围。

用变量f表示频率并用变量v表示速度意味着FFT阵列的每个元素用某对值(f,v)索引,其中f的值(即,数组中元素的水平位置)表示对象的位置,v的值(即数组内的元素的垂直位置)表示对象的速度。这种阵列的每个元素包括从垂直FFT的应用结果导出的值,并表示针对给定频率和速度值对的采集信号的幅度。声纳系统完成了类似的处理。

在除了雷达和声纳应用以外的应用中,应用FFT算法的结果也可以如上所述布置成二维阵列,但是代替速度,其他感兴趣的参数可以被索引,例如倍数。通常,应用FFT算法的结果可以排列成任何适当索引的维度的阵列,例如,一维数组或多维数组或张量。

作为数值阵列呈现的计算FFT的每个元素通常被称为“频率仓”或简称为“仓”,术语“仓”表示这样的一个阵列可被认为包括多个仓的事实,其中所采集的信号的能量被分布到该仓中。在各种实施例中,箱可以包含复数值或实数值。例如,实数值可以用复数值的正实数X(f)来表示,数X表示所采集信号的各种频率分量f的幅值,例如,作为实际幅度、平方幅度、或幅度的压缩变换,例如平方根或对数。在其他示例中,实数值可以用复数值的正或负实数X(f)来表示,数量X表示采集信号的各种频率分量f的相位。

频率仓在各种接收器所采用的FFT算法的上下文中发挥作用,其中将特定感兴趣信号与接收器获得的总信号分离,例如,从感兴趣的特定对象反射的雷达或声纳信号的分离或由特定的感兴趣的声源产生的声学信号与包含来自各种声源的贡献的获取的声学信号的分离,可以通过识别哪些仓对应于感兴趣的信号和/或通过识别哪个仓可以是活动的来实现。为此,评估箱以确定它们是否包含满足一个或多个预定义标准的值。例如,一个标准可以包括将箱的值与特定阈值进行比较以确定箱是否可以被分类为包含指示所采集的信号的相对大量的能量集中在该箱中的“峰”。可以执行各种算法以便确定在何处设置水平阈值以指示每个区间中存在或不存在峰值,所有这些算法都在本公开的范围内。

实际上,通常为每个输入天线生成如上所述的二维值阵列,并且接收器通常包含多于一个天线,从而使阵列成为三维阵列,第三维度对不同的天线进行索引。对这样的三维阵列的每个天线矩形切片执行上述处理,可能之后是天线的波束形成。

许多不同的已知FFT方法的共同之处在于它们通过将表示信号的数字点分成子集(在称为“抽取”的过程中),计算每个子集的DFT,然后处理每个子集的DFT结果以产生由一组频域点组成的最终结果。换言之,这种FFT方法将DFT计算分解成阶段,其中每个阶段计算较小的DFT,然后使用某种结构来组合不同阶段的计算结果。

FFT的大部分计算工作都在于子集的处理。处理发生在一系列阶段中,其中子集首先被处理成中间结果,中间结果被进一步处理,等等,直到产生最终的频域点集。每个阶段包括多个并行操作,每个并行操作同时处理r个输入点以产生r个输出点-r的值被称为FFT算法的“基数”。因为基-2的数据流图(即,具有r=2的基数)操作类似于蝶形(如图1A所示,其中输入点x0、x1根据方程y0=x0+t*x1和y1=x0-t*x1处理成输出点y0、y1),“t”被称为“旋转因子”,这些操作被称为“蝴蝶操作”或简称为“蝴蝶”。具有其他基音的操作也称为蝴蝶操作(例如图1B中所示的基-4操作,其中r等于四)。

浮点与定点表示

包含应用FFT结果的数组内的值可以表示为定点数或浮点数。

正如在计算环境中众所周知的那样,定点号具有为整数部分保留的特定数量的比特或数字(即,小数点左边的数字的一部分)以及为小数部分保留的特定数量的位(即小数点右边的部分数字)。无论数字有多大或多少,它总是会为每个部分使用相同数量的比特。例如,如果定点格式为十进制IIIII.FFFFF,那么可以表示的最大正数如果是无符号则为二进制11111.11111=31.96875,如果有符号则为01111.11111=15.96875,最小正数为二进制00000.00001=0.03125。这种表示要求处理这些数字的处理器知道小数点的位置。在下文中,有时使用十进制表示来描述“比特”,其本身是二进制表示,然而,基于本文提供的描述,本领域普通技术人员将容易地认识到哪个是哪个。

众所周知,浮点数不保留整数部分或小数部分的特定位数。相反,它为该数字(称为“尾数”或“有效数”)保留了一定数量的比特,并且保留了一定数量的比特以指示在该数字内小数位的位置(称为“指数”)。因此,为了简单起见,考虑到无符号浮点数,考虑到为简单起见,使用10位数字表示并且为指数保留2位的浮点数可表示最大值9.9999999e+50和最小值0.0000001e-49。对于带符号的浮点数,最小值为-9.9999999e+50。

有时,查看相同宽度的数字,整数表示可能比浮点表示更准确,因为尾数本身会丢失一些位到指数。但是,算法的动态范围越高,浮点与定点越好。一般来说,浮点表示可以提供更高的准确性,因为用固定数量的数字可以表示不同数量级的数量。另一方面,定点处理实现通常与较低成本和功耗相关联,因为定点表示可以使用由软件实现控制的整数硬件操作,所述软件实现规定关于二进制或小数点位置的特定约定,例如6位或右边的数字。操纵这些表示的硬件比浮点更便宜,并且它也可以用来执行正常的整数操作。因此,使用定点FFT通常是有利的。然而,并不总是可以使用定点FFT,因为很难充分控制它们的阶段增长,这将在下一节中更详细地描述。

定点FFT的级成长

作为执行该阶段的计算的结果,来自FFT算法的每个连续阶段的输出信号可以大于提供给该阶段的输入信号。输入信号在每个阶段中可能增长的因素根据输入信号的类型而不同。例如,delta函数输入信号根本不会经历任何增长,实质上是随机输入信号(即输入信号包含许多不同的频率,因此从其频率表示的角度来看是“随机的”)可以每基-2级可以增长一个因子sqrt(2)(或其他基-2级的因子),而一个基本复杂的指数,例如正弦、输入信号(即单频信号)可以每基-2级增长2倍。

众所周知,计算机通常实现二进制乘法器,即乘法是通过表示基数2形式的数字来执行的,其中任何两个数的乘法都减少到只是移位和加比特。在这样的实现中,值的增长(增益)乘以2或者该值减小2倍意味着在正确的方向上移位一位。例如,从值3(二进制表示中的“11”)到值6(二进制表示中的“110”)增长2倍表示为将“11”(即,值3)左移一位,到达110(即,值6)。类似地,例如从6的值缩小到2的因子2被表示为将“110”右移一位,以到达“011”。因此,增长2倍可以被描述为增长1比特,4倍的增长可以被描述为增长2比特,依此类推。因此,对于随机信号输入,每个基-2级(或每隔2个基因的2个因子)的sqrt(2)系数的增长可以看作每个基-2级的1比特增长或每基-2级0.5比特的增长,而每个基-2级的生长因子2为复指数,例如正弦,输入信号可被视为每基-2级增长1位。因此,对于一个复指数类型的输入,对于一个delta函数输入,FFT输出可以从多达1位(或更多)的每基-2级增长到少至根本没有增长。然而,平均而言,增长为每基-2级0.5位,与随机输入信号的情况一样。

每个阶段的FFT输出的增长是定点FFT的一个众所周知的问题,其中,如前所述,无论要表示的数字有多大或多小,它只能对每个整数和小数部分使用相同的预定义位数。但是每个阶段的增长可能导致溢出,即计算产生的结果大于预定义的定点实现可以存储或表示的结果的情况。在溢出的情况下,给定的存储器元件存储或表示它可以存储或表示的最大值,称为“饱和”的条件。换句话说,计算结果是削波到最大值。

由于溢出导致无法正确表示计算结果,通常,定点FFT算法试图避免或显着限制溢出。避免溢出的一种方法是在FFT算法的一些或所有阶段之后应用缩放,这可以以不同方式完成,下面描述了其中的一些示例。

缩放FFT输出:例子#1(“低”增益)

一种稳健的缩放方法涉及将每个基-2级的输出缩小1比特。图2中示出了6-级64-点FFT的示例,其中表示为“>>1”的每个框表示右移1位。如前所述,右移1位意味着按比例缩小2倍(即将信号乘以1/2)。

如图2所示的缩放允许避免在实践中可能遇到的大多数输入信号的溢出,因为单个阶段中的比特增长可能超过1比特但是这是非常罕见的,例如对于某些复指数输入信号,每个位的位增长可超过1位,其中乘以指数旋转因子“旋转”输入指数,这可以将其实部或虚部元素增加一个因子sqrt(2),然后加法几乎加倍。避免大部分潜在输入信号的溢出是可取的,但它的代价是:由于平均增长率仅为每基-2级0.5位,所以对于平均输入信号,这种类型的缩放无用地丢失了一些比特的分辨率。对于图2中示出的具有6级的情况,可能不必要地丢失三个比特(即,6级每个阶段0.5个比特),从而影响定点FFT的商业可行性。

缩放FFT输出:例子#2(“高”增益)

在各种应用中,比以上例子#1中描述的缩小技术更不积极的缩放技术可能是合适的,即技术不会为平均输入损失很多比特。在共同未决的美国专利申请14/875,281,“Scaling Fixed-Point Fast Fourier Transforms in Radar and Sonar Applications”中描述了一种这样的缩放,于2015年10月5日提交,其全部内容通过引用并入本文,可能包括缩放,例如乘法,定点FFT的每对连续蝶形级的输出,其缩写因子等于该FFT对的一对连续蝶形级的增长因子的倒数的两倍,用于纯粹复指数输入信号的FFT算法并且不采取进一步的措施防止溢出。换句话说,每个其他基-2级的输出可以按比例缩小2(即输出实际上乘以1/2),如图3所示,相当于每隔一个基-2级缩放1比特或每个基-2级缩放0.5比特。在使用基-4级的情况下,这样的缩放将涉及每个基-4级的输出被缩小2(图中未示出),这实际上与每隔一个基-2级缩小2相同。

如上所述,这种输入信号可以适用于基本上随机的输入信号,因为如上所述,这种输入信号在基-2级的每一对上增长2倍(或者对于每个基-4级,增加2倍)。用于在诸如正交频分复用(OFDM)等多载波系统中编码数据的宽带信号可以被认为是这样的高度随机信号,并且该缩放可以用于这样的信号。

如在共同未决的美国专利申请14/875,281中所描述的,这样的缩放也可以用于其中核心清洁信号是复指数或正弦曲线的实现中,其可以被宽带噪声降级,随着噪声的增加,所需精度也随之增加,例如雷达和声纳应用就是这种情况。如在共同未决的美国专利申请14/875,281中所描述的,在这样的实现中,除了缩放之外,输入信号可以被饱和地溢出,只要当溢出发生时,信号在其最大或最小水平饱和,而不是让它们“环绕”。温和饱和相当于向信号添加一些噪声,而完全环绕会使信号降低最大可能值。

提供给雷达/声纳接收器的数据处理系统的FFT算法的随机输入信号意味着接收到的信号非常嘈杂(因为核心信号应该是基带)。对于基-2FFT,高度随机的输入信号在每个阶段增长因子sqrt(2)。因此,信号每隔一个基-2级增长2倍(即sqrt(2)xsqrt(2))。随着这种增长,每隔一个基-2级将信号缩放2倍通常不会导致溢出,因为这样的缩放将为增长提供足够的补偿。如前所述,溢出导致计算结果不能被正确表示,这降低了接收到的信号。没有溢出意味着接收信号不会因为溢出而增加噪声,从而与保守的、更低增益的传统扩展每个阶段的方法相比,增加了SNR,这正是成功处理高度随机的信号所需要的。

提供给雷达/声纳接收器的FFT算法的纯粹复指数输入信号(即包括单个频率的信号)意味着接收到的信号非常干净且无噪音。对于基-2FFT,纯复指数输入信号每基-2级增长2倍。因此,信号每隔一个基-2级增长4倍(即2×2)。随着这种增长,每隔一个基-2级将信号按比例缩放2倍可能会导致饱和溢出,因为它不会补偿每隔一个基-2级的增长4,从而增加噪声并降低信噪比。然而,这种降低的SNR在某些应用中仍然可以接受。例如,在雷达/声纳接收器中,只需要确定峰值的存在和位置,而不是确切的大小,因为由于接收到的反射信号非常干净且无噪音,所以高SNR不需要识别FFT输出中的峰值。

输入信号位于纯复指数波形和高度随机信号之间,意味着接收到的信号不够干净,没有噪声,但会因宽带噪声而降低。这种信号越接近随机信号,噪声越大。对于基-2FFT,这种输入信号的增长将是每基-2级增长一个介于sqrt(2)和2之间的因子。因此,信号每基-2级增长2至4倍。上面概述的更高增益缩放旨在实现由于饱和溢出引起的噪声量与输入信号的清洁度之间的平衡,后者,反过来,规定接收器成功处理这种接收信号所需的SNR:

接收的信号不是纯复指数但包括相对较小的噪声(即信号只有相对较小的随机信号贡献),每基-2级的增长因子将接近2而不是sqrt(2),因此,可能会因饱和而溢出,导致增加更多的噪声(即降低SNR),这是可接受的,因为这样的信号开始时相对干净并且因此不需要高SNR被成功处理,

接收到的信号不是纯随机的,而是包括相对较大的噪声分量(即具有相对较大的随机信号贡献的信号)将具有每基-2级的增长因子接近sqrt(2)而不是2,因此,不太可能通过饱和溢出导致更少的噪声被添加(即增加的SNR),这是有利的,因为这样的信号需要成功地处理增加的SNR。

对于基-4FFT算法,每个基-4阶段的增长对于纯复指数输入信号是4倍,对于随机输入信号是2倍。因此,对于基-4FFT的相应缩放将缩放两倍于基-2,如上所述。

由于按比例缩小降低了FFT算法的总增益,即FFT输入增加的因子,特定缩放越大,采用这种缩放的FFT算法的增益越低。因此,当与图3中所示的FFT相比时,如图2所示的FFT可以被认为是“低增益”FFT(更大的缩放),然后其将被认为是“高增益”FFT。

更高增益与更低增益FFT

如上所述,具有较高增益的FFT和具有较低增益的FFT各自具有它们的优点和符号。更低增益FFT可以充分地补偿阶段增长(即避免饱和),但代价是丢失分辨率。在某些情况下,更高增益FFT可以节省分辨率,但在其他情况下可能无法充分补偿阶段增长,从而导致饱和。可以通过将输入信号调节到FFT来限制幅度来避免饱和,但是这会降低FFT可以操作的输入信号的动态范围,从而导致具有有限动态范围的FFT。

FFT重建:具有高动态范围的FFT计算

本公开的实施方案提供了一种改进的技术,在此称为FFT重建技术,用于产生定点FFT。该技术包括向两个或更多个定点FFT算法提供输入信号,其应用不同量的缩放以限制其输出的增长,导致每个FFT算法产生以不同增益为特征的FFT输出值阵列。该技术还包括基于FFT输出的每个值(即,基于每个FFT_输出_value)确定:由于饱和,具有相对高增益的FFT算法的输出值是否是削波。如果不是,那么该FFT算法的输出值(即,具有相对高增益的FFT算法)包括在最终的FFT中。否则,具有较低增益的FFT算法的输出值包括在最终FFT中,该值被适当地缩放以匹配最终FFT的其他阵列元素中包含的值。通过将具有不同增益的至少两个FFT算法的FFT值组合来重建最终FFT允许从较高和较低增益FFT的优点中受益,同时避免或最小化它们的缺点。

图4提供了根据本公开的一个实施方案的FFT重建方法400的示意图,该方法用于基于具有不同增益值的两个FFT算法为输入信号402生成重建的FFT输出462。包括至少处理器和存储器的任何数据处理系统可以被配置为实现方法400或本文描述的其他实施例的处理。示例性数据处理系统示于图12。

如图4所示,方法400可以以将输入信号402提供给第一FFT算法410和第二FFT算法420开始。第一和第二FFT算法使得一个具有比另一个更高的增益。图4的示例示出了第一FFT算法410可以具有高于第二算法410的增益L的增益K,这意味着要正确地表示(即由于饱和而没有削波到最大值),第一FFT算法的FFT输出可能需要比第二FFT算法的FFT输出更多的比特。换句话说,第二FFT算法420是应用比第一FFT算法410更积极的缩放的算法。在一些实施方案中,第一FFT算法410可以是如上所述的示例#2的“高”增益算法,第二FFT算法420可以是上述示例#1的“低”增益算法。然而,通常,FFT算法410和420可以包括任何定点FFT算法和应用的任何缩放方式,以分别通过更高和更低的增益来限制其输出的增长。

在一些实施方案中,第一和第二FFT算法可以包括相同数量和类型的阶段。例如,两者都可以包括六个基-2蝶形级,第一和第二FFT算法在应用于它们的一个或多个阶段的缩放类型方面是不同的。然而,在其他实施例中,第一和第二FFT算法可以在它们中的每一个中使用的级的数量和/或类型不同,只要它们仍然以它们各自的增益K和L为特征并且产生可比较的输出。例如,一个FFT算法可以包括6个阶段,而另一个FFT算法可以包括8个阶段,和/或一个FFT算法可以包括基-2级,而另一个可以包括基础-4级。

第一和第二FFT算法也可能在第一次应用缩放的阶段不同。通常,可以配置第一和第二FFT算法,以便在可能饱和的第一阶段之后对于预期的输入信号应用缩放。

在一些实施方案中,可以基于输入净空来选择增益因子K和L中的每一个,即,用于表示第一FFT算法和第二FFT算法中的每一个的输出的多个位之间的差异以及用于表示输入信号的多个位。例如,考虑到用于表示输入信号的比特数是12,例如因为在第一和第二FFT算法之前的模数转换器(ADC)(图中未示出)并且向其提供12位ADC的输入信号。进一步考虑第一和第二FFT算法都是16位算法,即使它们可以使用16位定点表示来呈现它们的输出。在这种情况下,对于每个FFT算法,输入净空是4比特,并且算法可以被设计为应用缩放,其导致它们的增益K和L与输入净空的特定关系。例如,第一FFT算法410可以应用这样的缩放,使得它导致增益K等于输入净空与N的平方根的比率,而第二FFT算法420可以应用这样的缩放,其导致增益K等于输入净空与N的比率,其中N是每个算法的FFT输出中的元素数。

在一些实施方案中,第一和第二FFT算法中的每一个可包括对输入信号402的数据样本行应用相应的水平加窗FFT算法,然后在水平加窗FFT算法的输出上应用相应的垂直加窗FFT算法。

通常,将第一和第二FFT算法中的每一个应用于输入信号的I个样本导致相应的FFT输出是包括用索引n索引的N个值的产生,例如n可以是[1:N]范围内的整数,然而,可以使用任何类型的索引,包括在FFT输出被呈现为值的多维阵列或张量的情况下的多维索引。用于计算FFT的输入信号的样本数I可以但不必等于FFT输出中的值的数量N。

第一FFT的N个输出值(即,在输入信号402上应用第一FFT算法410的结果),在图4中表示为N第一FFT值输出1[n]412,并且第二FFT的N输出值(即,在输入信号402上应用第二FFT算法420的结果),在图4中表示为N第二FFT值输出2[n]422被提供给每值处理块460。

每值处理460被配置为通过在每FFT输出值的基础上比较和选择来构造最终FFT输出462(即对于用特定索引n索引的每个输出值,对于所有N个不同索引进行索引),由于饱和而没有削波的最高增益的FFT输出的值。为此,每值处理460包括比较和选择430,其中,对于索引n的特定值,比较由第一FFT 412的索引n索引的FFT输出值和由第二FFT 422的索引n索引的FFT输出值,以确定它们的关系是否满足某个预定条件,该条件表明更高增益FFT算法的FFT输出值在任何阶段都不是削波。用于进行这种确定的各种方式在下面的“削波检测”部分中描述。

在肯定确定后,即当确定第一FFT输出值输出1[n]不是削波时,该值被加到最终FFT输出462中,该值被添加到用索引n索引的最终FFT内的最终FFT输出462,如图4中方框440所示。在否定确定后,即当确定第一FFT输出值输出1[n]是削波时,基于第二FFT输出值输出2[n]的值计算的值被添加到用索引n索引的最终FFT内的最终FFT输出462处,如图4中方框450所示。对N个值中的每一个执行每值处理460。对第一和第二算法410和420的FFT输出的N个值中的每一个执行每值处理460将导致填充保持最终FFT输出462的值的N个位置。

通常,实现第一和第二FFT算法的数据处理系统将被设计成使得第一FFT值输出1[n]中的至少一些,优选大多数在第一FFT算法410的任何阶段都不削波,在这种情况下,这些FFT值将被加到最终的FFT输出462。如果它们中的一些是削波,则需要缩放第二FFT 422的相应值,以便它们可与最终FFT输出462的其他值相比。当第一FFT算法410的增益为K并且第二FFT算法420的增益为L时,并且假设用索引n索引的第二FFT422的输出值不是削波(即输出2[n]不是c削波),则第一FFT 412的相应输出值,输出1[n]可以通过将值输出2[n]乘以K/L来计算,如图4的框450中所示。然后,在第一FFT值输出1[n]是削波的情况下,可以将这样的值添加到最终FFT输出462,作为用索引n索引的FFT元素。

基于本文提供的讨论,本领域普通技术人员将能够容易地将图4中提供的图示扩展到采用具有不同增益的两个以上FFT算法的实现,所有这些都在本公开的范围内。这样的实现可以允许在实现最终FFT输出的最高动态范围方面具有更大的灵活性。例如,对于具有三个FFT算法的场景,将最高增益FFT算法的输出值[n]与来自其他FFT算法的相同索引的一个或多个输出值进行比较,以确定它是否是削波。如果是,则对下一个最高增益FFT算法的输出值[n]进行类似的确定,依此类推,直到确定该值不是削波。然后通过获取最高增益FFT算法的一个或多个输出值(其不是削波)并且通过基于来自下一个最高增益FFT算法的相应输出值计算其余值,这些输出值不是削波,适当缩放以解释不同FFT算法的增益差异,其输出值在重建中使用。

例如,考虑到,在类似于图4的方法400的FFT重建方法中,实现了具有增益G1、G2和G3的三个FFT算法,其中G1>G2>G3(即第一FFT算法具有最高增益G1,第三FFT算法具有最低增益G2)。然后考虑,例如索引n=1,FFT输出值与第一算法的索引[1]输出1[1]由于饱和而被确定为削波,FFT输出值与第二算法的索引[1]输出2[1]也是如此。可以假设系统被设计成使得第三算法输出3[1]的相应FFT输出值不是削波。在这种情况下,该值将用于计算最终FFT输出的索引[1]的输出值。但首先必须确定三个FFT算法中的哪一个是具有最高增益的那个,并且导致一个或多个FFT输出值不是削波。考虑一下,例如索引n=2,具有第一算法的索引[2]的FFT输出值输出1[2]被确定为不是削波。这意味着该FFT算法的值将用作最终FFT输出中的相应值,即最终FFT输出输出[2]=输出1[2]中的值。这也意味着需要缩放放置在最终FFT输出中的所有其他值以说明与增益G1的差异。继续索引n=1的示例,这意味着最终FFT输出输出[1]中的值可以基于第三FFT算法的相应FFT值输出3[1](没有削波的最高增益)来计算输出[1]=G1/G3*输出3[1]。考虑另一个例子,例如索引n=3,其中具有第一算法的索引[3]的FFT输出值输出1[3]可以被确定为削波,但FFT输出值具有第二算法的索引[3],输出2[3]不是,第三算法的相应FFT值,输出[3]将被确定为输出[3]=G1/G2*输出2[3],依此类推。

将输入信号提供给以不同增益为特征的多个FFT算法,允许实现计算重建的FFT输出的更高动态范围,如果仅使用具有特定增益和特定动态范围的单个FFT算法则该输出是可能的。换句话说,使用两个或更多个FFT算法,每个FFT算法具有一定的动态范围以重建如本文所述的FFT输出,有效地增加了最终FFT输出的动态范围。

接下来,在每值处理块460期间,用于检测FFT算法之一的FFT输出的特定值[n]是否是削波值的各种方式。

削波的检测

在最简单的实现中,可以修改上述方法以通过简单地将最高增益FFT算法的输出的值[n]与特定阈值进行比较来操作,但是可以但不必专门为该索引选择n,用于确定该FFT算法的输出值[n]是否可能是削波。虽然这样的实现在计算上是简单的,但是它可能具有如下缺点:如果FFT输出在FFT算法的中间阶段之一中饱和,则饱和结果可能影响多个输出点,并且它们都不必大,错误地提供没有发生削波的指示。

因此,在优选实施例中,削波的检测基于与一个或多个其他FFT算法的相应输出值的比较。假设在如上所述的改进的FFT计算方法中使用的多个FFT算法的至少一个FFT算法的输出的值[n]不是削波,对于精心设计的FFT数据处理系统,这是一个合理的假设,可以将一个或多个其他更高增益、FFT算法的相应输出值[n]与该值进行比较,以确定它们是否是削波。比较可以以许多方式实现,这些方式基于以下认识:具有例如增益K的更高增益FFT算法的每个非饱和点的输出值应该等于或合理地接近K/L乘以更低增益FFT算法的对应点的值,其中增益L不是削波。下面描述执行这种比较的一些示例实施例。基于该描述,本领域普通技术人员将能够设想其他比较方法,所有这些方法都在本公开的范围内。

继续实现如图4所示的两个FFT算法的示例,在一个实施例中,第一值输出1[n](即更高增益FFT算法的索引[n]的输出)和第二值输出2[n]的比较满足条件表明第一值输出1[n]不是削波可以包括将所述第二值输出2[n]乘以K/L,从乘法结果中减去第一值输出1[n],然后评估结果以确定减法的结果是否在包括至少零值的预定义范围内。在各种实施例中,在这种情况下,预定义范围可以是以零为中心的特定范围的值,可以仅包括一个零值,或者可以是不以零为中心的值的范围,例如从某个负值到某个正值,其中负值和正值的绝对值不同。优选地,该范围的定义方式是,当该值实际上不是削波时,减少错误地断定第一值输出1[n](即更高增益FFT算法的索引[n]的输出)是削波的概率。

例如,考虑将(输出1[n]-K/L*输出2[n])的绝对值与某个阈值T1(即,范围为[-T1;T1])进行比较。使范围“太紧”(即,T1太小)可导致选择第二FFT算法420,即使第一个410不饱和,因此否定了本文所述的改进方法的值。使范围太“松散”(即T1太大)可能导致选择第一FFT算法410,即使它已经饱和。通常,该范围不应低于第二(即,更低增益)FFT算法的最差情况精度,其中FFT算法的“精度”指的是将特定定点FFT算法的输出与具有无限精度的理想计算进行比较。例如,阈值可以选择为该精度的两倍,例如为2*sqrt(N)/(输入净空)。因此,在一个实施例中,比较可以如下:abs(输出1[n]-(K/L)*输出2[n])<2*sqrt(N)/(输入净空)。

如上所述的乘法和减法测试可以有效地以多种方式执行,所有这些都在本公开的范围内。例如,可以通过计算((K/L)*输出2[n]-输出1[n])并且将结果与包括至少零值的某个第一范围进行比较来完全如上所述地执行。或者,可以通过计算(输出1[n]-(K/L)*输出2[n])并将结果与包括至少零值的某个第二范围进行比较来执行,该范围可以不同于第一范围,或者可以通过计算这些减法中的任何一个的绝对值并将结果与某个阈值进行比较来执行。

应当注意,FFT增益K和L通常可以以2的形式呈现,即K/L等于2M,其中M是整数。在这种情况下,可以使用固定值移位器(可以在硬件中实现,无需具有相应的软件逻辑)来实现乘以K/L,以将M位的左移应用于第二值输出2[N]。

在另外实施方案中,再次继续实施如图4所示的两个FFT算法的例子,第一值输出1[n](即更高增益FFT算法的索引[n]的输出)和第二值输出2[n]的比较满足表示第一值输出1[n]不是削波的条件可以包括将第一输出1[n]除以第二值输出2[n],并且确定划分的结果是否在包括至少K/L值的预定义范围内。基于上面提供的关于范围的考虑,本领域普通技术人员将能够得出在这种情况下选择适当范围的考虑因素。

在数据处理系统包括一个或多个能够将值从笛卡尔域转换到对数域的对数电路的情况下,以及可能的一个或多个能够进行反向转换的指数电路,可以使用执行比较的其他实施例。这个实施例基于这样的认识,即一些处理器配置有用于计算对数和指数的指令,例如使用log2和exp2指令,其用于当表示0到1之间的数字时可以使用更大的动态范围。计算对数和指数的处理器指令在下文分别称为“对数电路”和“表示电路”。该实施例进一步基于这样的认识:通过使用现有的log和exp电路,可以扩展现有log和exp电路的使用以计算某些其他功能,以从笛卡尔变为对数域,反之亦然,并且执行对数域中函数的实际计算,因为这样做可能比在笛卡尔域中执行计算更容易计算。例如,在处理器不具有乘法或除法指令的情况下,这样的方法对于诸如除法和乘法之类的函数可能是有用的,因为笛卡尔域中的乘法和除法转换为对数域中的简单加法和减法,如以下等式所示:

(xy)=expb(logb(x)+logb(y)) (1)

(x/y)=expb(logb(x)-logb(y)) (2)

根据该方法,在一个实施例中,确定所述第一值输出1[n]和所述第二值输出2[n]的比较是否满足条件可以包括计算第一值输出1[n]的对数,计算第二值输出2[n]的对数,从第一值输出1[n]的对数中减去第二值输出2[n]的对数,并且确定减法的结果是否在包括log(K/L)的至少一个值的预定范围内,该预测值可以被预先计算并存储以供参考。在这样的实施例中,在日志域中执行比较。然而,在其他实施例中,可以通过首先计算减法结果的指数来在笛卡尔域中执行比较,然后确定指数是否在包括至少K/L的值的预定对应范围内。在所有这些实施例中,再次,本领域普通技术人员将能够基于上面提供的关于范围的考虑来推导出在这种情况下选择适当范围的考虑因素。

模拟结果

图5-10为配置为+32,767或-32,768的饱和值的示例性带符号定点16位整数FFT提供模拟结果。32,767的值在下文中称为“32K”,它是可以由本例的定点FFT实现表示的最大值,因为这是有符号的16位整数的最大可能值(32,767=215-1)。换句话说,饱和的16位整数,而不是环绕,意味着32,767=0x7FFF为正饱和,-32,768=0x8000为负饱和。

图5示出了曲线图500,其示出了包括一些噪声的示例性输入信号的实部和虚部。在图5中,曲线502表示这种噪声复杂的输入波形的实部,而曲线504表示虚部。

如图5所示,波形幅度约为14K,即FFT的总有符号16位动态范围的近一半。刚刚完成16位,每基-2级使用0.5位进行缩放,FFT算法将显着饱和。图6示出了曲线图600,其示出了如图4中的输入波形的256点FFT的模拟结果,并且对于每个基-2级实现0.5比特的缩放,显示为具有FFT峰602的曲线,与FFT峰604一起叠加在理想的FFT模型上(即,对于相同的输入波形计算FFT的结果,但是当不存在由于饱和引起的削波时)。在这个仿真中,理想模型的计算结果保持在16位,但FFT数学中的数据位数为32位,以确保由于位增长而不会降低精度。

注意,即使具有如图5所示的这种高电平输入,应用FFT算法的FFT结果也是合适的,因为峰值602可清楚地区分。然而,在基本箱处发生显着的削波,如峰值602明显小于理想FFT的峰值604所示,这是可以理解的,因为峰值602在32K的最大值处饱和的非想法FFT。其他箱也出现了一些削波,但在图6中不太明显。相反,图7示出了示出根据本公开的实施例计算的重建的FFT输出的曲线图700,其中使用了更高增益和更低增益的FFT(上面针对更低增益描述的示例#1,上面针对更高增益描述的示例#2),也叠加在图5的输入波形的理想FFT模型上。在这种情况下,根本没有观察到明显的失配,根据本公开的实施例计算的FFT输出的曲线看起来与想法FFT的曲线基本相同,如具有峰值702的单个曲线图所示。

图8示出了与图5中相同的输入信号,但幅度加倍。请注意,图8的输入信号几乎处于其可用的全部动态范围内。在图8中,曲线802表示这种噪声复杂输入波形的实部,而曲线804表示虚部。

图9显示了根据本公开的一些实施方案的一个曲线图,说明如图8所示的输入波形的256点FFT的模拟结果,并且对于每个基-2级实现0.5比特的缩放,显示为具有FFT峰值902的曲线,对于相同的输入波形,叠加在理想的32位FFT模型的结果上,如具有FFT峰值904的曲线所示。在峰值902和904之间存在明显的显着失配,并且最重要的是,即使基本区段(即峰值902)的峰值也不再被区分为图9中所示的其他较低幅度峰值的显性。

相比之下,图10显示了类似于图7的图,但是具有图8的输入信号。因此,图10示出了图示根据本公开的实施例计算的重建FFT输出的曲线图1000,其中使用了更高增益和更低增益FFT(上文针对更低增益描述的示例#1,上文针对更高增益描述的示例#2),也叠加在图8的输入波形的理想FFT模型上。类似于图7,在图10的这种情况下,根本没有观察到明显的不匹配,根据本公开的实施例计算的FFT输出的曲线看起来与思想FFT的曲线基本相同,显示为具有峰值1002的单个曲线图。

应该注意,根据这里提出的FFT重建方法,理想FFT模型(16位旋转,32位数据)的计算需要比重建的FFT输出的计算更多的数学运算。对于16位旋转,32位数据的每个乘法需要两个16位乘法,在每个FFT阶段具有移位和相加,而本文提出的改进的FFT计算仅在最后执行其重构,每个点执行一次。在雷达/声纳应用的一些实施例中,甚至可以在应用FFT输出重建之前进行所有范围FFT,然后进行所有速度FFT,然后进行幅度,如本文所述。

纯相位FFT

上面提供的解释适用于FFT算法,其中复数值或/和表示输入信号的不同频率分量的大小的实数值,由FFT算法计算得到,即包含复数值或表示幅度的实数值的FFT。大多数需要计算FFT的系统都使用这种FFT算法。但是,有些系统仅使用输入信号的各种频率分量的相位来得出关于环境的结论。例如,一些声源定位系统,即尝试对感兴趣的声源的空间位置做出结论的系统,采用不需要具有FFT的幅度或复数值的算法,而是仅使用相位来确定声源的位置。这种算法有时被称为“相位变换”、“PHAT”或“PHAT称重”算法。此外,一些声源分离系统,即试图对各种感兴趣的声源对整个声学环境的个体贡献做出结论的系统,根据一些盲源分离方法,还采用仅使用相位信息来执行源分离的算法,例如DUET算法,其中时频区根据它们所属的源聚类,使用相位作为本地化线索。

上面的解释可能适用于纯相位FFT,通过稍微调整重建技术来说明这样一个事实,即如果标量是正数,则通过标量缩放复数值不会改变复数的相位,如果标量为负,则反转相位。这意味着,当两个或多个FFT算法的FFT输出值是表示由算法计算的复数值的相位的实数值时(对于复数值x表示为+ib,其中a是实部,b是复数x的虚部,相位计算为b/a的反正切,即相=arctan(b/a)),那么,对于更高增益FFT算法的特定输出值[n]是否是削波的测试是简单地将该输出值的相位与假设不是削波的更低增益FFT算法的输出值[n]的相位进行比较。如果相位相等或大致相等使得它们的差异在某个预定义范围内,那么这表明不存在更高增益FFT值的削波,并且该值可以用作最终的FFT输出值的[n]。否则,在最终的FFT中使用更低增益FFT算法的值(即,这是关于复数值和表示幅度的实数值的上述解释的第二个差异-如果确定更高增益FFT的削波,那么最终的FFT将包括更低增益FFT的相位值,例如,不对该值进行缩放以考虑增益的差异,例如,如上面针对一些示例所述,没有按K/L缩放)。

与上面提供的关于选择用于确定是否已经发生特定FFT值[n]的削波的适当范围的考虑类似的考虑在这里是适用的,因此,为了简洁起见,不再重复。

利用FFT重建算法的示例性方法

图11示出了利用如本文所述的FFT重建算法的方法的示例性流程图1100。这种方法可以由包括至少一个处理器和存储器的任何数据处理系统来执行,例如,图12中示出的数据处理系统1200。这样的数据处理系统可以被包括在雷达或声纳系统内或通信地连接到雷达或声纳系统,特别是雷达或声纳接收器。

方法1100假设,首先,雷达或声纳发射机发送信号,该信号将由一个或多个感兴趣的对象反射并由雷达或声纳接收器获取。这种信号最好是啁啾信号。

方法1100可以从数据处理系统开始,获得表示由雷达接收器的雷达天线或声纳接收器的声纳传感器检测到的信号的输入信号(图11中的框1102)。检测到的信号包括由雷达或声纳发射机发送的信号,该信号从一个或多个感兴趣的对象反射。发送的信号可以是啁啾信号,在这种情况下,检测的信号也将包括啁啾信号。在各种实施例中,数据处理系统可以从例如被配置为接收并可能预处理由无线电或声纳接收器获取的信号的雷达或声纳接收器的模拟前端接收输入信号。在一些实施方案中,模拟前端可以将获取的模拟信号转换(如果需要)到提供给数据处理系统的输入信号的数据样本。

如图11中的框1104所示,数据处理系统然后可以应用如本文所述的FFT重建方法。为此,数据处理系统可以例如执行如上参照图4所述的步骤。

在一些实施方案中,根据参考图4描述的第一和第二FFT算法的FFT计算可以包括在数据矩形上执行水平(即范围)窗口FFT,优选地但不一定跟随垂直(速度)窗口FFT的。因此,数据处理系统可以在下一步骤的峰值识别开始之前对水平FFT的结果执行垂直FFT。在其中仅感兴趣检测到的对象的范围而不是其速度的实现中,数据处理系统可以被配置为在水平FFT的输出上执行峰值识别。换句话说,在这样的实现中,数据处理系统将仅对输入信号执行水平FFT并且将结果布置在索引频率的一维阵列中,可以根据被确定为可归因于该对象的峰值的频率来确定与对象的距离。

一旦数据处理系统获得应用FFT重建算法的输出,则数据处理系统被配置为识别可能存在于重建的FFT输出内的零个或多个峰值(图11中的框1106)。如本文先前所述,识别峰的方法是本领域普通技术人员已知的,并且用于识别峰的任何已知手段和算法都在本公开的范围内。

基于重建的FFT输出中所识别的峰值,数据处理系统可以针对感兴趣的每个对象可能确定以下各项中的一个或多个:到对象的距离的指示、对象的速度的指示、对象的移动方向的指示、以及对象的位置的指示,例如关于雷达/声纳接收器或发射机(图11中的方框1108)。为此,如本文所述,数据处理系统将确定所识别的峰值的x坐标和y坐标以确定关于对象的位置和移动的信息。基于雷达接收器的FFT输出中识别的峰值来确定对象的距离、位置、移动方向和/或速度的各种方式在本领域中是已知的并且在本公开的范围内。

如前所述,这里提出的FFT重建方法不限于雷达和声纳应用。因此,设想了类似于图11中所示的方法,并且其在本公开的范围内,其中框1102将包括获得指示任何其他感兴趣的接收信号的输入信号,不一定是雷达或声纳,例如基于接收声学信号的输入信号,框1108将包括基于重建的FFT输出确定其他感兴趣的参数,例如,从所接收的声学信号或声源分离中滤除噪声(即,将来自各个声源的贡献与总接收的声学信号分开)。

示例性数据处理系统

图12描绘了根据本公开的一些实施方案示出了示例性数据处理系统1200的框图。

如图12所示,数据处理系统1200可以包括通过系统总线1206耦合到存储器元件1204的至少一个处理器1202。这样,数据处理系统可以将程序代码存储在存储器元件1204中。此外,处理器1202可以执行经由系统总线1206从存储器元件1204访问的程序代码。在一个方面,数据处理系统可以被实现为适合于存储和/或执行程序代码的计算机。然而,应当理解,数据处理系统1200可以以包括处理器和能够执行本公开内容中描述的功能的存储器的任何系统的形式实现。

存储器元件1204可以包括一个或多个物理存储器设备,例如本地存储器1208和一个或多个大容量存储设备1210。本地存储器可以指随机存取存储器或在程序代码的实际执行期间通常使用的其他非持久存储器设备。大容量存储设备可以实现为硬盘驱动器或其他持久数据存储设备。处理系统1200还可以包括一个或多个高速缓冲存储器(未示出),其提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储设备1210检索程序代码的次数。

可选地,被描绘为输入设备1212和输出设备1214的输入/输出(I/O)设备可以耦合到数据处理系统。输入设备的示例可以包括但不限于键盘,诸如鼠标的指示设备等。输出设备的示例可以包括但不限于监视器或显示器、扬声器等。输入和/或输出设备可以直接或通过中间I/O控制器耦合到数据处理系统。

在一个实施例中,输入和输出设备可以实现为组合的输入/输出设备(在图12中示出,其中虚线围绕输入设备1212和输出设备1214)。这种组合装置的例子是触敏显示器,有时也被称为“触摸屏显示器”或简称为“触摸屏”。在这样的实施例中,可以通过物理对象的移动来提供对设备的输入,例如,触摸屏显示器上或附近的触笔或用户的手指。

网络适配器1216还可以可选地耦合到数据处理系统,以使其能够通过中间私有或公共网络耦合到其他系统、计算机系统、远程网络设备和/或远程存储设备。网络适配器可以包括:数据接收器,用于接收由所述系统、设备和/或网络发送到数据处理系统1200的数据;以及数据发射机,用于将数据从数据处理系统1200发送到所述系统、设备和/或网络。调制解调器、电缆调制解调器和以太网卡是可以与数据处理系统1200一起使用的不同类型的网络适配器的示例。

如图12中所示,存储器元件1204可以存储应用1218。在各种实施例中,应用1218可以存储在本地存储器1208、一个或多个大容量存储设备1210中、或者除了本地存储器和大容量存储设备之外。应当理解,数据处理系统1200可以进一步执行可以促进应用程序1218的执行的操作系统(图12中未示出)。以可执行程序代码的形式实现的应用程序1218可以由数据处理系统1200例如由处理器1202执行。响应于执行应用程序,数据处理系统1200可以被配置为执行本文描述的一个或多个FFT重建操作或方法步骤。

使用FFT重建的示例性雷达或声纳系统

图13示出了根据本公开的一些实施方案的示例性系统1300的系统视图,该系统被配置为实现本文所述的FFT重建方法。在一些实施方案中,系统1300可以是雷达或声纳系统,并且在这些实施方案中,系统1300可以包括发射机1302,用于发送从对象反射的信号,这将是雷达发射机,以防系统1300是雷达系统和声纳发射机,以防系统1300是声纳系统。

发射机1302可以包括啁啾信号发生器。用于产生啁啾信号的各种装置在本领域中是已知的,例如,使用YIG振荡器,采用具有压控振荡器(VCO)的模拟电路和线性或指数斜坡控制电压、或者使用数字信号处理器(DSP)以数字方式产生啁啾信号、数模转换器(DAC)、直接数字合成器(DDS)并通过改变数控振荡器中的步长。用于产生啁啾信号的所有装置和方式都在本公开的范围内。

系统1300还包括用于检测信号的传感器1304,例如,在系统1300是雷达系统的情况下的一个或多个无线电天线以及在系统1300是声纳系统的情况下的一个或多个声纳传感器。

系统1300还包括数据处理系统1308,其至少包括处理器1310和存储器1312,用于执行FFT重建方法并实现这里描述的数据处理功能的各个方面。在一些实施方案中,数据处理系统1308可以实现为图12所示的系统1200。

在一些实施方案中,数据处理系统1308可以被配置为执行图11所示的方法1100以及本文描述的其他处理特征,例如,在上面描述的“FFT基础和在雷达和声纳应用中使用FFT的例子”部分中描述的处理。

任选地,接收器还可以包括信号调节器1306,其被配置为在将经调节的信号作为输入信号提供给数据处理系统1308之前调节由接收器1304获取的信号。这种调节可以包括以下中的一个或多个:例如模数转换、基于一个或多个预定标准的滤波(例如,应用通带滤波器仅处理有限频带中的信号)、放大等。

如本文所述实现FFT重建使得能够使用定点FFT实现高动态范围系统1300,有利地降低系统的成本和功耗。

虽然图13示出了要包括在系统1300内的数据处理系统1308,但是在其他实施例中,数据处理系统1308可以在系统1300外部实现,在这种情况下,数据处理系统1308可以被配置为通过任何适当的通信信道远程控制系统1300。换句话说,代替在如图13所示的系统1300内实现,数据处理系统1308可以在系统1300外部并且可通信地耦合到系统1300。

例子

例子1提供用于产生输入信号的快速傅立叶变换(FFT)的计算机实施的方法。该方法包括:将第一多级FFT算法应用于输入信号以产生第一FFT,第一FFT包括用索引n索引的N个第一值输出1[n],其中第一FFT算法被配置为缩放第一FFT算法的一个或多个级的输出,使得第一FFT算法的增益为K;将第二多级FFT算法应用于输入信号以产生第二FFT,第二FFT包括用索引n索引的N个第二值输出2[n],其中第二FFT算法被配置为缩放第二FFT算法的一个或多个级的输出,使得第二FFT算法的增益为L,其中L小于K;和通过下列产生包括以索引n索引的N个FFT值输出[n]的FFT:对于每个索引n,确定第一值输出1[n]和第二值输出2[n]的比较是否满足预定条件,在肯定确定后(即,当确定第一FFT的输出值[n]由于饱和而未削波时),包括所述第一值输出1[n]作为FFT值输出[n],并且在否定确定后(即,当确定第一FFT的输出值[n]由于饱和而削波时),包括基于第二值输出2[n]的值作为FFT值输出[n]。

例子2提供根据例子1所述的方法,其中包括基于所述第二值输出2[n]的值作为FFT值输出[n]包括:包括乘以第二值输出2[n]的K/L值作为FFT值输出[n]。

例子3提供根据例子1或2所述的方法,其中确定所述第一值输出1[n]和所述第二值输出2[n]的比较是否满足条件包括:将所述第二值输出2[n]乘以K/L,从乘法结果中减去所述第一值输出1[n],和确定减去的结果是否在包括至少零值的预定范围内。

例子4提供根据例子3所述的方法,其中K/L等于2M,其中M是整数,并且其中乘法包括向第二值输出2[n]应用M位的左移。

例子5提供根据例子1或2所述的方法,其中确定所述第一值输出1[n]和所述第二值输出2[n]的比较是否满足条件包括:将第一输出1[n]除以第二值输出2[n],并且确定除法的结果是否在包括至少K/L的值的预定范围内。

例子6提供根据例子1或2所述的方法,其中确定所述第一值输出1[n]和所述第二值输出2[n]的比较是否满足条件包括:计算第一值输出1[n]的对数,计算第二值输出2[n]的对数,从第一值输出1[n]的对数中减去第二值输出2[n]的对数,并且确定减法的结果是否在包括至少log(K/L)的值的预定范围内。

例子7提供根据前面例子中任一项所述的方法,其中N个第一值输出1[n]、N个第二值输出2[n]和N个FFT值输出[n]包括表示输入信号内存在的一个或多个频率贡献中的每一个的幅度的实际值。

例子8提供根据前面例子中任一项所述的方法,其中N个第一值输出1[n]、N个第二值输出2[n]和N个FFT值输出[n]包括指示所述输入信号内存在的一个或多个频率贡献中的每一个的幅度和相位的复数值。

例子9提供根据例子1所述的方法,其中包括基于所述第二值输出2[n]的值作为FFT值输出[n]包括:包括第二值输出2[n]作为FFT值输出[n]。

例子10提供根据例子9所述的方法,其中确定所述第一值输出1[n]和所述第二值输出2[n]的比较是否满足条件包括确定所述第一值输出1[n]和所述第二值输出2[n]的差是否在包括至少零值的预定范围内。

例子11提供根据例子9或10所述的方法,其中N个第一值输出1[n]、N个第二值输出2[n]和N个FFT值输出[n]包括表示输入信号内存在的一个或多个频率贡献中的每一个的相位的实际值。

例子12提供根据前面例子中任一项所述的方法,其中第一FFT算法是包括两个或更多个蝶形级的FFT算法,并且其中第一FFT算法的一个或多个级的输出的缩放包括对于复指数输入信号缩放每对蝶形级的输出这样的缩放因子,该缩放因子等于第一FFT算法的蝶形级对的增长因子的倒数的两倍。

例子13提供根据例子12所述的方法,其中第一FFT算法包括基-2算法,并且其中对于复指数输入信号缩放每对蝶形级的输出这样的缩放因子,该缩放因子等于第一FFT算法的蝶形级对的增长因子的倒数的两倍,包括:通过1的缩放因子缩放每对的一个蝶形级,并且通过1/2的缩放因子缩放每对连续的蝶形级的另一个蝶形级。

例子14提供根据例子12所述的方法,其中第一FFT算法包括基-4算法,并且其中对于复指数输入信号缩放每对蝶形级的输出这样的缩放因子,该缩放因子等于第一FFT算法的蝶形级对的增长因子的倒数的两倍,包括:缩放各蝶形级1/2的缩放因子。

例子15提供根据例子1-14中任一项所述的方法,其中第二FFT算法是包括两个或更多个蝶形级的基-2FFT算法,并且其中缩放第二FFT算法的一个或多个级的输出包括:缩放各蝶形级1/2的缩放因子。

例子16提供根据例子13-15中任一项所述的方法,其中缩放1/2的缩放因子包括:对缩放的蝶形级的结果应用1位右移。

例子17提供根据例子1-14中任一项所述的方法,其中第二FFT算法是包括两个或更多个蝶形级的基-4FFT算法,并且其中缩放第二FFT算法的一个或多个级的输出包括:缩放各蝶形级1/4的缩放因子。

例子18提供根据例子18所述的方法,其中缩放各蝶形级1/4的缩放因子包括:对缩放的蝶形级的结果应用2位右移。

例子19提供根据前面例子中任一项所述的方法,其中输入信号包括基本复指数信号或基本正弦信号。

例子20提供根据前面例子中任一项所述的方法,其中:应用第一FFT算法包括对输入信号的数据样本的行应用第一水平加窗FFT算法,并且在第一水平加窗FFT算法的输出上应用第一垂直加窗FFT算法以产生N个第一值输出1[n],和/或应用第二FFT算法包括对输入信号的数据样本的行应用第二水平加窗FFT算法,并且在第二水平加窗FFT算法的输出上应用第二垂直加窗FFT算法以产生N个第二值输出2[n]。

例子21提供根据前面例子中任一项所述的方法,其中所述第一FFT算法和所述第二FFT算法中的每一个都是定点FFT算法。

例子22提供根据前面例子中任一项所述的方法,其中选择K作为输入净空与N的平方根的比率,和/或选择L作为输入净空与N的比率,其中所述输入净空是提供用于表示所述第一FFT算法和所述第二FFT算法中的每一个的输出的多个位和用于表示所述输入信号的多个位之间的差。

例子23提供根据前面例子中任一项所述的方法,其中输入信号基于从对象反射的无线电信号产生,并且其中该方法还包括基于N个FFT值输出[n]确定与对象的距离的指示、对象的速度的指示以及对象的位置的指示中的一个或多个。

例子24提供用于至少产生输入信号的快速傅立叶变换(FFT)的系统,所述系统包括数据处理系统,被配置为实施根据例子1-22中任一项所述的方法。

例子25提供根据例子24所述的系统,其中数据处理系统被配置为进一步实施根据例子23所述的方法,并且其中所述系统还包括:雷达发射机,被配置为发送无线电信号;雷达接收器,被配置为检测包括从对象反射的传输的无线电信号的至少一部分的信号,并基于检测到的信号产生输入信号。

例子26提供存储软件代码部分的非暂时性计算机可读存储介质,所述软件代码部分被配置为当在处理器上执行时执行根据例子1-23中任一项所述的方法。

例子27提供了一种计算机程序产品,其包括用于执行根据例子1-23中任一项所述的方法的计算机可读指令。

变化和实施

虽然上面参考如图2-13所示的示例性实施方式描述了本公开的实施方案,但是本领域技术人员将认识到,上述各种教导适用于多种其他实施方式。具体地,虽然本公开中提供的一些描述涉及基-2FFT,但是这些描述适用于其他具有阶段的FFT。此外,虽然这里提供的示例是参考包括6级和16位整数FFT的FFT来描述的,但是当然在其他实现中可以使用任何其它数量的级和任何数量的位。

在某些情况下,本文讨论的特征可适用于汽车系统、安全关键型工业应用、医疗系统、科学仪器、无线和有线通信、雷达、工业过程控制、音频和视频设备、电流感测、仪器(可以高度精确)以及其他基于数字处理的系统。

此外,可以在用于医学成像、患者监测、医疗仪器和家庭保健的数字信号处理技术中提供以上讨论的某些实施例。这可能包括肺部监护仪、加速度计、心率监测器、起搏器等。其他应用可能涉及用于安全系统(例如稳定性控制系统、驾驶员辅助系统、制动系统、信息娱乐系统和任何类型的内部应用)的汽车技术。

在其他例子场景中,本公开的教导可适用于包括帮助驱动生产力、能量效率和可靠性的过程控制系统的工业市场。在消费者应用中,上面讨论的信号处理电路的教导可以用于图像处理、自动聚焦和图像稳定(例如,用于数字静态照相机、便携式摄像机等)。其他消费类应用可包括家庭影院系统的音频和视频处理器、DVD刻录机和高清电视。

在上述实施例的讨论中,系统的组件,例如,时钟、多路复用器、缓冲器和/或其他组件可以容易地被替换、替换或以其他方式修改,以适应特定的电路需求。此外,应该注意的是,使用互补的电子设备、硬件、软件等为实现与虚拟抖动有关的本公开的教导提供了同样可行的选择。

如本文所提出的用于实现定点FFT的FFT重建功能的各种系统的部分可以包括用于执行本文描述的功能的电子电路。在一些情况下,系统的一个或多个部分可以由专门配置用于执行这里描述的功能的处理器提供。例如,处理器可以包括一个或多个应用专用组件,或者可以包括被配置为执行本文描述的功能的可编程逻辑门。该电路可以工作在模拟域、数字域或混合信号域。在一些情况下,处理器可以被配置为通过执行存储在非临时性计算机可读存储介质上的一个或多个指令来执行本文描述的功能。

在一个例子实施例中,图4、12和13的任何数量的电路可以在相关电子设备的板上实现。该板可以是通用电路板,其可以容纳电子设备的内部电子系统的各种组件,并且进一步为其他外围设备提供连接器。更具体地说,电路板可以提供电连接,通过该电连接系统的其他部件可以电连通。基于特定的配置需求、处理需求、计算机设计等,任何合适的处理器(包括数字信号处理器、微处理器、支持芯片组等)、计算机可读非暂时性存储器元件等可适当地耦合到板。诸如外部存储器、附加传感器、用于音频/视频显示器的控制器以及外围设备的其他组件可以作为插入卡,通过电缆或板上自身集成到板上。在各种实施例中,本文描述的功能可以模拟形式实现为运行在布置在支持这些功能的结构中的一个或多个可配置(例如,可编程)元件内的软件或固件。提供仿真的软件或固件可以被提供在包括允许处理器执行那些功能的指令的非暂时性计算机可读存储介质上。

在另一个示例性实施例中,图4、12和13的电路可以被实现为独立模块(例如具有被配置为执行特定应用或功能的相关组件和电路的设备),或者作为插入式模块实施到电子设备的专用硬件中。注意,使用多定点FFT实现FFT重建的特定本公开的实施方案可以部分地或全部地容易地包括在片上系统(SOC)包中。SOC代表将计算机或其他电子系统的组件集成到单个芯片中的IC。它可能包含数字、模拟、混合信号和无线射频功能:所有这些功能都可以在单个芯片基板上提供。其他实施例可以包括多芯片模块(MCM),其中多个单独的IC位于单个电子封装内并且被配置为通过电子封装彼此紧密地交互。在各种其他实施例中,本文提出的FFT重建可以在专用集成电路(ASIC)、现场可编程门阵列(FPGA)和其他半导体芯片中的一个或多个硅核中实现。

还必须注意,本文概述的所有规范、尺寸和关系(例如,处理器的数量、逻辑操作等)仅出于例子和教学的目的而提供。在不脱离本公开的精神或所附权利要求的范围的情况下,可以显着地改变这样的信息。这些规范仅适用于一个非限制性的例子,因此它们应该被解释为这样。在前面的描述中,已经参照特定的处理器和/或组件布置描述了实施例。在不脱离所附权利要求的范围的情况下,可以对这些实施例进行各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性的。

注意,利用这里提供的许多例子,交互可以用两个、三个、四个或更多个电子部件来描述。然而,这仅仅是出于清楚和仅限例子的目的而进行的。应该理解,系统可以以任何合适的方式合并。沿着类似的设计替代方案,图4、12和13中的任何所示组件、模块和元件可以以各种可能的配置组合,所有这些配置显然都在本说明书的宽范围内。在某些情况下,仅通过参考有限数量的电气元件来描述给定流程集的一个或多个功能可能更容易。应当理解,图4、12和13的电路及其教导是容易扩展的,并且可以容纳大量部件、以及更复杂/复杂的布置和配置。因此,所提供的示例不应限制范围或抑制可能应用于无数其他架构的电路的广泛教导。

注意,在本说明书中,对“一个实施例”、“例子实施例”、“实施例”、“另一实施例”、“一些实施例”、“各种实施例”、“其他实施例”、“替代实施例”等中包括的各种特征(例如,元件、结构、模块、组件、步骤、操作、特性等)旨在表示任何这样的特征都包括在一个或多个本公开的实施方案中,但可能会或可能不会必须在相同的实施例中组合。

注意到与这里提出的FFT重建相关的功能也仅仅说明了可以由图4、12和13中所示的系统执行或者可以执行的一些可能的功能,这也是重要的。这些操作中的一些可以被删除或者在适当的情况下被移除,或者这些操作可以在不脱离本公开的范围的情况下被相当大地修改或改变。此外,这些操作的时间可能会大大改变。前面的操作流程已被提供用于例子和讨论。本文描述的实施例提供了实质的灵活性,因为在不脱离本公开的教导的情况下可以提供任何合适的布置、时间顺序、配置和定时机制。

注意,上述设备的所有可选特征也可以关于本文描述的方法或过程来实现,并且示例中的细节可以在一个或多个实施例中的任何地方使用。

本领域技术人员可以确定许多其他改变、替代、变化、变更和修改,并且本公开意图包括落入所附权利要求的范围内的所有这些改变、替换、变化、更改和修改。

虽然权利要求以美国专利商标局使用的样式以单一依赖格式呈现,但应该理解的是,任何权利要求可以取决于并且与任何前述相同类型的权利要求相结合,除非这在技术上明显不可行。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1