信号处理方法、装置及旋转因子的优化方法和终端设备与流程

文档序号:32849508发布日期:2023-01-06 22:52阅读:155来源:国知局
信号处理方法、装置及旋转因子的优化方法和终端设备与流程

1.本技术涉及信号处理技术领域,尤其涉及一种信号处理方法、装置及旋转因子的优化方法和终端设备。


背景技术:

2.离散傅里叶变换(dft)广泛应用于通讯,信号处理,图像处理,科学计算等各种涉及对信号进行处理的技术领域,其中,快速傅里叶变换(fft)是离散傅里叶变换(dft)的快速计算方法,其利用傅里叶变换中旋转因子的周期性,共轭性等特性,实现了傅里叶变换的快速计算。
3.在傅里叶变换计算过程中,需要计算一系列的旋转因子,所谓旋转因子,即在一个给定的周期n下任意给定角度θ的单位复数,其实部为θ角的余弦(cos),虚部为θ角的正弦(sin)。对于旋转因子,通常有两种计算方法,一是在变换过程中直接计算,二是预先将一系列的旋转因子计算好,然后在变换过程中,通过查表法读取旋转因子。
4.然而针对现有的两种方案,一方面,计算每一个旋转因子,都需要计算正弦值和余弦值,这是一个计算量较大的操作;另一方面,查表法会导致频繁访问内存,由此,无论是直接计算还是通过预先计算然后查表,旋转因子的计算在快速傅里叶变换中均占用了较大比重的计算时间。


技术实现要素:

5.有鉴于此,本技术实施例提供一种信号处理方法、装置及旋转因子的优化方法和终端设备,可以在快速傅里叶变换过程中有效减少计算开销的同时,还保证计算精度等。
6.第一方面,本技术实施例提供一种信号处理方法,包括:根据目标信号的序列长度,确定单位因子,所述单位因子为索引值等于1的旋转因子;根据所述单位因子按照旋转因子递推公式,依次计算索引值大于等于2的各个旋转因子;基于计算的所述旋转因子对所述目标信号的序列进行快速傅里叶变换,得到变换结果。
7.在一些实施例中,所述根据目标信号的序列长度,确定单位因子,包括:在目标信号的序列长度小于预设阈值时,利用欧拉公式中的余弦项和正弦项分别计算索引值等于1的旋转因子的余弦值和正弦值;在目标信号的序列长度大于等于所述预设阈值时,利用所述余弦项的半角转换公式计算所述余弦值,以及利用所述正弦项计算所述正弦值。
8.在一些实施例中,所述预设阈值的取值范围为 7~12。
9.在一些实施例中,所述索引值等于1的旋转因子的计算表达式如下:
;式中,表示目标信号的序列长度,表示索引值等于1的旋转因子。
10.在一些实施例中,在索引值大于等于2时,所述递推公式基于前一旋转因子和所述单位因子进行复数相乘构建得到;所述递推公式表示为:;式中,和分别表示索引值等于和的旋转因子,表示单位因子,k为最大索引值。
11.在一些实施例中,基于计算的所述旋转因子对所述目标信号的序列进行快速傅里叶变换,之前还包括:将索引值等于0的旋转因子赋值为预设常数。
12.第二方面,本技术实施例提供一种旋转因子的优化方法,应用于信号处理的快速傅里叶变换中,所述方法包括:将索引值等于0的旋转因子赋值为预设常数;将索引值等于1的旋转因子作为单位因子,并根据目标信号的序列长度的不同,构建所述单位因子的计算公式;对于索引值大于等于2的旋转因子,基于所述单位因子和前一旋转因子,构建用于计算后一旋转因子的递推公式。
13.第三方面,本技术实施例提供一种信号处理装置,包括:确定模块,用于根据目标信号的序列长度,确定单位因子,所述单位因子为索引值等于1的旋转因子;计算模块,用于根据所述单位因子按照旋转因子递推公式,依次计算索引值大于等于2的各个旋转因子;变换模块,用于基于计算的所述旋转因子对所述目标信号的序列进行快速傅里叶变换,得到变换结果。
14.第四方面,本技术实施例提供一种终端设备,所述终端设备包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施所述的方法。
15.第五方面,本技术实施例提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上执行时,实施所述的方法。
16.本技术的实施例具有如下有益效果:本技术实施例的信号处理方法通过根据目标信号的序列长度的大小来确定索引值等于1的旋转因子,并将其作为单位因子,以保证计算精度;同时,结合旋转因子递推公式来计算其他旋转因子,最后基于这些旋转因子来进行快速傅里叶变换,最终得到该目标信号的序列的变换结果。其中,通过复数运算来即时计算出大部分旋转因子,相比现有技术中的完全采用三角函数来计算每个旋转因子的方案,本方案可以大大降低计算开销,而相比现有的查表法来读取预先存储的旋转因子的方案,一来可以节省存储空间,二来还可以有
效减少访存开销等。
附图说明
17.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
18.图1示出了本技术实施例终端设备的一种结构示意图;图2示出了本技术实施例信号处理方法的流程图;图3示出了本技术实施例的单位因子的计算方法的流程图;图4示出了本技术实施例的旋转因子的优化方法的流程图;图5示出了本技术实施例信号处理装置的一种结构示意图。
具体实施方式
19.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。
20.通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
21.在下文中,可在本技术的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
22.除非另有限定,否则这里使用的所有术语(包括技术术语和科学术语)具有与本技术的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本技术的各种实施例中被清楚地限定。
23.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互结合。
24.在现有的旋转因子计算方案中,若直接通过三角函数(sin和cos)来计算,会增加计算开销;若通过预先计算并存储于内存中,再通过查表法来读取以进行快速傅里叶变换,由于每个周期都需要使用这些旋转因子,会导致频繁地访问内存。特别地,尤其是在一些gpu等高性能并行计算环境中,若是频繁查表,会造成大量且并发的对全局内存的访问,极大限制了gpu计算性能的发挥;若是直接计算,在gpu硬件体系中,是通过特殊函数单元(sfu)来完成如三角函数等这类运算,并且通常需要几十个时钟周期才能完成,而局限于
sfu的硬件复杂性,gpu中通常设计为多个计算单元共用一个sfu,导致用于计算的资源非常有限。
25.为此,结合快速傅里叶变换中旋转因子的角度满足连续变化的特点,本技术提出一种信号处理方法,主要针对旋转因子的计算进行了优化,可应用于如图像处理、信号处理、通讯等需要进行快速傅里叶变换的各种场景中,可以使得通常需要几十个时钟周期(sfu计算或访存操作)才能完成的旋转因子的计算,在本方法中能够通过几个复数加、乘的单周期指令即可完成,相比现有的两种方案,在保证计算精度的情况下,可以有效减少计算开销或访存开销,从而提高快速傅里叶变换的计算效率,提高信号处理速度。
26.下面结合一些具体的实施例来对该信号处理方法进行说明。
27.图1所示为本技术实施例提供的一种终端设备的结构示意图。例如,该终端设备可以但不限于为如台式计算机、笔记本、智能手机、平板等,其存在形式不作限定。示范性地,该终端设备包括处理器11和存储器12,其中,存储器12存储有计算机程序,处理器11通过运行所述计算机程序,以使终端设备执行本技术的信号处理方法,进而实现各种信号处理场景下的快速傅里叶变换操作,可以在保证计算精度的情况下,有效降低快速傅里叶变换过程中的计算开销及访存开销,进而提高了信号处理效率。
28.其中,处理器11可以是一种具有信号的处理能力的集成电路芯片。处理器11可以是通用处理器,包括中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)及网络处理器(network processor,np)、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件中的至少一种。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。
29.其中,存储器12可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。其中,存储器用于存储计算机程序,处理器在接收到执行指令后,可相应地执行所述计算机程序。
30.基于上述的终端设备,下面对本技术的信号处理方法进行详细说明。
31.图2示出了本技术实施例的信号处理方法的一种流程图。示范性地,该信号处理方法应用于快速傅里叶变换中,包括以下步骤:步骤s110,根据目标信号的序列长度,确定单位因子,所述单位因子为索引值等于1的旋转因子。
32.其中,该目标信号可以包括不但限于为,如通讯等不同场景下的语音信号、图像信号等,通过对于这些信号采用离散化手段来得到对应的信号序列。其中,序列长度即指该序列所包含的点数的数量,通常记为n。
33.其中,每个旋转因子都用表示,其中,右侧的下标数字n表示蝶形点数,等于序列长度;上标数字k表示旋转因子的索引值,其中,k的取值为0,1,2,

,k,k为最大索引值。
本实施例中,通过定义一个单位因子,具体而言,将索引值等于1的旋转因子作为该单位因子,以便利用预设的递推算法来计算除索引值等于0和1以外的其他旋转因子。需要注意的是,本实施例将根据序列长度的大小,来确定该单位因子的计算公式,当序列长度不同时,其计算公式也会不同,以此保证计算的准确性。
34.这是由于,旋转因子采用欧拉公式形式表示,即有,其中,表示余弦项,表示正弦项,在知晓序列长度n及索引值k的情况下,利用该欧拉公式可以分别计算出对应旋转因子的余弦值和正弦值。于是,对于单位因子,在实际的fft运算中分析可知,当n足够大时,中的接近于1,如0.999999999

,其有效位数均由9占据,若采用本技术的递推算法进行其他旋转因子的计算,这时,中的计算误差会通过递推公式进行逐级放大,使得最终的fft计算结果出现很大偏差。对此,本技术提出补1格式的思路,即将中的表示为与1的差的形式来描述,具体而言,对于中的部分,将其转化为采用半角的sin表示,而sin接近于0,因此可以使得精度得到较好的保持。
35.在一种实施方式中,如图3所示,步骤s110包括以下子步骤:子步骤s111,判定目标信号的序列长度是否小于预设阈值。
36.若小于,则执行子步骤s112,若大于等于,则执行子步骤s113。
37.子步骤s112,在目标信号的序列长度小于预设阈值时,利用欧拉公式中的余弦项和正弦项分别计算索引值等于1的旋转因子的余弦值和正弦值。
38.其中,该预设阈值主要是用于确定该序列长度是否会引起较大偏差时的一个长度取值。例如,当n小于该预设阈值,则表明此时的n较小,不会引起较大计算误差或计算结果在允许的误差范围内,故可以利用原始的欧拉公式来计算该单位因子的余弦值和正弦值。
39.子步骤s113,在目标信号的序列长度大于等于预设阈值时,利用欧拉公式中的余弦项的半角转换公式计算索引值等于1的旋转因子的余弦值,以及利用欧拉公式中的正弦项计算索引值等于1的旋转因子的正弦值。
40.反之,当n大于等于该预设阈值时,则表明此时的n较大,为避免采用递推公式而引起计算结果的较大偏差,这里将对单位因子的欧拉公式中的余弦项进行转换,即依据半角转换公式,于是,转换后的公式即用于计算单位因子的余弦值。在一种实施方式中,对于上述两种情况,该单位因子的计算公式可表示为:。
41.由上述产生误差的分析可知,本实施例将对序列长度n进行区别处理,其中,对于满足》0.9的n应当采用补1格式。当然,在实际运用中,为方便计算,该预设阈值的取值范围可以设为7~12之间,具体可根据实际需求来选取。可以理解,当n》6时,单位因子的cos值开始大于0.5,采用补1格式则小于0.5,此时不会引入较大误差。例如,在一种可选的方中,预设阈值可选取为8,当n》8时,单位因子的cos值开始大于sin值,此时的误差会更小。
42.步骤s120,根据单位因子按照旋转因子递推公式,计算索引值大于等于2的所需旋转因子。
43.在快速傅里叶变换中,由于旋转因子的角度均是连续变化的,为此,本实施例利用旋转因子的连续性,通过递推的方式来计算其他旋转因子,具体而言,是利用前一旋转因子通过复数乘法来计算后一旋转因子。
44.在一种实施方式中,在索引值大于等于2时,该旋转因子递推公式可基于前一旋转因子和所述单位因子进行复数相乘构建得到。若通过表达式表示,即有:;式中,和分别表示索引值等于和的旋转因子,表示单位因子,k为最大索引值。
45.进一步可选地,对于索引值k=0时的旋转因子,根据对应的欧拉公式可知,的角度为0,因此,可以直接将旋转因子赋值为预设常数,即(1,0),以进一步减少计算开销。
46.可以理解,通过上述的对直接赋值、单位因子的计算公式以及递推公式,可以分别得到索引值k=0,1,2,

,k的所有旋转因子。
47.步骤s130,基于计算的旋转因子对目标信号的序列进行快速傅里叶变换,得到变换结果。
48.本实施例中,在进行快速傅里叶变换时,只需对上述的单位因子的计算公式以及递推公式进行存储,当需要除0外的索引值的旋转因子时,可通过实时的复数运算得到,然后进行蝶形运算操作,最终得到该目标信号的序列的快速傅里叶变换结果。关于如何利用旋转因子进行快速傅里叶变换,具体可以参见公开的相关文献,由于不是本技术的重点,故这里不展开描述。
49.基于上述的信号处理方法,结合旋转因子的欧拉公式描述以及在快速傅里叶变换中旋转因子的角度是连续的特性,本技术提出一种旋转因子的优化方法,可以应用于对各种信号进行快速傅里叶变换处理的场景中。下面对该优化方法旋转因子的步骤进行简要说明。
50.如图4所示,该旋转因子的优化方法,包括:s210,将索引值等于0的旋转因子赋值为预设常数,即(1,0);s220,将索引值等于1的旋转因子作为单位因子,并根据目标信号的序列长度
的不同,构建单位因子的计算公式。
51.在一种实施方式中,单位因子的计算表达式如下:。
52.s230,对于索引值大于等于2的旋转因子,基于单位因子和前一旋转因子,构建用于计算后一旋转因子的递推公式。
53.对于索引值大于等于2的旋转因子,可基于单位因子和前一旋转因子进行复数相乘来计算得到后一旋转因子,此时的递推公式满足:。
54.本技术的信号处理方法通过根据目标信号的序列长度的大小来确定索引值等于1的旋转因子,并将其作为单位因子,这样只需要采用一次三角函数计算出该单位因子;此外,结合序列的长度大小来计算单位因子,还可以保证计算精度;同时,结合旋转因子递推公式来计算其他旋转因子,最后基于这些旋转因子来进行快速傅里叶变换,最终得到该目标信号的序列的变换结果。其中,通过复数运算来即时计算出大部分旋转因子,相比现有技术中的完全采用三角函数来计算每个旋转因子的方案,本方案可以大大降低计算开销,而相比现有的查表法来读取预先存储的旋转因子的方案,一来可以节省存储空间,二来还可以有效减少访存开销等。
55.图5示出了本技术实施例的信号处理装置的一种结构示意图。示范性地,该信号处理装置包括:确定模块110,用于根据目标信号的序列长度,确定单位因子,所述单位因子为索引值等于1的旋转因子;计算模块120,用于根据所述单位因子按照旋转因子递推公式,依次计算索引值大于等于2的各个旋转因子;变换模块130,用于基于计算的所述旋转因子对所述目标信号的序列进行快速傅里叶变换,得到变换结果。
56.可以理解,本实施例的装置对应于上述实施例的信号处理方法,上述实施例中的可选项同样适用于本实施例,故在此不再重复描述。
57.本技术还提供了一种可读存储介质,用于储存上述终端设备中使用的所述计算机程序。
58.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也
可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
59.另外,在本技术各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
60.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
61.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1