信号处理方法、信号处理器、设备及存储介质与流程

文档序号:23715170发布日期:2021-01-24 05:22阅读:52来源:国知局
信号处理方法、信号处理器、设备及存储介质与流程

[0001]
本申请实施例涉及信号处理领域,特别涉及一种信号处理方法、信号处理器、设备及存储介质。


背景技术:

[0002]
快速傅里叶变换(fast fourier transformation,fft)是离散傅里叶变换的快速算法,将fft应用到信号处理领域中,可以简化信号处理过程中的计算过程,比如较少乘法运算。
[0003]
相关技术中,在fft实现过程中,中间每级的处理采用固定位宽,每级预设固定的缩放因子,由于中间每级计算过程不进行任何处理,数据位宽会相应增加,为了避免溢出,需要设置更大的数据位宽来容纳处理数据,显然会增加fft的实现成本。


技术实现要素:

[0004]
本申请实施例提供了一种信号处理方法、信号处理器、设备及存储介质。所述技术方案如下:
[0005]
一方面,本申请实施例提供了一种信号处理方法,所述方法包括:
[0006]
获取初始采样信号;
[0007]
对所述初始采样信号进行最大信噪比处理,得到输入信号,经过最大信噪比处理后的所述输入信号对应的数据位宽低于数据位宽阈值;
[0008]
对所述输入信号进行快速傅里叶变换运算,并在快速傅里叶变换运算过程中进行最大信噪比处理,得到输出信号,经过最大信噪比处理后的所述输出信号的数据位宽小于数据位宽阈值。
[0009]
另一方面,本申请实施例提供了一种信号处理器,所述信号处理器包括采样单元、快速傅里叶变换运算单元、第一最大信噪比处理单元和第二最大信噪比处理单元;
[0010]
所述采样单元用于获取初始采样信号;
[0011]
所述第一最大信噪比处理单元用于对所述初始采样信号进行最大信噪比处理,得到输入信号;
[0012]
所述快速傅里叶变换运算单元和所述第二最大信噪比处理单元用于对所述输入信号进行处理,得到输出信号。
[0013]
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括信号处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述信号处理器加载并执行以实现如上述方面所述的信号处理方法。
[0014]
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由信号处理器加载并执行以实现如上述方面所述的信号
处理方法。
[0015]
另一方面,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的信号处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的信号处理方法。
[0016]
本申请实施例提供的技术方案带来的有益效果至少包括:
[0017]
在fft实现过程中,通过对初始采样信号进行最大信噪比处理,减少fft过程中的定点化损失,并在fft过程中通过最大信噪比处理缩小数据位宽,可以避免数据位宽随每级计算不断增加而导致数据位宽的溢出,从而避免了fft实现过程中数据位宽不断增加对信号处理器的处理资源的占用,进而降低了fft的实现成本。
附图说明
[0018]
图1其示出了16点ifft变换的展开图;
[0019]
图2示出了本申请一个示例性实施例示出的信号处理器的结构框图;
[0020]
图3示出了本申请一个示例性实施例提供的信号处理方法的流程图;
[0021]
图4示出了本申请另一个示例性实施例示出的信号处理方法的流程图;
[0022]
图5示出了本申请另一个示例性实施例示出的信号处理方法的流程图;
[0023]
图6示出了本申请一个示例性实施例示出的蝶形运算过程中进行最大信噪比处理的方法的流程图;
[0024]
图7示出了本申请一个示例性实施例示出的radix运算的示意图;
[0025]
图8示出了本申请一个示例性实施例示出的相位旋转运算的示意图;
[0026]
图9示出了本申请一个示例性实施例提供的信号处理器的结构框图;
[0027]
图10示出了本申请一个示例性实施例提供的计算机设备的结构示意图。
具体实施方式
[0028]
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0029]
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0030]
fft是离散傅里叶变换的快速算法,是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进后获得的,相比于离散傅里叶变换,fft可以节约复数序列的运算次数,节省运算量。在信号处理领域中,使用fft对信号进行处理时,可以将信号由时域变换到频域,用于在频域上进一步分析信号的特征。可选的,fft算法包括基于时间抽取的fft算法和基于频域抽取的fft算法。如图1所示,其示出了16点ifft变换的展开图,其中,以时间抽取,radix-2为例,x(0)~x(15)为16个采样信号,表示旋转因子,16个采样信号经过四级蝶形运算,得到输出信号,每级蝶形运算由radix-2运算和相位旋转运算组成。
[0031]
由于每级蝶形运算中均需要经过两次复数加法和一次复数乘法,若不对运算数据
进行处理,数据位宽会逐级增加。
[0032]
针对相关技术中数据位宽会逐级增加的问题,本申请实施例提供了一种新的信号处理方法,该信号处理方法应用于图2所示的信号处理器中,如图2所示,其示出了本申请一个示例性实施例示出的信号处理器的结构框图,该信号处理器200包括:采样单元201、第一最大信噪比处理单元202、fft运算单元203和第二最大信噪比处理单元204。
[0033]
采样单元201用于对模拟信号进行模数转换,并采样得到多个离散的数字信号。本申请实施例中,采样单元201用于获取初始采样信号。可选的,采样单元201可以是模拟/数字转换器(analog-to-digital converter,adc)。
[0034]
第一最大信噪比处理单元202用于对输入信号进行最大信噪比处理。本实施例中,第一最大信噪比处理单元202可以接收采样单元201传输的初始采样信号,并对初始采样信号进行最大信噪比处理,得到用于进行fft过程的输入信号。
[0035]
fft运算单元203用于对多个离散输入信号进行快速傅里叶变换运算。其中,fft运算单元203可以包括多个radix运算器和相位旋转单元。
[0036]
第二最大信噪比处理单元204用于在fft运算过程中对数据进行最大信噪比处理。本申请实施例中,在fft运算过程中,通过对每级运算进行最大信噪比处理,从而避免fft过程中进行复数加法运算和复数乘法运算而导致数据位宽逐渐增大,实现将数据位宽控制在数据位宽阈值之内。
[0037]
可选的,信号处理器200中还包括缓存器(buffer),用于存储每级的缩放因子。
[0038]
相比于相关技术中,仅对输入信号进行fft运算处理,本申请实施例在信号处理器200中新增第一最大信噪比处理单元202和第二最大信噪比处理单元204,可以避免数据位宽随每级计算不断增加而导致数据位宽的溢出,从而避免了fft实现过程中数据位宽不断增加对信号处理器的处理资源的占用,进而降低了fft的实现成本。
[0039]
需要说明的是,本申请实施例所示的信号处理方法可以应用于信号处理器(处理器芯片中)中,该信号处理器可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic),本申请实施例对此不构成限定。
[0040]
请参考图3,其示出了本申请一个示例性实施例提供的信号处理方法的流程图。本申请实施例以该方法应用于信号处理器为例进行说明,该方法包括:
[0041]
步骤301,获取初始采样信号。
[0042]
信号处理领域中,在对模拟信号进行处理时,需要先将模拟信号转换为数字信号,再对其进行信号处理,因此,在一种可能的实施方式中,信号处理器对接收到的模拟信号进行adc采样后,得到数字信号,即初始采样信号。
[0043]
其中,模拟信号可以是射频信号,也可以是电磁波信号,本申请实施例对模拟信号的种类不构成限定。
[0044]
由于fft处理过程中,为了方便fft运算,在对模拟信号进行adc采样时,采样得到的点数一般取2的整数次方,比如,采样点数为16点,为2^4,即可以得到16个初始采样信号。
[0045]
步骤302,对初始采样信号进行最大信噪比处理,得到输入信号,经过最大信噪比处理后的输入信号对应的数据位宽低于数据位宽阈值。
[0046]
其中,定义初始数据位宽为w,初始数据位宽为初始采样信号对应的采样位宽,比
如,初始数据位宽(采样位宽)为16bit,表示每个采样点采集2个字节的数据;数据位宽阈值由初始数据位宽决定,fft实现过程中的各级运算数据的数据位宽均需要小于该数据位宽阈值,避免数据位宽超过数据位宽阈值而出现溢出现象。
[0047]
在一个示例性的例子中,数据位宽阈值与初始数据位之间的关系可以表示为:
[0048]
max_w=2
w-1-1
[0049]
其中,max_w表示数据位宽阈值,w表示初始数据位宽。
[0050]
由于fft实现过程中,采用fft定点化方式处理数据,因此,为了避免fft定点化的损失,在一种可能的实施方式中,首先对初始采样信号进行最大信噪比处理,从而得到用于进行fft的输入信号。
[0051]
当然,由于数据位宽阈值的限制,对初始采样信号进行最大信噪比处理后的输入信号对应的数据位宽也需要保证低于最大数据位宽,避免溢出。
[0052]
步骤303,对输入信号进行快速傅里叶变换运算,并在快速傅里叶变换运算过程中进行最大信噪比处理,得到输出信号,经过最大信噪比处理后的输出信号的数据位宽小于数据位宽阈值。
[0053]
其中,最大信噪比处理用于在快速傅里叶变换运算过程中缩小信号的数据位宽。
[0054]
由于在fft实现过程中,每一级进行处理过程中均会导致数据位宽的增加,比如,对两个信号值进行复数乘法或复数加法,都有可能导致数据位宽的增加,因此,为了避免数据位宽的不断增加,在fft实现过程中,通过对信号进行最大信噪比处理的方式,来避免fft运算过程中信号数据位宽的不断增加。
[0055]
在一种可能的实施方式中,通过对输入信号进行快速傅里叶变换,并在fft运算过程中对运算数据进行最大信噪比处理,比如,在进行复数乘法后,进行最大信噪比处理,来避免复数乘法后数据位宽的增加。
[0056]
本申请实施例中,通过对初始采样信号进行最大信噪比处理,减少fft过程中的定点化损失,并在fft过程中通过最大信噪比处理缩小数据位宽,可以避免数据位宽随每级计算不断增加而导致数据位宽的溢出,从而避免了fft实现过程中数据位宽不断增加对信号处理器的处理资源的占用,进而降低了fft的实现成本。
[0057]
由于fft实现过程中,存在多级蝶形运算,为了进一步避免中间每级运算数据位宽的增加,因此,在一种可能的实施方式中,通过在各级蝶形运算中均进行最大信噪比处理,进一步控制fft过程中数据位宽的增加现象。
[0058]
请参考图4,其示出了本申请另一个示例性实施例示出的信号处理方法的流程图。本申请实施例以该方法应用于信号处理器为例进行说明,该方法包括:
[0059]
步骤401,获取初始采样信号。
[0060]
本步骤的实施方式可以参考步骤301,本实施例在此不做赘述。
[0061]
步骤402,根据初始实部信号值、初始虚部信号值和初始数据位宽,计算输入信号对应的初始缩放因子,初始数据位宽为初始采样信号对应的采样位宽。
[0062]
其中,在表示初始采样信号时,将初始采样信号表示为复数的形式参与信号处理运算,比如,初始信号可以表示为:r
si
(n)=x
si
(n)+j
·
y
si
(n),其中,r
si
(n)为初始采样信号,x
si
(n)为初始采样信号对应的实部信号值,y
si
(n)为初始采样信号对应的虚部信号值,j为虚数单位。
[0063]
可选的,初始采样信号(i/q)可以共享同一个指数,比如,共享指数为e,则初始采样信号可以表示为:r
si
(n)=i*2
e
+q*2
e

