CN114090948A - 旋转因子确定方法及装置、电子设备、存储介质 - Google Patents

旋转因子确定方法及装置、电子设备、存储介质 Download PDF

Info

Publication number
CN114090948A
CN114090948A CN202111187747.9A CN202111187747A CN114090948A CN 114090948 A CN114090948 A CN 114090948A CN 202111187747 A CN202111187747 A CN 202111187747A CN 114090948 A CN114090948 A CN 114090948A
Authority
CN
China
Prior art keywords
twiddle factor
butterfly operation
target
butterfly
twiddle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111187747.9A
Other languages
English (en)
Inventor
刘福良
房旭
马骏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zeku Technology Beijing Corp Ltd
Original Assignee
Zeku Technology Beijing Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zeku Technology Beijing Corp Ltd filed Critical Zeku Technology Beijing Corp Ltd
Priority to CN202111187747.9A priority Critical patent/CN114090948A/zh
Publication of CN114090948A publication Critical patent/CN114090948A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

一种旋转因子确定方法及装置、电子设备、存储介质,该方法应用于电子设备,该方法包括:根据电子设备的蝶形运算模块所支持的最大并行度和初始数据对应的变换点数,获取该蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息,其中,变换点数用于定义对初始数据进行傅里叶变换的采样点数;根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,其中,目标蝶形运算级别为蝶形运算模块调用的任一蝶形运算级别,旋转因子查找表包括预先根据最大变换点数确定的各个旋转因子。实施本申请实施例,能够提高电子设备计算傅里叶变换的效率,进而提高电子设备的通信性能。

Description