[0064]
在一种可能的实施方式中,对每个数据r
si
(n)进行最大信噪比处理时,原理为:将每个数据r
si
(n)进行左移,保证输入数据(信号)i/q最高位有一个不为0,对应的,在进行处理过程中,首先根据初始采样信号对应的初始实部信号值、初始虚部信号值和初始数据位宽(采样位宽),计算得到输入信号对应的初始缩放因子,再根据初始缩放因子和初始采样信号值,计算得到最大信噪比处理后的输入信号。
[0065]
在一个示例性的例子中,缩放因子与初始采样信号的关系可以表示为:
[0066]
s(n)=w-2-floor(log2(max(|x
si
(n)|,|y
si
(n)|)))
ꢀꢀ
(1)
[0067]
其中,s(n)为初始采样信号r
si
(n)对应的初始缩放因子,w为初始数据位宽,x
si
(n)为初始实部信号值,y
si
(n)为初始虚部信号值,floor(x)表示向下取整函数,即取不大于x的最大整数,max(x)表示取最大值,|x|表示取绝对值。
[0068]
在一种可能的实施方式中,对复数形式表示的初始采样信号按照公式(1)所示的方式计算,即可以得到输入信号对应的初始缩放因子。
[0069]
由于本申请实施例中并非采用固定的缩放因子,因此,设置有用于存储缩放因子的buffer,该buffer的大小为信号处理器最大支持的fft点数。
[0070]
其中,fft点数即初始采样信号对应的个数,为了便于进行fft运算,初始采样信号通常取2的整数次方,比如,16点。
[0071]
在一种可能的应用场景中,当对初始采样信号进行最大信噪比处理后,需要将初始缩放因子存储在buffer中,并将输入信号送入fft运算单元中进行fft运算。
[0072]
步骤403,根据初始采样信号和初始缩放因子,计算得到输入信号。
[0073]
在一种可能的实施方式中,在确定出初始缩放因子后,即可以根据初始采样信号和初始缩放因子,计算得到最大信噪比处理后的输入信号。
[0074]
在一个示例性的例子中,输入信号、初始缩放因子和初始采样信号的关系可以表示为:
[0075]
r
si

(n)=r
si
(n)
·
2-s(n)
[0076]
其中,r
si

(n)表示输入信号(即经过最大信噪比处理后的采样信号),r
si
(n)表示初始采样信号,s(n)表示初始缩放因子。
[0077]
步骤404,对输入信号进行k级蝶形运算,并在各级蝶形运算过程中进行最大信噪比处理,得到输出信号,k为正整数,且与初始采样信号的个数有关。
[0078]
fft运算为各级蝶形运算的迭加,根据fft的特点,fft中包括几级蝶形运算与初始采样信号的个数有关,同时也与fft所采用的算法有关,以时间抽取的基-2算法为例,若初始采样信号的个数为16(2^4)个,则fft包括4级蝶形运算,若以时间抽取的基-4为例,则fft包括两级蝶形运算(4^2)。
[0079]
由于每级蝶形运算都需要经过两次复数加法和一次复数乘法,且进行复数乘法和复数加法过程中,都可能会造成运算后的信号值对应的数据位宽增加,可能会出现数据位宽溢出,或数据位宽较大的情况,因此,为了避免每级蝶形运算导致数据位宽增加的现象,通过为每级蝶形运算结果均进行最大信噪比处理,达到缩小数据位宽的目的,在兼顾数据位宽小于数据位宽阈值的基础上(不会出现溢出现象),可以节省信号处理器处理信号时分
配的处理资源。
[0080]
本实施例中,通过对初始采样信号进行最大信噪比处理,可以避免fft定点化的损失,此外,通过在fft中的各级蝶形运算过程中均进行最大信噪比处理,避免在蝶形运算过程中出现数据溢出现象的同时,避免每级蝶形运算处理后数据位宽的增加,从而避免因数据位宽的增加需要分配更多的处理资源,从而降低了fft的实现成本。
[0081]
由图1可知,每级蝶形运算过程中,需要经过基(radix)运算和相位旋转运算两个运算步骤,因此,在蝶形运算过程中进行最大信噪比处理时,也需要分别考虑两种运算情况下的最大信噪比处理过程,即在每一种运算后均需要进行最大信噪比处理。
[0082]
在图4的基础上,如图5所示,步骤404可以包括步骤404a至步骤404d。
[0083]
步骤404a,对第n级输入信号进行radix运算,得到第n级radix运算结果,n为正整数,第n级输入信号是第n级蝶形运算的输入信号。
[0084]
在对蝶形运算进行最大信噪比处理过程中,考虑到蝶形运算包括radix运算和相位旋转运算,且每一种运算均有可能带来数据位宽的增加,因此,在对输入信号进行radix运算后,需要对radix运算结果进行最大信噪比处理,再对最大信噪比处理后的输出信号进行相位旋转运算;同理,在对输出信号进行相位旋转运算后,也许要对相位旋转运算结果进行最大信噪比处理,才可以作为下一级蝶形运算的输入信号。
[0085]
由于fft过程中包含k级蝶形运算,即k个蝶形运算的迭代过程,因此,在一种可能的实施方式中,信号处理器在获取到第n级输入信号后,即对该第n级输入信号进行radix运算,首先得到第n级radix运算结果,再对第n级radix运算结果进行最大信噪比处理。
[0086]
在一个示例性的例子中,以radix-2,8点fft为例,fft包括3级蝶形运算,当n取1时,则将第一级输入信号(第一级输入信号即为对初始采样信号进行最大信噪比处理后的信号或第一级蝶形运算的输入信号)进行radix运算,得到第一级radix运算结果,再对第一级radix运算结果进行最大信噪比处理。当n取2时,则第二级输入信号即为第一级输入信号经过radix运算、最大信噪比处理、相位旋转运算和最大信噪比处理后得到的信号,依次类推。
[0087]
步骤404b,对第n级radix运算结果进行最大信噪比处理,得到第n级输出信号。
[0088]
与相关技术中将radix运算结果直接进行相位旋转运算不同的是,本申请实施例为了减弱或抵消对信号值进行radix运算过程中的数据位宽增加现象,在经过radix运算后得到radix运算结果后,首先需要对radix运算结果进行最大信噪比处理,缩小radix运算结果的数据位宽,避免数据位宽的增加,也可以保证数据位宽不超过数据位宽阈值。
[0089]
与步骤404a对应,在实施过程中,当信号处理器获取到第n级radix运算结果后,首先对第n级radix运算结果进行最大信噪比处理,从而得到用于进行相位旋转运算的输出信号,即第n级输出信号。
[0090]
在一个示例性的例子中,当n取1时,将第一级输入信号进行radix运算,得到第一级radix运算结果后,首先对第一级radix运算结果进行最大信噪处理,并将最大信噪比处理后得到的输出信号作为第一级输出信号。
[0091]
步骤404c,对第n级输出信号进行相位旋转运算,得到第n级相位旋转运算结果。
[0092]
每级蝶形运算过程中,均是先进行radix运算,再进行相位旋转运算,因此,在一种可能的实施方式中,信号处理器将经过蝶形运算和最大信噪比处理后的第n级输出信号输
入相位旋转运算单元中,进行相位旋转运算,首先得到第n级相位旋转运算结果,再对第n级相位旋转运算结果进行最大信噪比处理。
[0093]
步骤404d,对第n级相位旋转运算结果进行最大信噪比处理,得到第n+1级输入信号,其中,将对第k级相位旋转运算结果进行最大信噪比处理后得到的输入信号确定为输出信号。
[0094]
与上文中的radix运算处理过程类似,在对输入信号进行radix运算和最大信噪比处理后,将得到的输出信号输入相位旋转运算单元,由于相位旋转运算中存在复数乘法,也可能会导致处理后的信号值数据位宽增加,因此,在一种可能的实施方式中,需要对相位旋转运算结果进行最大信噪比处理,缩小数据位宽后,才可以进行后一级蝶形运算。
[0095]
在fft过程中,当信号处理器获取到第n级相位旋转运算结果后,首先需要对其进行最大信噪比处理,避免其数据位宽的增加,再对最大信噪比处理后的进行下一级蝶形运算。
[0096]
在一个示例性的例子中,第n级蝶形运算的运算过程包括:对第n级输入信号进行radix运算,得到radix运算结果,对radix运算结果进行最大信噪比处理,得到第n级输出信号,对第n级输出信号进行相位旋转运算,得到第n级相位旋转运算结果,对第n级相位旋转运算结果进行最大信噪比处理,得到第n+1级输入信号,该第n+1级输入信号用于进行第n+1级蝶形运算,第n+1蝶形运算过程与第n级蝶形运算过程类似,本实施例在此不做赘述。
[0097]
需要说明的是,当第n等于k,即fft进行到最后一级(k级)蝶形运算时,则将经过radix运算-最大信噪比处理-相位旋转运算-最大信噪比处理后得到的输入信号确定为fft的输出信号。
[0098]
本实施例中,由于考虑到每级蝶形运算中包括radix运算和相位旋转运算,且这两种运算均可能造成数据位宽增加,也可能出现数据位宽超过数据位宽阈值的情况,因此,在每级蝶形运算过程中,在radix运算和相位旋转运算后均增加最大信噪比处理步骤,更精确的预防数据位宽的增加,以避免数据位宽的溢出。
[0099]
上文实施例中描述了最大信噪比处理在fft实现过程中的作用位置,即在各级蝶形运算均需要进行最大信噪比处理,且针对每级蝶形运算中包含的radix运算和相位旋转运算也需要进行最大信噪比处理,下文实施例中重点描述在每个运算过程中,进行最大信噪比处理的详细过程。
[0100]
请参考图6,其示出了本申请一个示例性实施例示出的蝶形运算过程中进行最大信噪比处理的方法的流程图,本申请实施例以该方法应用于信号处理器为例进行说明,该方法包括:
[0101]
步骤601,对第一输入信号和第二输入信号进行radix运算,得到第一radix运算结果和第二radix运算结果。
[0102]
由图1可知,在每个蝶形运算过程中,蝶形运算的输入包括两个信号,第一输入信号和第二输入信号,输出也为两个信号,即第一输出信号和第二输出信号,因此,在一种可能的实施方式中,在对第n级输入信号进行radix运算时,是对第n级输入信号所对应的第一输入信号和第二输入信号进行radix运算,对应的,在radix运算后,也同样得到两个radix运算结果,即第一radix运算结果和第二radix运算结果。
[0103]
其中,在对第一输出信号和第二输出信号进行radix运算的过程可以包括以下步
骤:
[0104]
一、获取第一输入信号对应的第一缩放因子和第二输入信号对应的第二缩放因子。
[0105]
在一种可能的实施方式中,在进行radix运算过程中,需要考虑到每级输入信号对应的缩放因子,由于缩放因子是动态变化的,且存储在buffer中,当对第n级输入信号进行radix运算时,需要从buffer中获取第一输入信号和第二输入信号(第n级输入信号)分别对应的第一缩放因子和第二缩放因子,用于进行radix运算。
[0106]
其中,由于在进行最大信噪比处理过程中,涉及到缩放因子的更新计算,因此,第n级输入信号对应的缩放因子为在进行第n-1级蝶形运算后进行最大信噪比处理后,得到的更新后的缩放因子,并存储在buffer中。
[0107]
二、根据第一输入信号、第二输入信号、第一缩放因子和第二缩放因子,计算得到第一radix运算结果和第二radix运算结果。
[0108]
相比于相关技术中,每级蝶形运算均采用固定的缩放因子,对应的在radix运算过程中,并不涉及到缩放因子,而本申请实施例中,由于缩放因子每级更新,因此,在radix运算过程中将缩放因子作为指数,与第一输入信号和第二输入信号共同进行radix运算。
[0109]
在一个示例性的例子中,以第一radix运算结果为例,radix计算公式可以表示为:
[0110]
r

sj+1
(m)=r
sj
(m)
·
2
s(m)
+r
sj
(n)
·
2
s(n)
[0111]
其中,r

sj+1
(m)表示第一radix运算结果,r
sj
(m)表示第一输入信号,r
sj
(n)表示第二输入信号,s(m)表示第一输入信号对应的第一缩放因子,s(n)表示第二输入信号对应的第二缩放因子。
[0112]
由于蝶形运算上加下减的特征,因此,第二radix运算结果可以表示为:
[0113]
r

sj+1
(n)=r
sj
(m)
·
2
s(m)-r
sj
(n)
·
2
s(n)
[0114]
其中,r

sj+1
(n)表示第二radix运算结果。
[0115]
步骤602,对第一radix运算结果进行最大信噪比处理,得到第一输出信号。
[0116]
由于在radix运算后可以得到两个运算结果,即第一radix运算结果和第二radix运算结果,因此,在对radix运算结果进行最大信噪比处理过程中,也需要分别对这两个radix运算结果进行最大信噪比处理,在一种可能的实施方式中,信号处理器对第一radix运算结果进行最大信噪比处理,可以得到第n级输出信号对应的第一输出信号,用于后续进行相位旋转运算。
[0117]
其中,对第一radix运算结果进行最大信噪比处理的过程可以包括以下步骤:
[0118]
一、获取第一radix运算结果对应的第一实部信号值、第一虚部信号值和第一radix运算结果对应的数据位宽。
[0119]
由于进行最大信噪比处理过程中,需要实时关注radix运算结果对应的数据位宽,且更新缩放因子与radix运算结果有关,因此,在一种可能的实施方式中,对第一radix运算结果进行最大信噪比处理时,首先需要获取第一radix运算结果对应的第一实部信号值和第一虚部信号值,以便用于计算更新后的缩放因子。
[0120]
由于更新缩放因子与第一radix运算结果当前的数据位宽有关,比如,若第一radix运算结果的数据位宽较大,则对应的缩放因子较大,因此,在计算缩放因子时,还需要获取第一radix运算结果对应的数据位宽。
[0121]
在一种可能的实施方式中,信号处理器获取到第一radix运算结果后,需要获取第一radix运算结果对应的第一实部信号值、第二虚部信号值和其对应的数据位宽。
[0122]
二、根据第一实部信号值、第一虚部信号值和第一radix运算结果对应的数据位宽,计算得到第一输出信号对应的缩放因子。
[0123]
在一种可能的实施方式中,当获取到第一radix运算结果对应的第一实部信号值、第一虚部信号值和数据位宽(第一radix运算结果)后,即可以根据缩放因子公式,来计算第一输出信号对应的缩放因子,达到更新缩放因子的目的。
[0124]
在一个示例性的例子中,以第一输出信号为例,缩放因子的计算公式可以表示为:
[0125]
s

(m)=w-2-floor(log2(max(|x
sj
(m)|,|y
sj
(m)|)))
ꢀꢀ
(2)
[0126]
其中,s

(m)为第一输出信号对应的缩放因子(即最大信噪比处理中更新的缩放因子),w为第一radix运算结果对应的数据位宽,x
sj
(m)表示第一radix运算结果对应的第一实部信号值,y
sj
(m)表示第一radix运算结果对应的第一虚部信号值。
[0127]
三、根据第一输出信号对应的缩放因子和第一radix运算结果,计算得到第一输出信号。
[0128]
在一种可能的实施方式中,将更新后的缩放因子作为指数,用于根据第一radix运算结果和更新后的缩放因子计算得到第一输出信号。
[0129]
在一个示例性的例子中,第一输出信号和第一radix运算结果之间的关系可以表示为:
[0130]
r
sj+1
(m)=r

sj+1
(m)
·
2-s

(m)
ꢀꢀ
(3)
[0131]
其中,r
sj+1
(m)表示第一输出信号,r

sj+1
(m)表示第一radix运算结果,s

(m)表示更新后的缩放因子(即第一输出信号对应的缩放因子)。
[0132]
步骤603,对第二radix运算结果进行最大信噪比处理,得到第二输出信号。
[0133]
与上文中对radix运算结果进行最大信噪比处理类似,在信号处理器获取到第二radix运算结果后,不会直接对该第二radix运算结果进行相位旋转运算,而是首先对第二radix运算结果进行最大信噪比处理,从而缩小在radix运算过程中增加的数据位宽,得到最大信噪比处理后的第二输出信号,从而保证第二输出信号的数据位宽低于数据位宽阈值。
[0134]
其中,对第二radix运算结果进行最大信噪比处理的方式可以包括以下步骤:
[0135]
一、获取第二radix运算结果对应的第二实部信号值、第二虚部信号值和第二radix运算结果对应的数据位宽。
[0136]
与上文中对第一radix运算结果进行最大信噪比处理类似,在对第二radix运算结果进行最大信噪比处理过程中,也需要获取第二radix运算结果对应的第二实部信号值、第二虚部信号值和其对应的数据位宽,用于更新缩放因子。
[0137]
二、根据第二实部信号值、第二虚部信号值和第二radix运算结果对应的数据位宽,计算得到第二输出信号对应的缩放因子。
[0138]
在一种可能的实施方式中,当获取到第二radix运算结果对应的第二实部信号值、第二虚部信号值和数据位宽后,即可以根据缩放因子的公式,计算得到第二输出信号对应的缩放因子,实现更新缩放因子的目的。
[0139]
在一个示例性的例子中,第二输出信号对应的缩放因子的计算公式可以为:
[0140]
s

(n)=w-2-floor(log2(max(|x
sj
(n)|,|y
sj
(n)|)))
[0141]
其中,s

(n)表示第二输出信号对应的缩放因子(即最大信噪比处理过程中更新的缩放因子),w表示第二radix运算结果对应的数据位宽,x
sj
(n)表示第二radix运算结果对应的第二实部信号值,y
sj
(n)表示第二radix运算结果对应的第二虚部信号值。
[0142]
三、根据第二输出信号对应的缩放因子和第二radix运算结果,计算得到第二输出信号。
[0143]
在一种可能的实施方式中,将更新后的缩放因子作为指数,用于根据第二radix运算结果和更新后的缩放因子,计算得到最大信噪比处理后的第二输出信号。
[0144]
在一个示例性的例子中,第二输出信号和第二radix运算结果之间的关系可以表示为:
[0145]
r
sj+1
(n)=r

sj+1
(n)
·
2-s

(n)
[0146]
其中,r
sj+1
(n)表示第二输出信号,r

sj+1
(n)表示第二radix运算结果,s

(n)表示更新后的缩放因子(即第二输出信号对应的缩放因子)。
[0147]
在一个示例性的例子中,如图7所示,其示出了本申请一个示例性实施例示出的radix运算的示意图。以j表示第j级蝶形运算,其中,r
sj
(m)表示第j级输入信号对应的第一输入信号,r
sj
(n)表示第j级输入信号对应的第二输入信号,s(m)表示第一输出信号对应的第一缩放因子,s(n)表示第二输出信号对应的第二缩放因子,r
sj+1
(m)表示第j级输出信号对应的第一输出信号,r
sj+1
(n)表示第j级输出信号对应的第二输出信号,s

(m)表示第一输出信号对应的缩放因子(最大信噪比处理过程中更新的缩放因子),s

(n)表示第二输出信号对应的缩放因子(最大信噪比处理过程中更新的缩放因子)。其中,由r
sj
(m)、r
sj
(n)到r
sj+1
(m)、r
sj+1
(n)的过程可以参考上文实施例。
[0148]
步骤604,对第一输出信号进行相位旋转运算,得到第一相位旋转运算结果。
[0149]
其中,第一输出信号为第一radix运算结果经过最大信噪比处理后的信号。
[0150]
针对相位旋转运算过程,存在两种情况,一种是无需经过复数乘法运算,一种是需要经过复数乘法运算,其中,经过乘法运算后可能带来数据位宽的增加,因此,在相位旋转运算单元后还需要进行最大信噪比处理,另外针对不需要经过复数乘法运算的情况,可以不需要进行最大信噪比处理,也可以进行最大信噪比处理,可以进一步缩小数据位宽。
[0151]
在一个示例性的例子中,针对需要进行复数乘法运算的相位旋转单元,相位旋转运算结果的计算公式可以表示为:
[0152][0153]
其中,r

sj+1
(m)表示第一相位旋转运算结果,r
sj
(m)为第一输出信号(即经过最大信噪比处理的第一radix运算结果),为fft中的旋转因子,
[0154]
步骤605,对第二输出信号进行相位旋转运算,得到第二相位旋转运算结果。
[0155]
其中,第二输出信号即对第二radix运算结果进行最大信噪比处理后的信号。
[0156]
针对第二相位旋转运算结果的计算方式可以参考第一相位旋转运算结果,本实施例在此不做赘述。
[0157]
步骤606,对第一相位旋转运算结果进行最大信噪比处理,得到第n+1级输入信号对应的第一输入信号。
[0158]
与radix运算类似,不同于相关技术中,直接将相位旋转运算结果作为下一级蝶形运算的输入信号,本申请实施例为了避免数据位宽的增加,需要对相位旋转运算结果进行最大信噪比处理。
[0159]
在一种可能的实施方式中,当信号处理器获取到第一相位旋转运算结果后,将第一相位旋转运算结果进行最大信噪比处理,得到下一级蝶形运算的第一输入信号,即第n+1级输入信号中的第一输入信号。
[0160]
在一种可能的实施方式中,对第一相位旋转运算结果进行最大信噪比处理的过程可以包括以下步骤:
[0161]
一、获取第一相位旋转运算结果对应的第三实部信号值、第三虚部信号值和第一相位旋转运算结果对应的数据位宽。
[0162]
与对radix运算结果进行最大信噪比处理类似,在对相位旋转运算结果进行最大信噪比处理时,也需要获取第一相位旋转运算结果对应的实部信号值和虚部信号值和数据位宽,用于更新缩放因子,即获取第一相位旋转运算结果对应的第三实部信号值、第三虚部信号值和其对应的数据位宽。
[0163]
二、根据第三实部信号值、第三虚部信号值和第一相位旋转运算结果对应的数据位宽,计算得到第n+1级输入信号中第一输入信号对应的第一缩放因子。
[0164]
其中,蝶形运算过程中,每级数据位宽动态变化,不同级数据位宽可能存在差异,但是需要保证各级数据位宽均低于数据位宽阈值。
[0165]
在一种可能的实施方式中,将第三实部信号值、第三虚部信号值和第一相位旋转运算结果对应的数据位宽输入预设的缩放因子计算公式中,可以计算得到第n+1级输入信号中第一输入信号对应的缩放因子,即得到将第一相位旋转算结果进行最大信噪比处理后更新的缩放因子。
[0166]
其中,缩放因子计算公式可以参考上文实施例中的公式(2),本实施例在此不做赘述。
[0167]
三、根据第n+1级输入信号中第一输入信号对应的第一缩放因子和第一相位旋转运算结果,计算得到第n+1级输入信号对应的第一输入信号。
[0168]
在一种可能的实施方式中,对第一相位旋转运算结果进行最大信噪比处理时,将更新后的缩放因子作为指数,与第一相位旋转运算结果进行运算,从而得到最大信噪比处理后的信号,即第n+1级输入信号对应的第一输入信号。
[0169]
其中,根据第一相位旋转运算结果计算第一输出信号的公式可以参考上文实施例中的公式(3),本申请实施例在此不做赘述。
[0170]
步骤607,对第二相位旋转运算结果进行最大信噪比处理,得到第n+1级输入信号对应的第二输入信号。
[0171]
与上文实施例中对第一相位旋转运算结果进行最大信噪比处理类似,在信号处理器获取到第二相位旋转运算结果后,还需要对第二相位旋转运算结果进行最大信噪比处理,再用于后续第n+1级蝶形运算的输入。
[0172]
其中,对第二相位旋转运算结果进行最大信噪比处理的方式可以包括以下步骤:
[0173]
一、获取第二相位旋转运算结果对应的第四实部信号值、第四虚部信号值和第二相位旋转运算结果对应的数据位宽。
[0174]
由于在对第二相位旋转运算结果进行最大信噪比处理过程中,涉及到缩放因子的更新,而缩放因子的更新过程需要信号值和数据位宽的参与,因此,在一种可能的实施方式中,在对第二相位旋转运算结果进行最大信噪比处理过程中,需要获取第二相位旋转运算结果对应的第四实部信号值、第四虚部信号值以及其对应的数据位宽,用于计算更新后的缩放因子。
[0175]
二、根据第四实部信号值、第四虚部信号值和第二相位旋转运算结果对应的数据位宽,计算得到第n+1级输入信号中第二输入信号对应的第二缩放因子。
[0176]
在一种可能的实施方式中,当信号处理器获取到第四实部信号值、第四虚部信号值和第二相位旋转运算结果对应的数据位宽后,即可以将上述三个数据带入预设的缩放因子公式,从而计算得到更新后的缩放因子,即第n+1级输入信号中第二输入信号对应的第二缩放因子。
[0177]
其中,根据实部信号值、虚部信号值和数据位宽计算缩放因子的公式可以参考上文实施例,本实施例在此不做赘述。
[0178]
三、根据第n+1级输入信号中第二输入信号对应的第二缩放因子和第二相位旋转运算结果,计算得到第n+1级输入信号对应的第二输入信号。
[0179]
在一种可能的实施方式中,当获取到更新后的缩放因子后,即可以根据该缩放因子和第二相位旋转运算结果,计算得到第n+1级输入信号对应的第二输入信号。
[0180]
其中,根据相位旋转运算结果、缩放因子计算信号值的公式可以参考上文实施例,本实施例在此不做赘述。
[0181]
在一个示例性的例子中,如图8所示,其示出了本申请一个示例性实施例示出的相位旋转运算的示意图。其中,r
sj
(m)表示第j级蝶形运算中第一输出信号(即输入相位旋转运算单元的信号),s(m)表示第一输出信号对应的缩放因子,r
sj+1
(m)表示r
sj
(m)经过相位旋转运算和最大信噪比处理后的第一输出信号,s

(m)表示第一输出信号对应的缩放因子,表示旋转因子,在相位旋转运算后进行最大信噪比处理,涉及到缩放因子的更新,即缩放因子由s(m)更新为s

(m)。
[0182]
本实施例中,描述了在radix运算和相位旋转运算过程中进行最大信噪比处理的过程,相比于相关技术中,通过对radix运算结果进行最大信噪比处理,可以避免在radix运算过程中数据位宽的增加,同时对相位旋转运算结果进行最大信噪比处理,可以避免在相位旋转运算过程中数据位宽的增加,从而避免fft实现过程中数据位宽的增加对信号处理器处理资源的占用,进而降低了fft的实现成本。
[0183]
需要说明的是,本申请实施例仅以fft为例进行示例性说明,在其他可能的实施方式中,在ifft过程中,也同样适用本申请实施例提供的各种信号处理方法。
[0184]
请参考图9,其示出了本申请一个示例性实施例提供的信号处理器的结构框图。该信号处理器900包括采样单元901、第一最大信噪比处理单元902、快速傅里叶变换运算单元903和第二最大信噪比处理单元904。
[0185]
采样单元901用于获取初始采样信号;
[0186]
第一最大信噪比处理单元902用于对所述初始采样信号进行最大信噪比处理,得到输入信号;
[0187]
快速傅里叶变换运算单元903和第二最大信噪比处理单元904用于对所述输入信
号进行处理,得到输出信号。
[0188]
可选的,所述快速傅里叶变换运算包括k级蝶形运算,k为正整数,且与所述初始采样信号的个数有关;
[0189]
快速傅里叶变换运算单元903和第二最大信噪比处理单元904还用于:
[0190]
对所述输入信号进行k级蝶形运算,并在各级蝶形运算过程中进行最大信噪比处理,得到所述输出信号。
[0191]
可选的,所述蝶形运算包括基radix运算和相位旋转运算;
[0192]
快速傅里叶变换运算单元903和第二最大信噪比处理单元904还用于:
[0193]
对第n级输入信号进行radix运算,得到第n级radix运算结果,n为正整数,所述第n级输入信号是第n级蝶形运算的输入信号;
[0194]
对所述第n级radix运算结果进行最大信噪比处理,得到第n级输出信号;
[0195]
对所述第n级输出信号进行相位旋转运算,得到第n级相位旋转运算结果;
[0196]
对所述第n级相位旋转运算结果进行最大信噪比处理,得到第n+1级输入信号,其中,将对第k级相位旋转运算结果进行最大信噪比处理后得到的输入信号确定为所述输出信号。
[0197]
快速傅里叶变换运算单元903和第二最大信噪比处理单元904还用于:
[0198]
对所述第一输入信号和所述第二输入信号进行radix运算,得到第一radix运算结果和第二radix运算结果;
[0199]
对所述第一radix运算结果进行最大信噪比处理,得到所述第一输出信号;
[0200]
对所述第二radix运算结果进行最大信噪比处理,得到所述第二输出信号;
[0201]
对所述第一输出信号进行相位旋转运算,得到第一相位旋转运算结果;
[0202]
对所述第二输出信号进行相位旋转运算,得到第二相位旋转运算结果;
[0203]
对所述第一相位旋转运算结果进行最大信噪比处理,得到所述第n+1级输入信号对应的第一输入信号;
[0204]
对所述第二相位旋转运算结果进行最大信噪比处理,得到所述第n+1级输入信号对应的第二输入信号。
[0205]
可选的,快速傅里叶变换运算单元903还用于:
[0206]
获取所述第一输入信号对应的第一缩放因子和所述第二输入信号对应的第二缩放因子;
[0207]
根据所述第一输入信号、所述第二输入信号、所述第一缩放因子和所述第二缩放因子,计算得到所述第一radix运算结果和所述第二radix运算结果。
[0208]
可选的,第二最大信噪比处理单元904还用于:
[0209]
获取所述第一radix运算结果对应的第一实部信号值、第一虚部信号值和所述第一radix运算结果对应的数据位宽;
[0210]
根据所述第一实部信号值、所述第一虚部信号值和所述第一radix运算结果对应的,计算得到所述第一输出信号对应的缩放因子;
[0211]
根据所述第一输出信号对应的缩放因子和所述第一radix运算结果,计算得到所述第一输出信号;
[0212]
可选的,第二最大信噪比处理单元904还用于:
[0213]
获取所述第二radix运算结果对应的第二实部信号值、第二虚部信号值和所述第二radix运算结果对应的数据位宽;
[0214]
根据所述第二实部信号值、所述第二虚部信号值和所述第二radix运算结果对应的数据位宽,计算得到所述第二输出信号对应的缩放因子;
[0215]
根据所述第二输出信号对应的缩放因子和所述第二radix运算结果,计算得到所述第二输出信号。
[0216]
可选的,第二最大信噪比处理单元904还用于:
[0217]
获取所述第一相位旋转运算结果对应的第三实部信号值和第三虚部信号值和所述第一相位旋转运算结果对应的数据位宽;
[0218]
根据所述第三实部信号值、第三虚部信号值和所述第一相位旋转运算结果对应的数据位宽,计算得到所述第n+1级输入信号中第一输入信号对应的第一缩放因子;
[0219]
根据所述第n+1级输入信号中第一输入信号对应的第一缩放因子和所述第一相位旋转运算结果,计算得到所述第n+1级输入信号对应的第一输入信号。
[0220]
可选的,第二最大信噪比处理单元904还用于:
[0221]
获取所述第二相位旋转运算结果对应的第四实部信号值、第四虚部信号值和所述第二相位旋转运算结果对应的数据位宽;
[0222]
根据所述第四实部信号值、所述第四虚部信号值和所述第二相位旋转运算结果对应的数据位宽,计算得到所述第n+1级输入信号中第二输入信号对应的第二缩放因子;
[0223]
根据所述第n+1级输入信号中第二输入信号对应的第二缩放因子和所述第二相位旋转运算结果,计算得到所述第n+1级输入信号对应的第二输入信号。
[0224]
可选的,第一最大信噪比处理单元902还用于:
[0225]
根据所述初始实部信号值、所述初始虚部信号值和初始数据位宽,计算所述输入信号对应的初始缩放因子,所述初始数据位宽为所述初始采样信号对应的采样位宽;
[0226]
根据所述初始采样信号和所述初始缩放因子,计算得到所述输入信号。
[0227]
本申请实施例中,在fft实现过程中,通过对初始采样信号进行最大信噪比处理,减少fft过程中的定点化损失,并在fft过程中通过最大信噪比处理缩小数据位宽,可以避免数据位宽随每级计算不断增加而导致数据位宽的溢出,从而避免了fft实现过程中数据位宽不断增加对信号处理器的处理资源的占用,进而降低了fft的实现成本。
[0228]
请参考图10,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。
[0229]
所述计算机设备1000包括信号处理器1001和存储器1002。信号处理器1001可以是dsp,也可以是asic,本申请实施例对此不构成限定,当信号处理器1001运行时可以用于实现如上文各个实施例所示的信号处理方法。
[0230]
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的信号处理方法。
[0231]
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的信号处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该
计算机设备执行上述方面的各种可选实现方式中提供的信号处理方法。
[0232]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0233]
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1