旋转因子确定方法及装置、电子设备、存储介质
技术领域
本申请涉及移动通信技术领域,尤其涉及一种旋转因子确定方法及装置、电子设备、存储介质。
背景技术
当前,电子设备(例如智能手机、电脑、基站等)在进行通信时,通常需要通过收发机等装置来对通信数据进行处理。在对通信数据进行处理的过程中,傅里叶变换(FourierTransform)是必要且需多次进行的计算步骤。然而,在实践中发现,当需要对通信数据进行大量傅里叶变换的情况下,电子设备往往无法及时提供变换计算过程中所需的旋转因子(Twiddle Factor),从而导致电子设备计算傅里叶变换的效率下降,进而降低了电子设备的通信性能。
发明内容
本申请实施例公开了一种旋转因子确定方法及装置、电子设备、存储介质,能够为电子设备并行提供其计算傅里叶变换所需的旋转因子,从而提高电子设备计算傅里叶变换的效率,进而提高电子设备的通信性能。
本申请实施例第一方面公开一种旋转因子确定方法,应用于电子设备,所述方法包括:
根据所述电子设备的蝶形运算模块所支持的最大并行度和初始数据对应的变换点数,获取所述蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息,其中,所述变换点数用于定义对所述初始数据进行傅里叶变换的采样点数;
根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取所述目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,所述各个旋转因子用于在所述目标蝶形运算级别包含的蝶形单元中,对进行傅里叶变换前或变换后的数据并行进行相位旋转,其中,所述目标蝶形运算级别为所述蝶形运算模块调用的任一蝶形运算级别,所述旋转因子查找表包括预先根据最大变换点数确定的各个旋转因子。
本申请实施例第二方面公开一种旋转因子确定装置,应用于电子设备,所述旋转因子确定装置包括:
第一获取单元,用于根据所述电子设备的蝶形运算模块所支持的最大并行度和初始数据对应的变换点数,获取所述蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息,其中,所述变换点数用于定义对所述初始数据进行傅里叶变换的采样点数;
第二获取单元,用于根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取所述目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,所述各个旋转因子用于在所述目标蝶形运算级别包含的蝶形单元中,对进行傅里叶变换前或变换后的数据并行进行相位旋转,其中,所述目标蝶形运算级别为所述蝶形运算模块调用的任一蝶形运算级别,所述旋转因子查找表包括预先根据最大变换点数确定的各个旋转因子。
本申请实施例第三方面公开了一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如本申请实施例第一方面公开的任意一种旋转因子确定方法中的全部或部分步骤。
本申请实施例第四方面公开了一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序被处理器执行时实现如本申请实施例第一方面公开的任意一种旋转因子确定方法中的全部或部分步骤。
与相关技术相比,本申请实施例具有以下有益效果:
本申请实施例中,应用旋转因子确定方法的电子设备可以根据该电子设备的蝶形运算模块所支持的最大并行度以及待进行傅里叶变换的初始数据对应的变换点数,获取该蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息。其中,上述变换点数可以用于定义对初始数据进行傅里叶变换的采样点数。在此基础上,电子设备可以根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取该目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,该各个旋转因子用于在上述目标蝶形运算级别包含的蝶形单元中,对进行傅里叶变换前或变换后的数据并行进行相位旋转,其中,目标蝶形运算级别可以为上述蝶形运算模块调用的任一蝶形运算级别,上述旋转因子查找表则包括预先根据最大变换点数确定的各个旋转因子。可见,实施本申请实施例,当电子设备在通信过程中需要对初始数据进行傅里叶变换时,能够根据其内置的蝶形运算模块所支持的最大并行度,并行地确定出相应数量的旋转因子,从而可以为该电子设备及时、高效地提供其计算傅里叶变换所需的旋转因子,以提高该电子设备计算傅里叶变换的效率,进而可以加快电子设备在通信过程中处理通信数据的效率,有效提高了电子设备的通信性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图进行简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例公开的一种旋转因子确定方法的应用场景示意图;
图2A是本申请实施例公开的一种电子设备的结构示意图;
图2B是本申请实施例公开的一种电子设备的结构示意图;
图3是本申请实施例公开的一种旋转因子确定方法的流程示意图;
图4是本申请实施例公开的另一种旋转因子确定方法的流程示意图;
图5A是本申请实施例公开的一种蝶形运算模块的结构示意图;
图5B是本申请实施例公开的另一种蝶形运算模块的结构示意图;
图6是本申请实施例公开的又一种旋转因子确定方法的流程示意图;
图7是本申请实施例公开的一种旋转因子确定装置的模块化示意图;
图8是本申请实施例公开的一种电子设备的模块化示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例的术语“包括”和“具有”及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例公开了一种旋转因子确定方法及装置、电子设备、存储介质,能够为电子设备并行提供其计算傅里叶变换所需的旋转因子,从而提高电子设备计算傅里叶变换的效率,进而提高电子设备的通信性能。
以下将结合附图进行详细描述。
请参阅图1,图1是本申请实施例公开的一种旋转因子确定方法的应用场景示意图,可以包括移动通信场景下的电子设备100。示例性地,上述电子设备100可以包括具备通信功能的各类终端设备或系统,例如智能手机、智能可穿戴设备、车载终端、平板电脑、PC(Personal Computer,个人电脑)、PDA(Personal Digital Assistant,个人数字助理)、电视等。可选地,电子设备100也可以包括基站、中继站、路由器等具备通信数据传输(尤其是中继收发)功能的设备或系统。
举例来说,如图1所示,应用该旋转因子确定方法的电子设备100可以包括智能手机101、102以及基站103,其中,智能手机101可以通过基站103与智能手机102进行通信。具体地,智能手机101、102可以分别与基站103建立通信连接,从而可以基于该通信连接,分别与基站103进行通信数据传输。在一些实施例中,上述基站103可以仅包括一个,即智能手机101和102可以分别与同一基站103进行通信,由该基站103将智能手机101所发出的通信数据传输至智能手机102,以及将智能手机102所发出的通信数据传输至智能手机101;在另一些实施例中,上述基站103也可以包括多个,即智能手机101和102可以分别与各自附近的基站103进行通信,至少两个基站103(即至少包括智能手机101和102各自附近的基站103)之间可以再进行直接通信,或者通过其它基站103进行间接通信,以将智能手机101、102各自发出的通信数据互相发送至对方。需要说明的是,图1所示的电子设备100为智能手机以及基站,这仅仅是一种示例,不应被视为对本申请实施例中电子设备100的设备类型的限制。
示例性地,上述电子设备100之间所建立的通信连接可以是基于4G LTE(LongTerm Evolution,长期演进技术)、5G NR(New Radio,新无线电技术)等各种移动通信标准建立的。需要说明的是,为了基于上述通信连接传输通信数据,电子设备100还需配置有支持上述标准的收发机。示例性地,该收发机可以是OFDM(Orthogonal Frequency DivisionMultiplexing,正交频分复用)收发机,即基于正交频分复用技术实现多载波调制(Multicarrier Modulation,MCM)的收发机,该OFDM收发机可以分别通过IFFT(InverseFast Fourier Transform,快速傅里叶逆变换)和FFT(Fast Fourier Transform,快速傅里叶变换)来对通信数据进行调制和解调。在一些实施例中,电子设备100所配置的收发机也可以支持其它调制解调类型,例如PSK(Phase-Shift Keying,相移键控)、QAM(QuadratureAmplitude Modulation,正交振幅调制)等,本申请实施例中不作具体限定。
以OFDM收发机为例,请一并参阅图2A以及图2B,其中,图2A是本申请实施例公开的一种电子设备的结构示意图,图2B则是本申请实施例公开的一种电子设备的结构示意图。如图2A所示,电子设备100配置的OFDM发射机20可以包括调制模块21、第一串并变换模块22、子载波映射模块23、第一蝶形运算模块24、第一并串变换模块25、后处理模块26以及第一存储模块27。其中,调制模块21可以用于对待发送的通信数据比特流进行星座点调制,继而经过第一串并变换模块22以及子载波映射模块23,所得到的待进行IFFT的第一初始数据可以输入第一蝶形运算模块24。在第一蝶形运算模块24中,通过多级、且每级中并行设置的多个蝶形单元,可以对上述第一初始数据进行高效的并行IFFT计算。在此过程中,第一蝶形运算模块24可以从第一存储模块27中调用相应并行度的旋转因子(Twiddle Factor),以用于上述变换计算过程中。进一步地,对于上述第一初始数据进行IFFT计算后所得到的第一结果数据,经过第一并串变换模块25以及后处理模块26(可以用于进行加循环前缀、上变频、射频处理等后处理步骤),该发射机20可以得到相应的发射信号,以用于电子设备100进行通信数据的发送。
如图2B所示,电子设备100配置的OFDM接收机30可以包括预处理模块31、第二串并变换模块32、第二蝶形运算模块33、子载波解映射模块34、第二并串变换模块35、解调模块36以及第二存储模块37。其中,该接收机30所接收到的接收信号在经过预处理模块31(可以用于进行射频处理、下变频、去循环前缀等预处理步骤)、第二串并变换模块32之后,所得到的待进行FFT的第二初始数据可以输入第二蝶形运算模块33。在第二蝶形运算模块33中,通过多级、且每级中并行设置的多个蝶形单元,可以对上述第二初始数据进行高效的并行FFT计算。在此过程中,第二蝶形运算模块33可以从第二存储模块37中调用相应并行度的旋转因子,以用于上述变换计算过程中。可选地,上述第二存储模块37,可以复用上述第一存储模块27。进一步地,对于上述第二初始数据进行FFT计算后所得到的第二结果数据,经过子载波解映射模块34、第二并串变换模块35以及解调模块36,该接收机30可以得到相应的通信数据,从而实现电子设备100对通信数据的接收。
无论是在上述发射机20通过其第一蝶形运算模块24计算IFFT的过程中,还是在上述接收机30通过其第二蝶形运算模块33计算FFT的过程中,蝶形运算模块都可以进行高效的并行傅里叶变换,而这需要电子设备100及时地提供相应并行度的旋转因子。在本申请实施例中,电子设备100可以根据该电子设备100的蝶形运算模块所支持的最大并行度,以及待进行傅里叶变换的初始数据对应的变换点数,获取该蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息。其中,上述变换点数可以用于定义对初始数据进行傅里叶变换的采样点数。在此基础上,电子设备100可以根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取该目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,该旋转因子用于在上述蝶形单元中,对进行傅里叶变换前或变换后的数据并行进行相位旋转,其中,目标蝶形运算级别可以为上述蝶形运算模块调用的任一蝶形运算级别,上述旋转因子查找表则包括预先根据最大变换点数确定的各个旋转因子。
可见,实施本申请实施例,当电子设备100在通信过程中需要对初始数据进行傅里叶变换时,能够根据其内置的蝶形运算模块所支持的最大并行度,并行地确定出相应数量的旋转因子,从而可以为该电子设备100及时、高效地提供其计算傅里叶变换所需的旋转因子,以提高该电子设备100计算傅里叶变换的效率,进而可以加快电子设备100在通信过程中处理通信数据的效率,有效提高了电子设备100的通信性能。
请参阅图3,图3是本申请实施例公开的一种旋转因子确定方法的流程示意图,该旋转因子确定方法可以应用于上述的电子设备。如图3所示,该旋转因子确定方法可以包括以下步骤:
302、根据电子设备的蝶形运算模块所支持的最大并行度和初始数据对应的变换点数,获取该蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息,其中,该变换点数用于定义对初始数据进行傅里叶变换的采样点数。
在本申请实施例中,当电子设备需要与其它电子设备进行通信,即该电子设备向其它电子设备发送通信数据,或者该电子设备接收其它电子设备发送的通信数据的情况下,均可以通过其内置的收发机(例如OFDM发射机或OFDM接收机等)进行相应的数据收发处理。在此过程中,收发机所包括的蝶形运算模块,可以用于对其它前置模块处理通信数据后所得到的待进行傅里叶变换的初始数据进行相应的变换计算,以辅助实现对通信数据的调制或解调。
可选地,上述变换计算可以包括FFT或IFFT。示例性地,当电子设备需要通过其内置的发射机发送通信数据时,上述蝶形运算模块可以用于对上述初始数据进行IFFT计算,以辅助实现对该通信数据的调制发送;当电子设备需要通过其内置的接收机发送通信数据时,上述蝶形运算模块可以用于对上述初始数据进行FFT计算,以辅助实现对该通信数据的接收解调。
具体地,为了实现上述变换计算,电子设备需要先确定出变换计算过程中所需的旋转因子,该旋转因子可以作为在FFT或IFFT的蝶形运算过程中所乘的复数常数(可使被乘数在复数平面上实现旋转)。如以下公式1所示,公式1表示对初始数据所组成的序列x(n)进行傅里叶变换的过程。
公式1:
Figure BDA0003299969720000061
其中,x(n)和X(k)分别表示变换前后的序列,n和k分别表示变换前后序列中元素(即上述初始数据以及变换后所得到的结果数据)的序号,N表示傅里叶变换点数,
Figure BDA0003299969720000062
即表示旋转因子。如公式2所示,该旋转因子
Figure BDA0003299969720000063
实际上可以通过指数幂的形式来表示。
公式2:
Figure BDA0003299969720000071
其中,e为自然指数,j为虚数单位。需要说明的是,在针对同一组数据的FFT和IFFT中,进行蝶形运算所采用的旋转因子可以互为共轭复数,例如上述公式2中的
Figure BDA0003299969720000072
为FFT计算过程中所采用的旋转因子,则其共轭复数
Figure BDA0003299969720000073
可以作为相应的IFFT计算过程中所采用的旋转因子。
如上述图2A及图2B所示,电子设备在每一次对初始数据进行傅里叶变换的过程中,其收发机的蝶形运算模块均可以从存储模块中获取旋转因子,以用于进行FFT或IFFT中的蝶形运算。具体地,电子设备可以根据上述蝶形运算模块所支持的最大并行度,对待进行傅里叶变换的初始数据对应的变换点数进行因数分解,得到第一分解因式。其中,上述变换点数可以用于定义对初始数据进行傅里叶变换的采样点数,即一次变换过程中所需进行蝶形运算的次数。示例性地,该因数分解的过程可以如以下公式3所示。
公式3:
N=N1*N2*N3*...
其中,N1*N2*N3*...即表示对变换点数N进行因数分解所得到的第一分解因式,该第一分解因式可以用于表征上述蝶形运算模块调用的蝶形运算级别的数量以及每个蝶形运算级别包含的蝶形单元的大小。可以理解,第一分解因式至少可以包括两个因数N1和N2,则上述蝶形运算模块可以相应地调用两个蝶形运算级别,其中,第一个蝶形运算级别所包含的蝶形单元的大小为N1,第二个蝶形运算级别所包含的蝶形单元的大小为N2。在一些实施例中,第一分解因式也可以包括三个因数(N1、N2和N3)或以上,从而上述蝶形运算模块可以相应地调用更多蝶形运算级别。
可选地,上述每个蝶形运算级别均可包含一个或多个蝶形单元。当目标蝶形运算级别仅包含一个蝶形单元时,该蝶形单元的大小由目标蝶形运算级别对应的上述分解因数决定;当目标蝶形运算级别包含多个蝶形单元时,该多个蝶形单元的大小相等,且均由目标蝶形运算级别对应的上述分解因数决定,从而可以并行完成该目标蝶形运算级别中的蝶形运算,以进一步提升电子设备计算傅里叶变换的效率。
需要说明的是,当不同的蝶形运算级别所需包含的蝶形单元大小相同时,上述不同的蝶形运算级别可以复用同一蝶形单元。示例性地,若上述N=N1*N2*N3,且N1<N2=N3,则电子设备的蝶形运算模块在第二及第三个蝶形运算级别可以复用同一个大小为N2的蝶形单元。又示例性地,若N=N1*N2*N3且N1=N2=N3,则电子设备的蝶形运算模块可以只复用同一个大小为N1的蝶形单元,即能够实现三级蝶形运算。
其中,若上述蝶形单元的大小为N1,则表示该蝶形单元可以用于对输入的N1个初始数据进行蝶形运算,并得到相应的N1个输出。具体地,上述N1个初始数据可以在同一时钟周期内输入该蝶形单元,经过该蝶形单元处理后,可以得到相应的N1个计算结果。可以理解,上述N1个计算结果的排列次序和N1个初始数据原来的排列次序可以相同。在不考虑旋转因子的情况下,每一蝶形运算级别对应的计算结果可以按照原来的排列次序直接被写入存储器(Memory)中进行存储,以在需要进行下一级(若存在)蝶形运算时,从该存储器中按照不同的读取规律读出,并将其应用于该下一蝶形运算级别。直至完成最后一级蝶形运算之后,所得到的各个结果数据可以重新排序(可以由蝶形单元的性质所决定),以按照重新排序后的排列次序存储在存储器中。
示例性地,以8点蝶形单元(即该蝶形单元的大小为8)为例,当复用该蝶形单元对8个初始数据x[0]、x[1]、...、x[7]进行三级基2FFT中的蝶形运算之后,可以得到相应的重新排序后的结果数据X[0]、X[4]、X[2]、X[6]、X[1]、X[5]、X[3]、X[7]。在此过程中,第一级蝶形运算所包含的蝶形单元在从存储器中读取初始数据时,其读取规律可以是使所输入的每一对初始数据的排列序号之差为4(例如读取x[0]与x[4]进行蝶形运算、读取x[1]与x[5]进行蝶形运算等);类似地,第二、第三级蝶形运算对应的读取规律,则可以是使所输入的各对数据的排列序号之差依次为2、1,从而最终可以得到上述排列次序所示的结果数据。
在上述因数分解过程中,为了尽可能利用蝶形运算模块的并行计算资源,可以尽可能使各个蝶形运算级别包含的蝶形单元的大小达到该蝶形运算模块所支持的最大并行度。示例性地,该最大并行度R可以为指定基底r的整数次幂。例如,对于基2FFT(即r=2),上述最大并行度R可以为2的整数次幂,如2、4、8、16等;又例如,对于基3FFT(即r=3),上述最大并行度R可以为3的整数次幂,如3、9、27等。可选地,该最大并行度R还可以为混合基的整数次幂。例如,对于移动通信中常用的基底2、3、5的公倍数60,可以将该公倍数作为混合基r,则上述最大并行度R可以为该混合基60的整数次幂。
具体地,在对上述变换点数进行因数分解的过程中,可以将该变换点数持续除以上述最大并行度,直至无法继续整除为止。示例性地,以最大并行度R=16为例,对于变换点数N=128的傅里叶变换,可以将其分解为128=16*8(128÷16=8,8无法继续整除),即N1=16,N2=8。从而,上述蝶形运算模块可以相应地调用两个蝶形运算级别,且第一个蝶形运算级别包含的蝶形单元的大小为16,第二个蝶形运算级别包含的蝶形单元的大小为8。
在一些实施例中,仍以最大并行度R=16为例,对于变换点数N=1024的傅里叶变换,可以将其分解为1024=16*16*4(1024÷16=64,64÷16=4,4无法继续整除),即N1=16,N2=16,N3=4。对于变换点数为N=4096(5G NR所支持的最大变换点数)的傅里叶变换,则可以将其分解为4096=16*16*16(4096÷16=256,256÷16=16,16÷16=1,1无法继续整除且可省略),即N1=16,N2=16,N3=16。
可以理解,上述第一分解因式中最多仅有一个因数小于最大并行度,即最多仅有一个蝶形运算级别包含的蝶形单元的大小小于该最大并行度。可选地,对于旋转因子前置或后置的不同情况(上述示例为旋转因子后置的情况),上述第一分解因式中的因数排序可以相反,从而若存在某一蝶形运算级别包含的蝶形单元的大小小于最大并行度,则该蝶形运算级别可以分别为第一级或最后一级。
在此基础上,电子设备可以在后续步骤中针对上述各个蝶形运算级别,并行确定出目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,从而可以为该电子设备及时、高效地提供其计算傅里叶变换所需的旋转因子,以提高该电子设备计算傅里叶变换的效率。其中,目标蝶形运算级别可以为上述蝶形运算模块调用的任一蝶形运算级别。
在本申请实施例中,电子设备在得到上述第一分解因式之后,可以针对该第一分解因式所表征的各个蝶形运算级别,分别确定每个蝶形运算级别对应的第一旋转因子信息。在一些实施例中,该第一旋转因子信息可以包括第一旋转因子表达式,其中,该第一旋转因子表达式可以具有类似于上述公式2所示的形式。可以理解,当上述公式2中的变换点数N等参数确定时,其指数幂形式的指数(以自然指数e为底数)可以唯一确定,从而可以用于计算该第一旋转因子表达式的具体取值。需要说明的是,对于同一蝶形运算级别,其包含的蝶形单元对应的各个旋转因子可以适用相同的第一旋转因子表达式,从而在确定出目标蝶形运算级别对应的第一旋转因子表达式之后,可以基于该第一旋转因子表达式,并行确定出该目标蝶形运算级别包含的蝶形单元对应的各个旋转因子。可选地,对于不同的蝶形运算级别,各个蝶形运算级别对应的第一旋转因子表达式则可以相同,也可以不相同。
为了在电子设备实际计算初始数据的傅里叶变换时降低计算量,节省计算时间,该电子设备可以预先计算出每个蝶形运算级别各自包含的蝶形单元对应的各个旋转因子的具体取值,以形成相应的旋转因子查找表,存储在该电子设备收发器的存储模块中。在此基础上,电子设备可以在后续步骤中分别针对每个蝶形运算级别,基于其对应的第一旋转因子信息,在上述旋转因子查找表中并行查找同一蝶形运算级别包含的蝶形单元(此时上述变换点数N等参数可以依次确定)对应的各个旋转因子。
304、根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取该目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,该各个旋转因子用于在上述目标蝶形运算级别包含的蝶形单元中,对进行傅里叶变换前或变换后的数据并行进行相位旋转,其中,目标蝶形运算级别为蝶形运算模块调用的任一蝶形运算级别,旋转因子查找表包括预先根据最大变换点数确定的各个旋转因子。
在本申请实施例中,电子设备在确定出目标蝶形运算级别对应的第一旋转因子信息之后,即可分别确定该目标蝶形运算级别具体包含的蝶形单元对应的各个旋转因子中的参数(类似于上述公式2中的变换点数N等参数),从而可以得到上述蝶形单元对应的,且待计算具体取值的各个旋转因子。进一步地,电子设备可以直接在旋转因子查找表中查找预先计算出的各个旋转因子对应的具体取值,从而可以避免计算复数指数幂这一复杂的计算过程,有效降低了电子设备计算傅里叶变换时的整体计算量,节省了电子设备的计算时间。
需要说明的是,上述旋转因子查找表可以存储在该电子设备收发机的存储模块中。由于同一蝶形运算级别包含的蝶形单元对应的各个旋转因子具有关联性,上述各个旋转因子的具体取值可以存储在该存储模块中的连续区域,或者其具体取值对应的映射地址可以存储在该存储模块中的连续区域。在此基础上,电子设备可以从该存储模块中并行获取上述各个旋转因子的具体取值,从而可以实现对目标蝶形运算级别包含的蝶形单元对应的各个旋转因子的并行同步读取,以为该电子设备及时、高效地提供其计算傅里叶变换所需的旋转因子,有利于进一步提高该电子设备计算傅里叶变换的效率。
可见,实施上述实施例所描述的旋转因子确定方法,当电子设备在通信过程中需要对初始数据进行傅里叶变换时,能够根据其内置的蝶形运算模块所支持的最大并行度,并行地确定出相应数量的旋转因子,从而可以为该电子设备及时、高效地提供其计算傅里叶变换所需的旋转因子,以提高该电子设备计算傅里叶变换的效率,进而可以加快电子设备在通信过程中处理通信数据的效率,有效提高了电子设备的通信性能。
请参阅图4,图4是本申请实施例公开的另一种旋转因子确定方法的流程示意图,该旋转因子确定方法可以应用于上述的电子设备。如图4所示,该旋转因子确定方法可以包括以下步骤:
402、根据电子设备的蝶形运算模块所支持的最大并行度,对初始数据对应的变换点数进行因数分解,得到第一分解因式,其中,该变换点数用于定义对初始数据进行傅里叶变换的采样点数,第一分解因式用于表征蝶形运算模块调用的蝶形运算级别的数量以及每个蝶形运算级别包含的蝶形单元的大小。
其中,步骤402与上述步骤302中的部分步骤类似,此处不再赘述。
404、获取上述蝶形运算模块对应的旋转次序,该旋转次序包括旋转因子前置或旋转因子后置,其中,该旋转次序为旋转因子前置时,旋转因子应用于除第一级以外的其它蝶形运算级别中;该旋转次序为旋转因子后置时,旋转因子应用于除最后一级以外的其它蝶形运算级别中。
在本申请实施例中,当电子设备需要确定其对待进行傅里叶变换的初始数据进行变换计算所需的旋转因子时,基于其蝶形运算模块的不同结构设置,该电子设备可以在上述变换计算过程中的不同时机引入旋转因子。
具体地,电子设备可以先获取上述蝶形运算模块对应的旋转次序,继而可以在后续步骤中根据该旋转次序确定各个蝶形运算级别对应的第一旋转因子信息。其中,上述旋转次序可以由蝶形运算模块的具体结构设置所确定的。示例性地,该旋转次序可以包括旋转因子前置或旋转因子后置,该旋转次序为旋转因子前置时,旋转因子可以应用于除第一级以外的其它蝶形运算级别中;该旋转次序为旋转因子后置时,旋转因子可以应用于除最后一级以外的其它蝶形运算级别中。
请一并参阅图5A及图5B,其中,图5A是本申请实施例公开的一种蝶形运算模块的结构示意图,图5B则是本申请实施例公开的另一种蝶形运算模块的结构示意图,两者均以蝶形运算模块调用三级蝶形运算级别为例。如图5A所示,在上述旋转次序为旋转因子前置的情况下,蝶形运算模块50a最多仅有第一级51a所包含的蝶形单元的大小小于上述最大并行度,而第二级52a和第三级53a各自包含的蝶形单元的大小均可达到该最大并行度。可选地,该第二级52a和第三级53a可以复用同一蝶形单元。进一步可选地,在上述第一级51a所需包含的蝶形单元的大小也达到最大并行度时,该第一级51a、第二级52a和第三级53a均可复用同一蝶形单元。
在此基础上,蝶形运算模块50a可以在其第二级52a和第三级53a前分别引入旋转因子,而在其第一级51a前则不引入。其中,上述旋转因子可以是在存储模块60中通过查表的方式确定的,并且可以通过该存储模块60与蝶形运算模块50a之间的连接通路,在将待进行蝶形运算的第一数据从存储器(Memory)中读取,并输入到第二级52a或第三级53a包含的蝶形单元前,将其分别与相应的第一数据相乘,以用于该第二级52a或第三级53a各自的傅里叶变换计算中。
类似地,如图5B所示,在上述旋转次序为旋转因子后置的情况下,蝶形运算模块50b最多仅有最后一级53b所包含的蝶形单元的大小小于上述最大并行度,而第一级51b和第二级52b各自包含的蝶形单元的大小均可达到该最大并行度。可选地,该第一级51b和第二级52b可以复用同一蝶形单元。进一步可选地,在上述最后一级53b所需包含的蝶形单元的大小也达到最大并行度时,该第一级51b、第二级52b和第三级53b均可复用同一蝶形单元。
在此基础上,蝶形运算模块50b可以在其第一级51b和第二级52b后分别引入旋转因子,而在其第三级53b后则不引入。其中,上述旋转因子也可以是在存储模块60中通过查表的方式确定的,并且可以通过该存储模块60与蝶形运算模块50b之间的连接通路,在将第一级51b或第二级52b中所输出的已完成蝶形运算的第二数据存储到存储器(Memory)之前,将其分别与相应的第二数据相乘,以用于该第一级51b或第二级52b各自的傅里叶变换计算中。
需要说明的是,对于同一蝶形运算级别包含的各个蝶形单元,电子设备可以并行查表确定其对应的旋转因子,继而可以并行地传输至相应的蝶形单元,以使上述各个蝶形单元可以并行计算傅里叶变换,有效提高了电子设备计算傅里叶变换的效率。
406、在上述旋转次序为旋转因子前置的情况下,根据第一级包含的蝶形单元的大小,确定各个其它蝶形运算级别对应的第一旋转因子信息;或者,在上述旋转次序为旋转因子后置的情况下,根据最后一级包含的蝶形单元的大小,确定各个其它蝶形运算级别对应的第一旋转因子信息。
其中,步骤406与上述步骤302中的部分步骤类似。需要说明的是,基于蝶形运算模块的不同结构设置,在上述旋转次序为旋转因子前置或旋转因子后置的不同情况下,电子设备可以分别针对不同的蝶形运算级别,确定其对应的第一旋转因子信息。以第一旋转因子信息包括第一旋转因子表达式为例,虽然不同旋转次序、不同蝶形运算级别对应的第一旋转因子表达式可以不同,但该第一旋转因子表达式均可以具有类似于上述公式2所示的形式。示例性地,目标蝶形运算级别对应的第一旋转因子表达式可以如以下公式4所示。
公式4:
Figure BDA0003299969720000121
其中,n*f(n')为该第一旋转因子表达式中的参数因式,参数n可以表示目标蝶形运算级别所包含的蝶形单元对应的各个旋转因子的排列次序,参数n'可以表示除目标蝶形运算级别以外的其它蝶形运算级别所包含的蝶形单元对应的各个旋转因子的排列次序,以该参数n'为自变量的函数f(n')则可以表示由上述其它蝶形运算级别确定的次序函数,该次序函数f(n')的形式可以依据不同的旋转次序以及不同的其它蝶形运算级别而进行针对性的调整。
需要说明的是,上述参数n可以从0开始取值,由于无论在旋转因子前置或后置的不同情况下,目标蝶形运算级别包含的蝶形单元的大小都必然等于上述最大并行度R,故该参数n具体可以取[0,R-1]中的任一整数。具体地,以最大并行度R=16为例,上述n可以取[0,15]中的任一整数。
其中,N'为受上述目标蝶形运算级别的计算结果影响的蝶形单元的大小。示例性地,对于蝶形运算模块对应的旋转次序为旋转因子前置的情况,目标蝶形运算级别的计算结果可以影响该目标蝶形运算级别的上一级以及其后全部蝶形运算级别(含该目标蝶形运算级别自身)所包含的蝶形单元;又示例性地,对于上述旋转次序为旋转因子后置的情况,目标蝶形运算级别的计算结果可以影响该目标蝶形运算级别自身以及其后全部蝶形运算级别所包含的蝶形单元。
具体地,在一种实施例中,在上述旋转次序为旋转因子前置的情况下,电子设备可以根据其蝶形运算模块所调用的全部蝶形运算级别中的第一级包含的蝶形单元的大小,确定各个其它蝶形运算级别对应的第一旋转因子信息。
需要说明的是,在上述旋转次序为旋转因子前置的情况下,第一级蝶形运算包含的蝶形单元的大小可以为上述变换点数N除以并行参数得到的商,各个其它蝶形运算级别包含的蝶形单元的大小则可以为该最大并行度R。其中,上述并行参数可以为最大并行度R的M-1次方(即第一级蝶形运算包含的蝶形单元的大小可以为N/R^(M-1)),M则为上述蝶形运算模块调用的蝶形运算级别的数量。以下将以第一旋转因子信息包括第一旋转因子表达式为例进行说明。
示例性地,以蝶形运算模块调用两级蝶形运算单元为例,即步骤402中对变换点数N进行因数分解得到的第一分解因式为N=N1*N2=N1*R(R为上述最大并行度,N1为第一级包含的蝶形单元的大小),此时旋转因子仅应用于第二级蝶形运算中,则上述公式4中的次序函数f(n')=n1,且N'=R*N1,从而可以确定此时第二级对应的第一旋转因子表达式为:
公式5:
Figure BDA0003299969720000131
以蝶形运算模块调用三级蝶形运算单元为例,即步骤402中对变换点数N进行因数分解得到的第一分解因式为N=N1*N2*N3=N1*R*R,此时旋转因子可应用于第二级、第三级蝶形运算中。其中,对于第二级蝶形运算,上述公式4中的次序函数f(n')=n1,且N'=R*N1,从而可以确定此时第二级对应的第一旋转因子表达式与上述公式5一致。
对于第三级蝶形运算,上述公式4中的次序函数f(n')=n2N1+n1,且N'=R*R*N1,从而可以确定此时第三级对应的第一旋转因子表达式为:
公式6:
Figure BDA0003299969720000132
在另一种实施例中,在上述旋转次序为旋转因子后置的情况下,电子设备可以根据其蝶形运算模块所调用的全部蝶形运算级别中的最后一级包含的蝶形单元的大小,确定各个其它蝶形运算级别对应的第一旋转因子信息。
需要说明的是,在上述旋转次序为旋转因子后置的情况下,最后一级包含的蝶形单元的大小为上述变换点数N除以上述并行参数得到的商,各个其它蝶形运算级别包含的蝶形单元的大小则可以为该最大并行度R。其中,上述并行参数可以为最大并行度R的M-1次方(即最后一级蝶形运算包含的蝶形单元的大小可以为N/R^(M-1)),M则为上述蝶形运算模块调用的蝶形运算级别的数量。以下仍以第一旋转因子信息包括第一旋转因子表达式为例进行说明。
示例性地,以蝶形运算模块调用两级蝶形运算单元为例,即步骤402中对变换点数N进行因数分解得到的第一分解因式为N=N1*N2=R*N2(N2为第二级包含的蝶形单元的大小),此时旋转因子仅应用于第一级蝶形运算中,则上述公式4中的次序函数f(n')=n2,且N'=R*N2,从而可以确定此时第一级对应的第一旋转因子表达式为:
公式7:
Figure BDA0003299969720000141
以蝶形运算模块调用三级蝶形运算单元为例,即步骤402中对变换点数N进行因数分解得到的第一分解因式为N=N1*N2*N3=R*R*N3,此时旋转因子可应用于第一级、第二级蝶形运算中。其中,对于第一级蝶形运算,上述公式4中的次序函数f(n')=n2N3+n3,且N'=R*R*N3,从而可以确定此时第一级对应的第一旋转因子表达式为:
公式8:
Figure BDA0003299969720000142
对于第二级蝶形运算,上述公式4中的次序函数f(n')=n3,且N'=R*N3,从而可以确定此时第二级对应的第一旋转因子表达式为:
公式9:
Figure BDA0003299969720000143
408、根据目标蝶形运算级别对应的第一旋转因子信息以及最大变换点数,对第一旋转因子信息中包含的参数因式进行变换,得到包含查表列标与查表行标相乘的第二分解因式,其中,参数因式用于确定该第一旋转因子信息通过指数幂形式表示时的指数,查表行标和查表列标用于确定与目标蝶形运算级别包含的蝶形单元对应的各个旋转因子在旋转因子查找表中的位置。
在本申请实施例中,电子设备在确定出每个蝶形运算级别对应的第一旋转因子信息之后,即可根据目标蝶形运算级别对应的第一旋转因子信息,确定出该目标蝶形运算级别包含的蝶形单元对应的各个旋转因子。其中,该目标蝶形运算级别可以为上述蝶形运算模块调用的任一蝶形运算级别。
示例性地,以第一旋转因子信息包括第一旋转因子表达式为例,电子设备可以先基于对上述初始数据进行傅里叶变换所采用的最大变换点数(例如5G NR所支持的最大变换点数N=4096),对目标蝶形运算级别对应的第一旋转因子表达式进行变形,以得到该目标蝶形运算级别包含的蝶形单元对应的各个旋转因子的位置信息。示例性地,该位置信息可以包括上述旋转因子在旋转因子查找表中的查表行标和查表列标,从而可以在该旋转因子查找表中准确确定上述各个旋转因子所处的位置。需要说明的是,通过上述变形得到的位置信息与旋转因子在旋转因子查找表中所处的位置相对应,这一对应关系是由对该旋转因子查找表进行存表的过程所决定的。
具体地,电子设备可以根据目标蝶形运算级别对应的第一旋转因子表达式
Figure BDA0003299969720000151
以及最大变换点数N,对该第一旋转因子表达式中的参数因式n*f(n')进行变换,以得到包含查表列标b与查表行标a相乘的第二分解因式b*a,该变换过程可以如以下公式10所示。
公式10:
Figure BDA0003299969720000152
将上述第一旋转因子表达式转换为指数幂形式时,公式10所示的变换过程容易得到验证。其中,上述参数n、f(n')以及N'的释义可以参见公式4,此处不再赘述。需要说明的是,上述旋转因子查找表的列数可以与最大并行度R相等,从而查表列标b=n可以在[0,R-1]的范围内取整数值,以在电子设备通过查表行标
Figure BDA0003299969720000153
确定出目标蝶形运算级别包含的蝶形单元对应的各个旋转因子在该旋转因子查找表中的目标行之后,可以进一步确定每个蝶形单元对应的旋转因子在该旋转因子查找表中所处的目标列。通过实施上述方法,电子设备可以根据上述查表行标和查表列标所确定的位置信息,在后续步骤中进一步读取目标蝶形运算级别包含的蝶形单元对应的各个旋转因子的具体取值,从而可以避免计算复数指数幂这一复杂的计算过程,有效降低了电子设备计算傅里叶变换时的整体计算量,节省了电子设备的计算时间。实际上,电子设备在确定出上述目标行a之后,即可并行获取该目标行中数量为最大并行度R的旋转因子(即整行读取),进而可以将该R个旋转因子应用于目标蝶形运算级别,以实现R路并行的傅里叶变换计算。
410、在存储上述旋转因子查找表的存储模块中,根据查表行标及查表列标,确定目标蝶形运算级别包含的蝶形单元对应的各个旋转因子的目标读取地址。
在本申请实施例中,旋转因子查找表可以存储在该电子设备收发机的存储模块中。由于同一蝶形运算级别包含的蝶形单元对应的各个旋转因子具有关联性,上述各个旋转因子的具体取值可以存储在该存储模块中的连续区域,或者其具体取值对应的映射地址可以存储在该存储模块中的连续区域,从而电子设备可以根据上述查表行标及查表列标,确定上述各个旋转因子在该存储模块中连续的目标读取地址,以便于在后续步骤中高效地并行读取上述各个旋转因子。
412、从目标读取地址中并行读取目标蝶形运算级别包含的蝶形单元对应的各个旋转因子。
在本申请实施例中,电子设备可以基于上述目标读取地址,从上述存储模块中并行获取上述各个旋转因子的具体取值,以为该电子设备及时、高效地提供其计算傅里叶变换所需的旋转因子,有效提高了该电子设备计算傅里叶变换的效率。
可见,实施上述实施例所描述的旋转因子确定方法,当电子设备在通信过程中需要对初始数据进行傅里叶变换时,能够根据其内置的蝶形运算模块所支持的最大并行度,并行地确定出相应数量的旋转因子,从而可以为该电子设备及时、高效地提供其计算傅里叶变换所需的旋转因子,以提高该电子设备计算傅里叶变换的效率,进而可以加快电子设备在通信过程中处理通信数据的效率,有效提高了电子设备的通信性能。此外,基于蝶形运算模块的不同结构设置,在旋转因子前置或后置的情况下确定相应的第一旋转因子表达式,可以适配不同旋转次序、不同蝶形运算级别的多种情形,从而进一步提高了电子设备计算傅里叶变换的准确性和灵活性。
请参阅图6,图6是本申请实施例公开的又一种旋转因子确定方法的流程示意图,该旋转因子确定方法可以应用于上述的电子设备。如图6所示,该旋转因子确定方法可以包括以下步骤:
602、按照存表行标以及存表列标从小到大的顺序,确定目标行的各个旋转因子在待存储的旋转因子查找表中的目标存表行标以及多个目标存表列标,其中,存表列标在电子设备的蝶形运算模块所支持的最大并行度内取值,存表行标在最大变换点数除以最大并行度得到的商内取值。
在本申请实施例中,为了快速确定出傅里叶变换计算过程中所需的旋转因子,可以预先计算最大变换点数下的各个旋转因子对应的具体取值,并据此形成相应的旋转因子查找表,将其存储在电子设备的存储模块中。从而,无论实际需要进行傅里叶变换的初始数据对应的变换点数大小如何,均可在该旋转因子查找表中确定出相应的旋转因子的具体取值。
以5G NR所支持的最大变换点数N=4096为例,若电子设备收发机的蝶形运算单元所支持的最大并行度R=16,则该蝶形运算单元至多需调用三个蝶形运算级别,各个蝶形运算级别包含的蝶形单元的大小可以依次表示为N1、N2、N3,并且满足N=N1*N2*N3。为了计算各个旋转因子对应的具体取值,对于公式1所示的傅里叶变换过程,可将其变形为:
公式11:
Figure BDA0003299969720000171
其中,n和k可以分别表示变换前后序列中元素的序号,并且满足n=n1N2N3+n2N3+n3以及k=k1+k2N1+k3N1N2。可以理解,n1、k1=0,1,...,N1-1;n2、k2=0,1,...,N2-1;n3、k3=0,1,...,N3-1。
需要说明的是,上述公式11的倒数第二式可以对应于旋转因子后置的情况,倒数第一式可以对应于旋转因子前置的情况。容易验证,最大变换点数N=4096下的所有旋转因子的具体取值均可包含于集合
Figure BDA0003299969720000172
中,其中,b'=0,1,...,15可以作为相应旋转因子的存表列标;a'=0,1,...,255可以作为相应旋转因子的存表行标。从而,电子设备可以根据上述存表列标以及存表行标,将计算出的各个旋转因子的具体取值存储在旋转因子查找表中相应的位置。
示例性地,电子设备可以按照存表行标以及存表列标从小到大的顺序,确定目标行的各个旋转因子在待存储的旋转因子查找表中的目标存表行标以及多个目标存表列标。以最大变换点数N=4096,最大并行度R=16为例,上述的存表列标可以在该最大并行度内取值,即依次取b'=0,1,...,15;上述的存表行标则可以在最大变换点数除以最大并行度得到的商内取值,即依次取a′=0,1,...,255。针对每个存表行标对应的旋转因子,电子设备可以依次将其作为目标行,以便于在后续步骤中计算目标行的各个旋转因子(本示例中为16个)的具体取值,并将其并行存储在旋转因子查找表相应的行列中。
604、根据目标存表行标和多个目标存表列标,以及最大变换点数对应的第二旋转因子信息,计算得到目标行的各个旋转因子。
由于最大变换点数N=4096下的所有旋转因子的具体取值均可包含于集合
Figure BDA0003299969720000181
中,依次将目标存表行标和多个目标存表列标代入该式,即可计算得到目标行的各个旋转因子对应的具体取值。在一些实施例中,上述第二旋转因子信息可以包括第二旋转因子表达式,其中,该第二旋转因子表达式可以如上述集合中的元素
Figure BDA0003299969720000182
所示。
示例性地,计算旋转因子具体取值的过程可以如以下公式12所示。
公式12:
Figure BDA0003299969720000183
其中,e为自然指数,j为虚数单位。
作为一种可选的实施方式,电子设备在计算出目标行的全部旋转因子之后,若该目标行的全部旋转因子相同(例如全部为0),则电子设备可以将该目标行确定为可压缩行,并删除该可压缩行,以节省存储选因子查找表所占用的空间。
606、在存储旋转因子查找表的存储模块中,根据目标存表行标和多个目标存表列标,确定目标行的各个旋转因子的目标存储地址。
608、将目标行的各个旋转因子并行存储在目标存储地址中,以使电子设备可并行读取目标行的各个旋转因子。
其中,步骤606以及步骤608与上述步骤410以及步骤412类似,但实现过程以及目的相反。可以理解,上述步骤410以及步骤412是从已存储的旋转因子查找表中查找各个旋转因子,而步骤606以及步骤608则是根据上述目标存表行标和多个目标存表列标,将各个旋转因子存储至存储模块中的适当位置。
在本申请实施例中,电子设备可以先根据上述目标存表行标和多个目标存表列标,确定出该目标行的各个旋转因子的目标存储地址,进而可以将该目标行的各个旋转因子对应的具体取值并行存储在该目标存储地址中。示例性地,存储了上述具体取值的存储旋转因子查找表可以如表1所示(各具体取值省略)。
表1:
Figure BDA0003299969720000184
Figure BDA0003299969720000191
需要说明的是,该旋转因子查找表可以在电子设备被实际使用前(例如电子设备出厂前)即预先存储在该电子设备的存储模块中,从而在后续实际使用该电子设备进行通信数据传输时,无需重复进行上述存表的过程,便可直接用于进行查表确定旋转因子。
610、根据电子设备的蝶形运算模块所支持的最大并行度,对初始数据对应的变换点数进行因数分解,得到第一分解因式,其中,该变换点数用于定义对初始数据进行傅里叶变换的采样点数,第一分解因式用于表征蝶形运算模块调用的蝶形运算级别的数量以及每个蝶形运算级别包含的蝶形单元的大小。
612、根据上述第一分解因式确定每个蝶形运算级别对应的第一旋转因子信息。
其中,步骤610以及步骤612与上述步骤302类似。需要说明的是,步骤612具体也可以参照上述步骤404以及步骤406实现,此处不再赘述。
614、根据目标蝶形运算级别对应的第一旋转因子表达式,在旋转因子查找表中并行获取该目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,该旋转因子用于在上述目标蝶形运算级别包含的蝶形单元中,对进行傅里叶变换前或变换后的数据并行进行相位旋转,其中,目标蝶形运算级别为蝶形运算模块调用的任一蝶形运算级别,旋转因子查找表包括预先根据最大变换点数确定的各个旋转因子。
其中,步骤614与上述步骤304类似。需要说明的是,该步骤614具体也可以参照上述步骤408至步骤412实现,此处不再赘述。
可见,实施上述实施例所描述的旋转因子确定方法,当电子设备在通信过程中需要对初始数据进行傅里叶变换时,能够根据其内置的蝶形运算模块所支持的最大并行度,并行地确定出相应数量的旋转因子,从而可以为该电子设备及时、高效地提供其计算傅里叶变换所需的旋转因子,以提高该电子设备计算傅里叶变换的效率,进而可以加快电子设备在通信过程中处理通信数据的效率,有效提高了电子设备的通信性能。此外,通过上述存表方案,将最大变换点数下的各个旋转因子对应的具体取值预先存储在旋转因子查找表中,既可以避免电子设备重复计算复数指数幂这一复杂的计算过程,有效降低了电子设备计算傅里叶变换时的整体计算量,节省了计算时间;又能够并行地读取数量为蝶形运算模块所支持的最大并行度的旋转因子,从而可以实现高速查表,进一步提升电子设备处理通信数据的效率。此外,基于上述查表方案并行确定旋转因子,在硬件上实现时所需的资源开销也较小,有利于进一步降低功耗,提升电子设备的通信性能。
请参阅图7,图7是本申请实施例公开的一种旋转因子确定装置的模块化示意图,该旋转因子确定装置可以应用于上述的电子设备。如图7所示,该旋转因子确定装置可以包括第一获取单元701以及第二获取单元702,其中:
第一获取单元701,用于根据电子设备的蝶形运算模块所支持的最大并行度和初始数据对应的变换点数,获取该蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息,其中,该变换点数用于定义对初始数据进行傅里叶变换的采样点数;
第二获取单元702,用于根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取该目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,该旋转因子用于在上述目标蝶形运算级别包含的蝶形单元中,对进行傅里叶变换前或变换后的数据并行进行相位旋转,其中,目标蝶形运算级别为蝶形运算模块调用的任一蝶形运算级别,旋转因子查找表包括预先根据最大变换点数确定的各个旋转因子。
可见,采用上述实施例所描述的旋转因子确定装置,当电子设备在通信过程中需要对初始数据进行傅里叶变换时,能够根据其内置的蝶形运算模块所支持的最大并行度,并行地确定出相应数量的旋转因子,从而可以为该电子设备及时、高效地提供其计算傅里叶变换所需的旋转因子,以提高该电子设备计算傅里叶变换的效率,进而可以加快电子设备在通信过程中处理通信数据的效率,有效提高了电子设备的通信性能。
在一种实施例中,上述第一获取单元701可以包括未图示的因数分解子单元以及信息确定子单元,其中:
因数分解子单元,用于根据电子设备的蝶形运算模块所支持的最大并行度,对初始数据对应的变换点数进行因数分解,得到第一分解因式,该第一分解因式用于表征上述蝶形运算模块调用的蝶形运算级别的数量以及每个蝶形运算级别包含的蝶形单元的大小;
信息确定子单元,用于根据上述第一分解因式确定每个蝶形运算级别对应的第一旋转因子信息。
在一种实施例中,上述信息确定子单元,具体可以用于获取蝶形运算模块对应的旋转次序,旋转次序包括旋转因子前置或旋转因子后置,其中,旋转次序为旋转因子前置时,旋转因子应用于除第一级以外的其它蝶形运算级别中;旋转次序为旋转因子后置时,旋转因子应用于除最后一级以外的其它蝶形运算级别中;
该信息确定子单元,具体还可以用于在旋转次序为旋转因子前置的情况下,根据第一级包含的蝶形单元的大小,确定各个其它蝶形运算级别对应的第一旋转因子信息;
或者,在旋转次序为旋转因子后置的情况下,根据最后一级包含的蝶形单元的大小,确定各个其它蝶形运算级别对应的第一旋转因子信息。
需要说明的是,在旋转次序为旋转因子前置的情况下,第一级包含的蝶形单元的大小可以为变换点数除以并行参数得到的商,各个其它蝶形运算级别包含的蝶形单元的大小则为最大并行度;
在旋转次序为旋转因子后置的情况下,最后一级包含的蝶形单元的大小可以为变换点数除以上述并行参数得到的商,各个其它蝶形运算级别包含的蝶形单元的大小则为最大并行度;
其中,上述并行参数为最大并行度的M-1次方,M为蝶形运算模块调用的蝶形运算级别的数量。
可见,采用上述实施例所描述的旋转因子确定装置,基于蝶形运算模块的不同结构设置,在旋转因子前置或后置的情况下确定相应的第一旋转因子表达式,可以适配不同旋转次序、不同蝶形运算级别的多种情形,从而进一步提高了电子设备计算傅里叶变换的准确性和灵活性。
在一种实施例中,上述第一获取单元703可以包括未图示的因式变换子单元、地址确定子单元以及读取子单元,其中:
因式变换子单元,用于根据目标蝶形运算级别对应的第一旋转因子信息以及最大变换点数,对第一旋转因子信息中包含的参数因式进行变换,得到包含查表列标与查表行标相乘的第二分解因式,其中,参数因式用于确定第一旋转因子信息通过指数幂形式表示时的指数,查表行标和查表列标用于确定与目标蝶形运算级别包含的蝶形单元对应的各个旋转因子在旋转因子查找表中的位置;
地址确定子单元,用于根据查表行标及查表列标,确定目标读取地址;
读取子单元,用于根据目标读取地址,从存储上述旋转因子查找表的存储模块中并行读取目标蝶形运算单元包含的蝶形单元对应的各个旋转因子。
示例性地,上述因式变换子单元具体可以是根据目标蝶形运算级别对应的第一旋转因子信息
Figure BDA0003299969720000211
以及最大变换点数N,对第一旋转因子信息中包含的参数因式n*f(n')进行变换,得到包含查表列标b与查表行标a相乘的第二分解因式b*a,变换的过程可以满足以下条件:
Figure BDA0003299969720000221
其中,n为目标蝶形运算级别包含的蝶形单元对应的各个旋转因子的排列次序,f(n')为根据目标蝶形运算级别以外的其它蝶形运算级别确定的次序函数,N'为受所述目标蝶形运算级别的计算结果影响的旋转因子的大小。
在一种实施例中,上述旋转因子确定装置还可以包括未图示的第二确定单元、计算单元、第三确定单元以及第二获取单元,其中:
第二确定单元,用于按照存表行标以及存表列标从小到大的顺序,确定目标行的各个旋转因子在待存储的旋转因子查找表中的目标存表行标以及多个目标存表列标,其中,存表列标在电子设备的蝶形运算模块所支持的最大并行度内取值,存表行标在最大变换点数除以最大并行度得到的商内取值;
计算单元,用于根据目标存表行标和多个目标存表列标,以及最大变换点数对应的第二旋转因子信息,计算得到目标行的各个旋转因子;
第三确定单元,用于在存储旋转因子查找表的存储模块中,根据目标存表行标和多个目标存表列标,确定目标行的各个旋转因子的目标存储地址;
第二获取单元,用于将目标行的各个旋转因子并行存储在目标存储地址中,以使电子设备可并行读取目标行的各个旋转因子。
示例性地,上述计算单元具体可以是根据目标存表行标b'和多个目标存表列标a',以及最大变换点数N对应的第二旋转因子信息
Figure BDA0003299969720000222
计算得到目标行的各个旋转因子,计算的过程可以满足以下条件:
Figure BDA0003299969720000223
其中,e为自然指数,j为虚数单位。
在一种实施例中,上述旋转因子确定装置还可以包括未图示的压缩单元,该压缩单元可以用于在上述计算单元计算得到目标行的各个旋转因子之后,在该目标行的全部旋转因子相同的情况下,将目标行确定为可压缩行,并删除可压缩行。
可见,采用上述实施例所描述的旋转因子确定装置,可见,采用上述实施例所描述的旋转因子确定装置,通过上述存表方案,将最大变换点数下的各个旋转因子对应的具体取值预先存储在旋转因子查找表中,既可以避免电子设备重复计算复数指数幂这一复杂的计算过程,有效降低了电子设备计算傅里叶变换时的整体计算量,节省了计算时间;又能够并行地读取数量为蝶形运算模块所支持的最大并行度的旋转因子,从而可以实现高速查表,进一步提升电子设备处理通信数据的效率。此外,基于上述查表方案并行确定旋转因子,在硬件上实现时所需的资源开销也较小,有利于进一步降低功耗,提升电子设备的通信性能。
请参阅图8,图8是本申请实施例公开的一种电子设备的模块化示意图。如图8所示,该电子设备可以包括:
存储有可执行程序代码的存储器801;
与存储器801耦合的处理器802;
其中,处理器802调用存储器801中存储的可执行程序代码,可以执行上述实施例所描述的任意一种旋转因子确定方法中的全部或部分步骤。
此外,本申请实施例进一步公开了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机可以执行上述实施例所描述的任意一种旋转因子确定方法中的全部或部分步骤。
此外,本申请实施例进一步公开一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机可以执行上述实施例所描述的任意一种旋转因子确定方法中的全部或部分步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其它光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其它介质。
以上对本申请实施例公开的一种旋转因子确定方法及装置、电子设备、存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (12)

1.一种旋转因子确定方法,其特征在于,应用于电子设备,所述方法包括:
根据所述电子设备的蝶形运算模块所支持的最大并行度和初始数据对应的变换点数,获取所述蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息,其中,所述变换点数用于定义对所述初始数据进行傅里叶变换的采样点数;
根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取所述目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,所述各个旋转因子用于在所述目标蝶形运算级别包含的蝶形单元中,对进行傅里叶变换前或变换后的数据并行进行相位旋转,其中,所述目标蝶形运算级别为所述蝶形运算模块调用的任一蝶形运算级别,所述旋转因子查找表包括预先根据最大变换点数确定的各个旋转因子。
2.根据权利要求1所述的方法,其特征在于,所述根据所述电子设备的蝶形运算模块所支持的最大并行度和初始数据对应的变换点数,获取所述蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息,包括:
根据所述电子设备的蝶形运算模块所支持的最大并行度,对初始数据对应的变换点数进行因数分解,得到第一分解因式,所述第一分解因式用于表征所述蝶形运算模块调用的蝶形运算级别的数量以及每个蝶形运算级别包含的蝶形单元的大小;
根据所述第一分解因式确定每个所述蝶形运算级别对应的第一旋转因子信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一分解因式确定每个所述蝶形运算级别对应的第一旋转因子信息,包括:
获取所述蝶形运算模块对应的旋转次序,所述旋转次序包括旋转因子前置或旋转因子后置,其中,所述旋转次序为旋转因子前置时,旋转因子应用于除第一级以外的其它蝶形运算级别中;所述旋转次序为旋转因子后置时,旋转因子应用于除最后一级以外的其它蝶形运算级别中;
在所述旋转次序为旋转因子前置的情况下,根据所述第一级包含的蝶形单元的大小,确定各个其它蝶形运算级别对应的第一旋转因子信息;
或者,在所述旋转次序为旋转因子后置的情况下,根据所述最后一级包含的蝶形单元的大小,确定各个其它蝶形运算级别对应的第一旋转因子信息。
4.根据权利要求3所述的方法,其特征在于,在所述旋转次序为旋转因子前置的情况下,所述第一级包含的蝶形单元的大小为所述变换点数除以并行参数得到的商,各个其它蝶形运算级别包含的蝶形单元的大小为所述最大并行度;
在所述旋转次序为旋转因子后置的情况下,所述最后一级包含的蝶形单元的大小为所述变换点数除以所述并行参数得到的商,各个其它蝶形运算级别包含的蝶形单元的大小为所述最大并行度;
其中,所述并行参数为所述最大并行度的M-1次方,M为所述蝶形运算模块调用的蝶形运算级别的数量。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取所述目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,包括:
根据目标蝶形运算级别对应的第一旋转因子信息以及所述最大变换点数,对所述第一旋转因子信息中包含的参数因式进行变换,得到包含查表列标与查表行标相乘的第二分解因式,其中,所述参数因式用于确定所述第一旋转因子信息通过指数幂形式表示时的指数,所述查表行标和所述查表列标用于确定与所述目标蝶形运算级别包含的蝶形单元对应的各个旋转因子在旋转因子查找表中的位置;
根据所述查表行标及所述查表列标,确定目标读取地址;
根据所述目标读取地址,从存储所述旋转因子查找表的存储模块中,并行读取所述目标蝶形运算级别包含的蝶形单元对应的各个旋转因子。
6.根据权利要求5所述的方法,其特征在于,所述根据目标蝶形运算级别对应的第一旋转因子信息以及最大变换点数,对所述第一旋转因子信息中包含的参数因式进行变换,得到包含查表列标与查表行标相乘的第二分解因式,包括:
根据目标蝶形运算级别对应的第一旋转因子信息
Figure FDA0003299969710000021
以及最大变换点数N,对所述第一旋转因子信息中包含的参数因式n*f(n')进行变换,得到包含查表列标b与查表行标a相乘的第二分解因式b*a,所述变换满足以下条件:
Figure FDA0003299969710000022
其中,n为所述目标蝶形运算级别包含的蝶形单元对应的各个旋转因子的排列次序,f(n')为根据所述目标蝶形运算级别以外的其它蝶形运算级别确定的次序函数,N'为受所述目标蝶形运算级别的计算结果影响的旋转因子的数量。
7.根据权利要求1至4任一项所述的方法,其特征在于,在所述根据所述电子设备的蝶形运算模块所支持的最大并行度和初始数据对应的变换点数,获取所述蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息之前,所述方法还包括:
按照存表行标以及存表列标从小到大的顺序,确定目标行的各个旋转因子在待存储的旋转因子查找表中的目标存表行标以及多个目标存表列标,其中,所述存表列标在所述电子设备的蝶形运算模块所支持的最大并行度内取值,所述存表行标在最大变换点数除以所述最大并行度得到的商内取值;
根据所述目标存表行标和多个所述目标存表列标,以及所述最大变换点数对应的第二旋转因子信息,计算得到所述目标行的各个旋转因子;
在存储所述旋转因子查找表的存储模块中,根据所述目标存表行标和多个所述目标存表列标,确定所述目标行的各个旋转因子的目标存储地址;
将所述目标行的各个旋转因子并行存储在所述目标存储地址中,以使所述电子设备可并行读取所述目标行的各个旋转因子。
8.根据权利要求7所述的方法,其特征在于,所述根据所述目标存表行标和多个所述目标存表列标,以及所述最大变换点数对应的第二旋转因子信息,计算得到所述目标行的各个旋转因子,包括:
根据所述目标存表行标b'和多个所述目标存表列标a',以及所述最大变换点数N对应的第二旋转因子信息
Figure FDA0003299969710000031
计算得到所述目标行的各个旋转因子,所述计算满足以下条件:
Figure FDA0003299969710000032
其中,e为自然指数,j为虚数单位。
9.根据权利要求7所述的方法,其特征在于,在所述根据所述目标存表行标和多个所述目标存表列标,以及所述最大变换点数对应的第二旋转因子信息,计算得到所述目标行的各个旋转因子之后,所述方法还包括:
若所述目标行的全部旋转因子相同,将所述目标行确定为可压缩行,并删除所述可压缩行。
10.一种旋转因子确定装置,其特征在于,应用于电子设备,所述旋转因子确定装置包括:
第一获取单元,用于根据所述电子设备的蝶形运算模块所支持的最大并行度和初始数据对应的变换点数,获取所述蝶形运算模块调用的每个蝶形运算级别对应的第一旋转因子信息,其中,所述变换点数用于定义对所述初始数据进行傅里叶变换的采样点数;
第二获取单元,用于根据目标蝶形运算级别对应的第一旋转因子信息,在旋转因子查找表中并行获取所述目标蝶形运算级别包含的蝶形单元对应的各个旋转因子,所述各个旋转因子用于在所述目标蝶形运算级别包含的蝶形单元中,对进行傅里叶变换前或变换后的数据并行进行相位旋转,其中,所述目标蝶形运算级别为所述蝶形运算模块调用的任一蝶形运算级别,所述旋转因子查找表包括预先根据最大变换点数确定的各个旋转因子。
11.一种电子设备,其特征在于,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述电子设备实现如权利要求1至8任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的方法。
CN202111187747.9A 2021-10-12 2021-10-12 旋转因子确定方法及装置、电子设备、存储介质 Pending CN114090948A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111187747.9A CN114090948A (zh) 2021-10-12 2021-10-12 旋转因子确定方法及装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111187747.9A CN114090948A (zh) 2021-10-12 2021-10-12 旋转因子确定方法及装置、电子设备、存储介质

Publications (1)

Publication Number Publication Date
CN114090948A true CN114090948A (zh) 2022-02-25

Family

ID=80296778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111187747.9A Pending CN114090948A (zh) 2021-10-12 2021-10-12 旋转因子确定方法及装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN114090948A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115544438A (zh) * 2022-11-28 2022-12-30 南京创芯慧联技术有限公司 数字通信系统中的旋转因子生成方法、装置和计算机设备
CN115577221A (zh) * 2022-11-18 2023-01-06 北京红山微电子技术有限公司 信号处理方法、装置及旋转因子的优化方法和终端设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115577221A (zh) * 2022-11-18 2023-01-06 北京红山微电子技术有限公司 信号处理方法、装置及旋转因子的优化方法和终端设备
CN115544438A (zh) * 2022-11-28 2022-12-30 南京创芯慧联技术有限公司 数字通信系统中的旋转因子生成方法、装置和计算机设备

Similar Documents

Publication Publication Date Title
CN101682456B (zh) 无线接入系统的发送机和接收机、无线接入系统的发送方法和接收方法及其程序
CN114090948A (zh) 旋转因子确定方法及装置、电子设备、存储介质
CN115001924B (zh) 基于序列的信号处理方法及装置
US8315148B2 (en) Method, apparatus, and computer product for generating an SC-FDMA signal
US20120314561A1 (en) Method and apparatus for implementing preamble generation
CN1965311A (zh) 在就地计算中具有用于最小潜伏的分区存储的快速傅立叶变换电路
CN108289069B (zh) 一种参考信号的传输方法、发送端和接收端
CN111404850B (zh) 一种基于5g系统的上行信道估计方法和装置
CN109802907B (zh) Ofdm符号生成方法和通信设备
US8483202B2 (en) Method for moving quantization noise introduced in fixed-point calculation of fast fourier transforms
Jia et al. Receiver design combining iteration detection and ICI compensation for SEFDM
US20140365547A1 (en) Mixed-radix pipelined fft processor and fft processing method using the same
CN102769600B (zh) 一种ofdm系统接收机中缩放因子解调制的方法及装置
CN103188192B (zh) 应用于视频传感器的基带处理装置
CN115544438A (zh) 数字通信系统中的旋转因子生成方法、装置和计算机设备
US20120275291A1 (en) Wireless communication apparatus and wireless communication method
JP5370111B2 (ja) 無線通信装置及び無線通信方法
CN115733713A (zh) 一种频偏估计方法、装置及存储介质
CN112866159A (zh) 一种基带信号生成方法及相关装置
US10798668B2 (en) Synchronization circuit, synchronization method, signal generating device, signal generating method, and recording medium
JP5487979B2 (ja) 無線通信装置及び無線通信方法
EP4187861A1 (en) Data processing method and apparatus, and device and storage medium
US8909686B2 (en) Discrete fourier calculation device, radio communication device, and discrete fourier calculation method
CN108933752A (zh) 一种prach基带信号的idft实现结构及实现方法
KR100890768B1 (ko) 데이터 변환 프로세서 및 이를 갖는직교주파수분할다중변조 수신장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination