CN118332267A - Signal processing system, method, product, equipment and medium - Google Patents
Signal processing system, method, product, equipment and medium Download PDFInfo
- Publication number
- CN118332267A CN118332267A CN202410764473.2A CN202410764473A CN118332267A CN 118332267 A CN118332267 A CN 118332267A CN 202410764473 A CN202410764473 A CN 202410764473A CN 118332267 A CN118332267 A CN 118332267A
- Authority
- CN
- China
- Prior art keywords
- transformed
- data
- sequence
- length
- signal
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/10—Pre-processing; Data cleansing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2131—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on a transform domain processing, e.g. wavelet transform
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Complex Calculations (AREA)
Abstract
Description
技术领域Technical Field
本发明涉及数据处理技术领域,特别涉及一种信号处理系统、方法、产品、设备及介质。The present invention relates to the field of data processing technology, and in particular to a signal processing system, method, product, device and medium.
背景技术Background technique
傅里叶变换(Fourier Transform)是一种线性积分变换,用于信号在时域和频域之间的变换,在物理学和工程学中有许多应用,如可利用傅里叶变换进行信号处理(包括音频信号处理、图像信号处理等等)。离散傅里叶变换是傅里叶变换在时域和频域上都呈现离散的形式;快速傅里叶变换(Fast Fourier Transform,FFT)是一种用于计算离散傅里叶变换的高效算法。现场可编程门阵列(Field Programmable Gate Array,FPGA)属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,具有布线资源丰富、可重复编程、集成度高、功耗低、并行度高等特点,在数字电路设计领域得到了广泛的应用。Fourier Transform is a linear integral transform used to transform signals between the time domain and the frequency domain. It has many applications in physics and engineering, such as signal processing (including audio signal processing, image signal processing, etc.) using Fourier Transform. Discrete Fourier Transform is a discrete form of Fourier Transform in both the time domain and the frequency domain; Fast Fourier Transform (FFT) is an efficient algorithm for calculating discrete Fourier Transform. Field Programmable Gate Array (FPGA) is a semi-custom circuit in application-specific integrated circuits. It is a programmable logic array with rich wiring resources, reprogrammable, high integration, low power consumption, high parallelism, etc. It has been widely used in the field of digital circuit design.
相关技术中,为提高信号处理速度采用FPGA实现快速傅里叶变换。但基于FPGA实现快速傅里叶变换的方案中,通常采用基2或基4的架构,这类架构只能用于长度为2的指数次幂的序列的快速傅里叶变换,对于长度为非2的指数次幂的情况无法处理,降低了基于FPGA快速傅里叶变换的能力。因此,如何高效实现信号处理是目前亟需解决的技术问题。In the related art, FPGA is used to implement fast Fourier transform in order to improve the signal processing speed. However, in the scheme of implementing fast Fourier transform based on FPGA, a base 2 or base 4 architecture is usually used. Such architecture can only be used for fast Fourier transform of sequences with a length of exponential power of 2, and cannot handle the case where the length is a power of exponential other than 2, which reduces the ability of fast Fourier transform based on FPGA. Therefore, how to efficiently implement signal processing is a technical problem that needs to be solved urgently.
发明内容Summary of the invention
有鉴于此,本发明的目的在于提供一种信号处理系统、方法、产品、设备及介质,能够满足多种长度序列的傅里叶变换需求,提高基于FPGA快速傅里叶变换的能力其具体方案如下:In view of this, the purpose of the present invention is to provide a signal processing system, method, product, device and medium, which can meet the Fourier transform requirements of sequences of various lengths and improve the ability of FPGA-based fast Fourier transform. The specific scheme is as follows:
第一方面,本发明公开了一种信号处理系统,应用于现场可编程门阵列,所述信号处理系统包括:信号获取模块、数据预处理模块、快速傅里叶变换模块、数据处理模块和数据后处理模块;In a first aspect, the present invention discloses a signal processing system, which is applied to a field programmable gate array, and the signal processing system comprises: a signal acquisition module, a data preprocessing module, a fast Fourier transform module, a data processing module and a data post-processing module;
所述信号获取模块用于获取输入信号对应的长度为N的待变换序列;The signal acquisition module is used to acquire a sequence to be transformed with a length of N corresponding to the input signal;
所述数据预处理模块用于对输入的长度为N的待变换序列进行预处理,得到P个长度为Q的待变换子序列;其中,N为复合数,N=P×Q;The data preprocessing module is used to preprocess the input sequence to be transformed with a length of N to obtain P subsequences to be transformed with a length of Q; wherein N is a composite number, N=P×Q;
与所述数据预处理模块相连的P个快速傅里叶变换模块,用于分别对所述待变换子序列进行傅里叶变换,得到变换后子序列;P fast Fourier transform modules connected to the data preprocessing module are used to perform Fourier transform on the subsequences to be transformed to obtain transformed subsequences;
所述数据处理模块用于对所述变换后子序列进行数据处理,得到Q个长度为P的新的待变换子序列;The data processing module is used to perform data processing on the transformed subsequence to obtain Q new subsequences to be transformed with a length of P;
与所述数据处理模块相连的Q个快速傅里叶变换模块,用于分别对所述新的待变换子序列进行傅里叶变换,得到新的变换后子序列;Q fast Fourier transform modules connected to the data processing module, used to perform Fourier transform on the new subsequences to be transformed respectively to obtain new transformed subsequences;
所述数据后处理模块用于对Q个所述新的变换后子序列进行数据重组,得到所述待变换序列对应的傅里叶变换后序列,以实现对所述输入信号的信号处理。The data post-processing module is used to perform data reorganization on the Q new transformed sub-sequences to obtain a Fourier transformed sequence corresponding to the sequence to be transformed, so as to realize signal processing of the input signal.
可选的,所述数据预处理模块,包括数据缓存单元、数据分组单元和数据封装单元;Optionally, the data preprocessing module includes a data cache unit, a data grouping unit and a data encapsulation unit;
所述数据缓存单元,用于将所述待变换序列缓存至长度为N的第一寄存器中;The data cache unit is used to cache the sequence to be transformed into a first register with a length of N;
所述数据分组单元,用于以长度Q为单位对所述待变换序列进行分组得到P个分组后数据,将所述分组后数据转存至P组长度为Q的第二寄存器中;The data grouping unit is used to group the sequence to be transformed in units of length Q to obtain P grouped data, and transfer the grouped data to a second register of P groups with a length of Q;
所述数据封装单元,用于分别从每个所述第二寄存器中取出分组后数据,并分别将每个所述分组后数据封装为高级可扩展接口,以得到P个长度为Q的待变换子序列。The data encapsulation unit is used to take out the grouped data from each of the second registers respectively, and encapsulate each of the grouped data into a high-level extensible interface respectively, so as to obtain P subsequences to be transformed with a length of Q.
可选的,所述数据处理模块,包括:复数乘法器、数据分组单元和数据封装单元;Optionally, the data processing module includes: a complex multiplier, a data grouping unit and a data encapsulation unit;
所述复数乘法器,用于通过将所述变换后子序列与子旋转因子之间一对一相乘,得到乘积;The complex multiplier is used to obtain a product by one-to-one multiplication between the transformed subsequence and the sub-rotation factor;
所述数据分组单元,用于以长度P为单位对所述乘积进行分组得到Q个分组后数据;The data grouping unit is used to group the product in units of length P to obtain Q grouped data;
所述数据封装单元,用于对每个分组后数据进行数据封装,得到Q个长度为P的新的待变换子序列。The data encapsulation unit is used to encapsulate each grouped data to obtain Q new subsequences to be transformed with a length of P.
可选的,所述数据处理模块,包括旋转因子获取单元;Optionally, the data processing module includes a rotation factor acquisition unit;
所述旋转因子获取单元,用于根据所述待变换序列的长度确定出对应的旋转因子,对所述旋转因子进行分组,得到P个子旋转因子。The rotation factor acquisition unit is used to determine the corresponding rotation factor according to the length of the sequence to be transformed, and group the rotation factors to obtain P sub-rotation factors.
可选的,所述数据处理模块,包括:Optionally, the data processing module includes:
旋转因子缩放单元,用于在对所述旋转因子进行分组之前,根据表征所述待变换序列的实部或虚部的位宽,确定针对所述旋转因子的放大倍数,利用所述放大倍数对所述旋转因子进行放大处理;A rotation factor scaling unit, configured to determine, before grouping the rotation factors, a magnification factor for the rotation factors according to a bit width representing a real part or an imaginary part of the sequence to be transformed, and amplify the rotation factors using the magnification factor;
数据截断单元,用于在以长度P为单位对所述乘积进行分组得到Q个分组后数据之前,根据所述放大倍数对所述乘积进行等比例缩小。The data truncation unit is used to reduce the product in proportion according to the magnification factor before grouping the product in units of length P to obtain Q grouped data.
可选的,所述数据后处理模块,包括:数据缓存单元、数据重组单元、数据封装单元;Optionally, the data post-processing module includes: a data cache unit, a data reassembly unit, and a data encapsulation unit;
所述数据缓存单元,用于利用Q组先入先出寄存器分别缓存Q个所述新的变换后子序列;The data cache unit is used to cache Q new transformed subsequences respectively using Q groups of first-in first-out registers;
所述数据重组单元,用于根据序列排序规则从所述先入先出寄存器依次取出所述新的变换后子序列,并进行数据重组得到重组后数据;The data reorganization unit is used to sequentially take out the new transformed subsequences from the first-in first-out register according to the sequence sorting rule, and perform data reorganization to obtain reorganized data;
所述数据封装单元,用于对所述重组后数据进行数据封装,得到所述傅里叶变换后序列。The data encapsulation unit is used to perform data encapsulation on the reorganized data to obtain the Fourier transformed sequence.
可选的,还包括系统接口;Optionally, a system interface is also included;
所述系统接口包括数据输入接口;The system interface includes a data input interface;
所述数据输入接口用于输出就绪信号,接收有效信号,并在有效信号为高电平过程中接收数据信号的输入得到待变换序列,在所述待变换序列的最后一个数据输入时结束信号由低电平变为高电平,在所述待变换序列输入完成后,所述有效信号和所述结束信号由高电平变为低电平。The data input interface is used to output a ready signal, receive a valid signal, and receive the input of a data signal when the valid signal is at a high level to obtain a sequence to be transformed. When the last data of the sequence to be transformed is input, the end signal changes from a low level to a high level. After the input of the sequence to be transformed is completed, the valid signal and the end signal change from a high level to a low level.
可选的,所述系统接口包括时钟信号接口、复位信号接口;Optionally, the system interface includes a clock signal interface and a reset signal interface;
所述时钟信号接口用于接收时钟信号;The clock signal interface is used to receive a clock signal;
所述复位信号接口用于接收复位信号。The reset signal interface is used to receive a reset signal.
可选的,所述系统接口包括结果输出接口;Optionally, the system interface includes a result output interface;
所述结果输出接口用于接收有效信号,在有效信号为高电平过程中输出傅里叶变换后序列,在所述傅里叶变换后序列的最后一个数据输出时结束信号由低电平变为高电平,在所述傅里叶变换后序列输出完成后,所述有效信号和所述结束信号由高电平变为低电平。The result output interface is used to receive a valid signal, output a Fourier transformed sequence when the valid signal is at a high level, and change an end signal from a low level to a high level when the last data of the Fourier transformed sequence is output. After the output of the Fourier transformed sequence is completed, the valid signal and the end signal change from a high level to a low level.
可选的,所述数据预处理模块,包括:Optionally, the data preprocessing module includes:
选择处理单元,用于根据目标参数判断计算类型;所述计算类型包括快速傅里叶变换和傅里叶逆变换;Selecting a processing unit, for determining a calculation type according to a target parameter; the calculation type includes a fast Fourier transform and an inverse Fourier transform;
虚部取负单元,用于将所述待变换序列的虚部取负值;An imaginary part negation unit, used for negating the imaginary part of the sequence to be transformed;
所述数据后处理模块,包括:The data post-processing module comprises:
虚部取负单元,用于将经过傅里叶逆变换的待变换序列的虚部取负值,并将序列的实部和虚部都除以序列长度。The imaginary part negation unit is used to negate the imaginary part of the sequence to be transformed after inverse Fourier transformation, and divide both the real part and the imaginary part of the sequence by the sequence length.
第二方面,本发明公开了一种信号处理方法,包括:In a second aspect, the present invention discloses a signal processing method, comprising:
获取输入信号对应的长度为N的待变换序列;Obtain a sequence to be transformed with a length of N corresponding to the input signal;
对长度为N的待变换序列进行预处理,得到P个长度为Q的待变换子序列;其中,N为复合数,N=P×Q;Preprocessing the sequence to be transformed with a length of N to obtain P subsequences to be transformed with a length of Q; wherein N is a composite number, N=P×Q;
利用P个快速傅里叶变换单元分别对所述待变换子序列进行傅里叶变换,得到变换后子序列;Using P fast Fourier transform units to perform Fourier transform on the subsequences to be transformed respectively to obtain transformed subsequences;
对所述变换后子序列进行数据处理,得到Q个长度为P的新的待变换子序列;Performing data processing on the transformed subsequence to obtain Q new subsequences to be transformed with a length of P;
利用Q个快速傅里叶变换单元分别对所述新的待变换子序列进行傅里叶变换,得到新的变换后子序列;Using Q fast Fourier transform units to perform Fourier transform on the new subsequences to be transformed respectively to obtain new transformed subsequences;
对Q个所述新的变换后子序列进行数据重组,得到所述待变换序列对应的傅里叶变换后序列,以实现对所述输入信号的信号处理。Data is reorganized on the Q new transformed subsequences to obtain a Fourier transformed sequence corresponding to the sequence to be transformed, so as to realize signal processing of the input signal.
第三方面,本发明公开了一种针对任意长度序列的信号处理方法,包括:In a third aspect, the present invention discloses a signal processing method for a sequence of arbitrary length, comprising:
利用前述的信号处理系统对输入的长度为M的待变换序列进行预处理,得到S个长度为D的待变换子序列,以及D个长度为S的新的待变换子序列;其中,M为正整数,M=S×D;The input sequence to be transformed of length M is preprocessed by using the aforementioned signal processing system to obtain S subsequences to be transformed of length D and D new subsequences to be transformed of length S; wherein M is a positive integer, M=S×D;
若所述S为以2为底的幂指数,则利用幂指数快速傅里叶变换模块对所述新的待变换子序列进行傅里叶变换;If S is a power exponent with base 2, a power exponential fast Fourier transform module is used to perform Fourier transform on the new subsequence to be transformed;
若所述D为素数,则利用素数快速傅里叶变换模块对所述待变换子序列进行傅里叶变换。If D is a prime number, a prime number fast Fourier transform module is used to perform Fourier transform on the subsequence to be transformed.
第四方面,本发明公开了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现前述的信号处理方法或针对任意长度序列的信号处理方法。In a fourth aspect, the present invention discloses a computer program product, comprising a computer program/instruction, which, when executed by a processor, implements the aforementioned signal processing method or the signal processing method for a sequence of arbitrary length.
第五方面,本发明公开了一种电子设备,包括:In a fifth aspect, the present invention discloses an electronic device, comprising:
存储器,用于保存计算机程序;Memory, used to store computer programs;
处理器,用于执行所述计算机程序,以实现前述的信号处理方法或针对任意长度序列的信号处理方法。A processor is used to execute the computer program to implement the aforementioned signal processing method or the signal processing method for a sequence of any length.
第六方面,本发明公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的信号处理方法或针对任意长度序列的信号处理方法。In a sixth aspect, the present invention discloses a computer-readable storage medium for storing a computer program; wherein the computer program, when executed by a processor, implements the aforementioned signal processing method or the signal processing method for a sequence of arbitrary length.
本发明中,信号处理系统包括信号获取模块、数据预处理模块、快速傅里叶变换模块、数据处理模块和数据后处理模块;其中,所述信号获取模块用于获取输入信号对应的长度为N的待变换序列;数据预处理模块用于对输入的长度为N的待变换序列进行预处理,得到P个长度为Q的待变换子序列;其中,N为复合数,N=P×Q;与数据预处理模块相连的P个快速傅里叶变换模块,用于分别对所述换子序列进行傅里叶变换,得到变换后子序列;数据处理模块用于对变换后子序列进行数据处理,得到Q个长度为P的新的待变换子序列;与数据处理模块相连的Q个快速傅里叶变换模块,用于分别对新的待变换子序列进行傅里叶变换,得到新的变换后子序列;数据后处理模块用于对Q个新的变换后子序列进行数据重组,得到待变换序列对应的傅里叶变换后序列。In the present invention, the signal processing system includes a signal acquisition module, a data preprocessing module, a fast Fourier transform module, a data processing module and a data post-processing module; wherein the signal acquisition module is used to acquire a sequence to be transformed of length N corresponding to an input signal; the data preprocessing module is used to preprocess the input sequence to be transformed of length N to obtain P subsequences to be transformed of length Q; wherein N is a composite number, N=P×Q; the P fast Fourier transform modules connected to the data preprocessing module are used to perform Fourier transform on the subsequences to obtain transformed subsequences; the data processing module is used to perform data processing on the transformed subsequences to obtain Q new subsequences to be transformed of length P; the Q fast Fourier transform modules connected to the data processing module are used to perform Fourier transform on the new subsequences to be transformed to obtain new transformed subsequences; the data post-processing module is used to perform data reorganization on the Q new transformed subsequences to obtain the Fourier transformed sequence corresponding to the sequence to be transformed.
可见,针对长度为复合数的序列,通过数据预处理模块将待变换序列分为待变换子序列,针对待变换子序列进行一次傅里叶变换,然后,利用数据处理模块将变换后子序列转换为新的待变换子序列,针对新的待变换子序列再进行一次傅里叶变换,将复合数的快速傅里叶变换拆分成两次短序列的傅里叶变换,并实现层层分解,满足多种长度序列的傅里叶变换需求,提高基于FPGA快速傅里叶变换的能力,提高快速傅里叶变换效率,提高信号处理速度。It can be seen that for sequences with a composite length, the sequence to be transformed is divided into subsequences to be transformed through the data preprocessing module, and a Fourier transform is performed on the subsequences to be transformed. Then, the transformed subsequences are converted into new subsequences to be transformed by the data processing module, and the new subsequences to be transformed are subjected to another Fourier transform. The fast Fourier transform of the composite number is split into two Fourier transforms of short sequences, and layer-by-layer decomposition is achieved to meet the Fourier transform requirements of sequences of various lengths, improve the ability of fast Fourier transform based on FPGA, improve the efficiency of fast Fourier transform, and improve the signal processing speed.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying creative work.
图1为本发明提供的一种信号处理系统结构示意图;FIG1 is a schematic diagram of the structure of a signal processing system provided by the present invention;
图2为本发明提供的一种具体的信号处理时序图;FIG2 is a specific signal processing timing diagram provided by the present invention;
图3为本发明提供的一种具体的信号处理系统结构示意图;FIG3 is a schematic diagram of a specific signal processing system structure provided by the present invention;
图4为本发明提供的一种具体的数据预处理模块结构示意图;FIG4 is a schematic diagram of a specific data preprocessing module structure provided by the present invention;
图5为本发明提供的一种具体的数据处理模块结构示意图;FIG5 is a schematic diagram of a specific data processing module structure provided by the present invention;
图6为本发明提供的一种具体的数据后处理模块结构示意图;FIG6 is a schematic diagram of a specific data post-processing module structure provided by the present invention;
图7为本发明提供的一种信号处理方法流程图;FIG7 is a flow chart of a signal processing method provided by the present invention;
图8为本发明提供的一种具体的针对任意长度序列的信号处理方法流程图;FIG8 is a flow chart of a specific signal processing method for a sequence of arbitrary length provided by the present invention;
图9为本发明提供的一种具体的针对任意长度序列的信号处理系统结构示意图;FIG9 is a schematic diagram of a specific signal processing system for sequences of arbitrary length provided by the present invention;
图10为本发明提供的一种具体的信号处理方法流程图。FIG10 is a flow chart of a specific signal processing method provided by the present invention.
具体实施方式Detailed ways
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
相关技术中,利用现场可编程门阵列实现快速傅里叶变换的方案中,通常采用基2或基4的架构,这类架构只能用于长度为2的指数次幂的序列的快速傅里叶变换,对于长度为非2的指数次幂的情况无法处理,降低了基于FPGA快速傅里叶变换的能力。为克服上述技术问题,本发明提出一种信号处理系统,能够满足多种长度序列的傅里叶变换需求,提高基于FPGA快速傅里叶变换的能力,提高信号处理速度。In the related art, in the scheme of implementing fast Fourier transform using field programmable gate array, a base 2 or base 4 architecture is usually adopted. Such architecture can only be used for fast Fourier transform of sequences with a length of exponential power of 2, and cannot handle the case where the length is a power of exponential other than 2, which reduces the ability of fast Fourier transform based on FPGA. In order to overcome the above technical problems, the present invention proposes a signal processing system that can meet the Fourier transform requirements of sequences of various lengths, improve the ability of fast Fourier transform based on FPGA, and improve the signal processing speed.
本发明实施例公开了一种信号处理系统,应用于现场可编程门阵列,参见图1所示,该系统可以包括信号获取模块11、数据预处理模块12、快速傅里叶变换模块13、数据处理模块14和数据后处理模块15;The embodiment of the present invention discloses a signal processing system, which is applied to a field programmable gate array. Referring to FIG1 , the system may include a signal acquisition module 11, a data preprocessing module 12, a fast Fourier transform module 13, a data processing module 14 and a data post-processing module 15;
信号获取模块用于获取输入信号对应的长度为N的待变换序列;输入信号可以为音频信号、视频信号等。The signal acquisition module is used to acquire a sequence to be transformed with a length of N corresponding to an input signal; the input signal may be an audio signal, a video signal, etc.
数据预处理模块用于对输入的长度为N的待变换序列进行预处理,得到P个长度为Q的待变换子序列;其中,N为复合数,N=P×Q。复合数是指除了能被1和它本身整除之外,还能被其它的数整除的大于1的自然数。The data preprocessing module is used to preprocess the input sequence to be transformed with a length of N, and obtain P subsequences to be transformed with a length of Q; where N is a composite number, N=P×Q. A composite number refers to a natural number greater than 1 that can be divided by other numbers besides 1 and itself.
首先对拆分计算傅里叶变换的算法原理进行简要描述:First, a brief description of the algorithm principle for splitting and calculating Fourier transform is given:
对于长度为N的序列x(n),其傅里叶变换表达式为:For a sequence x(n) of length N, its Fourier transform expression is:
(1); (1);
对于一个长度N为非2的指数次幂的复合数的序列,可以将其傅里叶变换拆分成两个傅里叶变换进行计算,即:For a sequence of composite numbers whose length N is an exponential power other than 2, its Fourier transform can be split into two Fourier transforms for calculation, namely:
(2); (2);
(3); (3);
则式(1)可以转换为Then formula (1) can be transformed into
(4); (4);
令式(4)中In imperative (4)
(5); (5);
则式(4)可以化简为Then formula (4) can be simplified to
(6); (6);
令式(6)中In imperative (6)
(7); (7);
则式(6)可以化简为Then formula (6) can be simplified to
(8); (8);
式(5)和(8)分别为长度为r1和r2的序列的傅里叶变换,而式(7)则为式(5)变换后的序列与旋转因子的乘积。综上所述,一个复合数的傅里叶变换,可以拆分为两个傅里叶变换进行计算,在两个傅里叶变换之间进行旋转因子的乘积处理;Equations (5) and (8) are the Fourier transforms of sequences of length r1 and r2, respectively, while equation (7) is the product of the transformed sequence of equation (5) and the rotation factor. In summary, the Fourier transform of a complex number can be split into two Fourier transforms for calculation, and the product of the rotation factor is processed between the two Fourier transforms;
(9); (9);
最后按照式(9)对变换后的序列进行重新排序。具体的,r1为确定值,取一个k0值,遍历所有k1值得到一组k值,再取另一个k0值,遍历所有K1值得到另一组k值,直至取完所有k0值。Finally, the transformed sequence is reordered according to formula (9). Specifically, r1 is a fixed value, a k0 value is taken, all k1 values are traversed to obtain a set of k values, and then another k0 value is taken, all K1 values are traversed to obtain another set of k values, until all k0 values are taken.
以序列长度N=8=4×2为例具体说明整个计算的流程。流程包括以下步骤:The whole calculation process is described in detail using the sequence length N=8=4×2. The process includes the following steps:
1、对一个8点x(0)~x(7)的序列,将其分为两个4点的序列:x(0)、x(2)、x(4)、x(6)和x(1)、x(3)、x(5)、x(7),分别对这两个序列进行傅里叶变换得到X1(0)、X1(2)、X1(4)、X1(6)和X1(1)、X1(3)、X1(5)、X1(7)。1. For an 8-point sequence x(0)~x(7), divide it into two 4-point sequences: x(0), x(2), x(4), x(6) and x(1), x(3), x(5), x(7). Perform Fourier transform on these two sequences and obtain X1 (0), X1 (2), X1 (4), X1 (6) and X1 (1), X1 (3), X1 (5), X1 (7).
2、上述两个序列分别乘其旋转因子,第一个序列n0=0,k0=0,1,2,3,第二个序列n0=1,k0=0,1,2,3,得到处理后的序列X1’(0)、X1’ (2)、X1’ (4)、X1’ (6)和X1’(1)、X1’(3)、X1’(5)、X1’(7)。2. Multiply the above two sequences by their rotation factors, the first sequence n0=0, k0=0, 1, 2, 3, and the second sequence n0=1, k0=0, 1, 2, 3, and obtain the processed sequences X 1 '(0), X 1 '(2), X 1 '(4), X 1 '(6) and X 1 '(1), X 1 '(3), X 1 '(5), X 1 '(7).
3、将上述两个4点的序列重新组合成四个2点的序列,分别是X1’(0)、X1’ (1),X1’(2)、X1’(3),X1’(4)、X1’(5),X1’(6)、X1’(7),并对这四个序列分别求傅里叶变换,即公式(8),得到X2 (0)、X2(1),X2(2)、X2(3),X2(4)、X2(5),X2(6)、X2(7)。3. Recombine the above two 4-point sequences into four 2-point sequences, namely X1 '(0), X1 '(1), X1 '(2), X1 '(3), X1 '(4), X1 '(5), X1 '(6), X1 '(7), and calculate the Fourier transform of these four sequences, that is, formula (8), to obtain X2(0), X2(1), X2(2), X2(3), X2(4), X2(5), X2(6), X2(7).
4、最后根据公式(9)对上述4个序列重新排序,得到X2(0)、X2(2)、X2(4)、X2(6)、X2(1)、X2(3)、X2(5)、X2(7)。需要说明的是,先分为两个4点长度的子序列,还是四个2点长度的子序列都可以,本实施例对此不做限定。4. Finally, the above four sequences are reordered according to formula (9) to obtain X2(0), X2(2), X2(4), X2(6), X2(1), X2(3), X2(5), and X2(7). It should be noted that the sequence can be divided into two subsequences of 4 points or four subsequences of 2 points, which is not limited in this embodiment.
本实施例中,上述信号处理系统,还包括系统接口;所述系统接口包括数据输入接口;所述数据输入接口用于输出就绪信号,接收有效信号,并在有效信号为高电平过程中接收数据信号的输入得到待变换序列,在所述待变换序列的最后一个数据输入时结束信号由低电平变为高电平,在所述待变换序列输入完成后,所述有效信号和所述结束信号由高电平变为低电平。即通过配合就绪信号、有效信号,获取数据信号的有效输入数据得到待变换序列。In this embodiment, the above-mentioned signal processing system further includes a system interface; the system interface includes a data input interface; the data input interface is used to output a ready signal, receive a valid signal, and receive the input of a data signal when the valid signal is at a high level to obtain a sequence to be transformed, and when the last data of the sequence to be transformed is input, the end signal changes from a low level to a high level, and after the input of the sequence to be transformed is completed, the valid signal and the end signal change from a high level to a low level. That is, by coordinating the ready signal and the valid signal, the valid input data of the data signal is obtained to obtain the sequence to be transformed.
本实施例中,上述系统接口包括时钟信号接口、复位信号接口;所述时钟信号接口用于接收时钟信号;所述复位信号接口用于接收复位信号。复位信号用于系统初始化。In this embodiment, the system interface includes a clock signal interface and a reset signal interface; the clock signal interface is used to receive a clock signal; the reset signal interface is used to receive a reset signal. The reset signal is used for system initialization.
本实施例中,所述系统接口包括结果输出接口;所述结果输出接口用于接收有效信号,在有效信号为高电平过程中输出傅里叶变换后序列,在所述傅里叶变换后序列的最后一个数据输出时结束信号由低电平变为高电平,在所述傅里叶变换后序列输出完成后,所述有效信号和所述结束信号由高电平变为低电平。即在结果输出时,同理通过有效信号和结束信号,获取数据信号的有效输出数据得到傅里叶变换后序列。In this embodiment, the system interface includes a result output interface; the result output interface is used to receive a valid signal, output a Fourier transformed sequence when the valid signal is at a high level, and when the last data of the Fourier transformed sequence is output, the end signal changes from a low level to a high level, and after the output of the Fourier transformed sequence is completed, the valid signal and the end signal change from a high level to a low level. That is, when the result is output, the valid output data of the data signal is obtained through the valid signal and the end signal to obtain the Fourier transformed sequence.
可以理解的是,信号处理系统的接口包括时钟、复位、数据输入和结果输出。时钟和复位接口为信号处理单元提供时钟和复位信号。数据输入接口为待变换序列的输入接口,而结果输出接口为变换后的序列的输出接口,接口形式上可以是裸的数据、轻量级高级可扩展接口,或者高级可扩展流接口。为了统一接口,综合考虑接口复杂度和灵活性,本实施例选择高级可扩展流接口,数据输入和结果输出接口都由就绪信号、有效信号、数据信号和结束信号组成。由于待变换序列的每个元素都为复数,由实部和虚部构成,在本实施例中实部和虚部分别用32位的数据表示,则数据信号的位宽为64位,低32位表示复数的实部,高32位表示复数的虚部,当然实部和虚部的位宽可根据实际需求进行灵活的调整。It is understandable that the interface of the signal processing system includes clock, reset, data input and result output. The clock and reset interface provide clock and reset signals for the signal processing unit. The data input interface is the input interface of the sequence to be transformed, and the result output interface is the output interface of the sequence after transformation. The interface form can be naked data, lightweight advanced extensible interface, or advanced extensible stream interface. In order to unify the interface, the interface complexity and flexibility are comprehensively considered. The advanced extensible stream interface is selected in this embodiment. The data input and result output interfaces are composed of ready signal, valid signal, data signal and end signal. Since each element of the sequence to be transformed is a complex number, it is composed of a real part and an imaginary part. In this embodiment, the real part and the imaginary part are represented by 32-bit data respectively, then the bit width of the data signal is 64 bits, the lower 32 bits represent the real part of the complex number, and the upper 32 bits represent the imaginary part of the complex number. Of course, the bit width of the real part and the imaginary part can be flexibly adjusted according to actual needs.
信号处理系统的时序图如图2所示,变换系统启动后,首先对其进行复位,使内部寄存器初始化为默认值,然后取消复位。随后数据输入接口输出就绪信号,表明系统已准备好接收待变换序列,然后外部模块接收有效信号,表示输入的数据信号有效,依次输入待变换的序列。如待变换的序列长度为8,则在8个时钟周期后完成数据的输入,并在最后一个数据输入时结束信号由低电平变为高电平,在所有数据输入完成后,所述有效信号和所述结束信号由高电平变为低电平。在经过一段时间的计算后,信号处理系统完成变换任务,开始输出变换的结果。结果输出接口首先接收有效信号,然后依次输出8个变换后的序列元素,并在输出最后一个元素时结束信号由低电平变为高电平,在所有结果输出完成后,所述有效信号和所述结束信号由高电平变为低电平,完成整个计算任务。The timing diagram of the signal processing system is shown in FIG2. After the transformation system is started, it is first reset to initialize the internal register to the default value, and then the reset is canceled. Subsequently, the data input interface outputs a ready signal, indicating that the system is ready to receive the sequence to be transformed, and then the external module receives a valid signal, indicating that the input data signal is valid, and the sequence to be transformed is input in sequence. If the length of the sequence to be transformed is 8, the data input is completed after 8 clock cycles, and the end signal changes from a low level to a high level when the last data is input. After all data inputs are completed, the valid signal and the end signal change from a high level to a low level. After a period of calculation, the signal processing system completes the transformation task and starts to output the transformation results. The result output interface first receives a valid signal, and then outputs 8 transformed sequence elements in sequence, and the end signal changes from a low level to a high level when the last element is output. After all results are output, the valid signal and the end signal change from a high level to a low level, completing the entire calculation task.
以复合数8对应的信号处理系统为例,例如图3所示,其接口包括时钟、复位、数据输入和结果输出接口,内部由数据预处理模块、快速傅里叶变换模块、数据处理模块和数据后处理模块构成。其它复合数的架构类似,只是数据分组的情况和前后两次快速傅里叶变换模块的数量不同。Taking the signal processing system corresponding to the composite number 8 as an example, as shown in Figure 3, its interface includes clock, reset, data input and result output interfaces, and is internally composed of a data preprocessing module, a fast Fourier transform module, a data processing module and a data post-processing module. The architecture of other composite numbers is similar, except that the data grouping and the number of fast Fourier transform modules before and after are different.
在一些实施例中,所述数据预处理模块12,可以包括数据缓存单元、数据分组单元和数据封装单元;所述数据缓存单元,用于将所述待变换序列缓存至长度为N的第一寄存器中;所述数据分组单元,用于以长度Q为单位对所述待变换序列进行分组得到P个分组后数据,将所述分组后数据转存至P组长度为Q的第二寄存器中;所述数据封装单元,用于分别从每个所述第二寄存器中取出分组后数据,并分别将每个所述分组后数据封装为高级可扩展接口,以得到P个长度为Q的待变换子序列。即利用数据预处理模块对输入的待变换序列按照算法需求进行分组。In some embodiments, the data preprocessing module 12 may include a data cache unit, a data grouping unit and a data encapsulation unit; the data cache unit is used to cache the sequence to be transformed into a first register with a length of N; the data grouping unit is used to group the sequence to be transformed in units of length Q to obtain P grouped data, and transfer the grouped data to P groups of second registers with a length of Q; the data encapsulation unit is used to take out the grouped data from each of the second registers, and encapsulate each of the grouped data into a high-level extensible interface, so as to obtain P subsequences to be transformed with a length of Q. That is, the input sequence to be transformed is grouped according to the algorithm requirements using the data preprocessing module.
例如图4所示为数据预处理模块结构示意图,以序列长度为8、拆分模式为4×2为例进行说明。数据预处理模块在接收到高级可扩展流接口输入的8个数据后首先将原始数据缓存到一组长度为8的寄存器中,然后根据算法公式(3)对数据进行分组,将数据转存到2组长度为4的寄存器中;最后,分别从两组寄存器中取出数据,将数据封装为高级可扩展流接口,分别输入到两个快速傅里叶变换模块中进行傅里叶变换。For example, Figure 4 shows a schematic diagram of the data preprocessing module structure, taking the sequence length of 8 and the split mode of 4×2 as an example. After receiving 8 data input from the advanced scalable stream interface, the data preprocessing module first caches the original data into a group of registers with a length of 8, and then groups the data according to the algorithm formula (3) and transfers the data to 2 groups of registers with a length of 4; finally, the data is taken out from the two groups of registers, encapsulated into the advanced scalable stream interface, and input into two fast Fourier transform modules for Fourier transform.
与所述数据预处理模块相连的P个快速傅里叶变换模块13,用于分别对所述待变换子序列进行傅里叶变换,得到变换后子序列。数据预处理模块输出的两组待变换的序列分别输入两个快速傅里叶变换模块中,经过计算后可得到傅里叶变换后的序列,该模块输出的接口同样是高级可扩展流接口。待变换子序列为指数次幂时,快速傅里叶变换模块可以为用于计算长度为2的指数次幂序列的傅里叶变换模块。若待变换序列N拆分后为序列长度为素数的待变换子序列,则利用适用于素数的傅里叶变换模块进行计算。The P fast Fourier transform modules 13 connected to the data preprocessing module are used to perform Fourier transform on the subsequences to be transformed respectively to obtain transformed subsequences. The two groups of sequences to be transformed output by the data preprocessing module are respectively input into two fast Fourier transform modules, and the sequences after Fourier transform can be obtained after calculation. The interface output by this module is also an advanced extensible stream interface. When the subsequence to be transformed is an exponential power, the fast Fourier transform module can be a Fourier transform module for calculating an exponential power sequence with a length of 2. If the sequence to be transformed N is split into a subsequence to be transformed with a sequence length of a prime number, the Fourier transform module suitable for prime numbers is used for calculation.
所述数据处理模块14用于对所述变换后子序列进行数据处理,得到Q个长度为P的新的待变换子序列。The data processing module 14 is used to perform data processing on the transformed subsequence to obtain Q new subsequences to be transformed with a length of P.
上述数据处理模块,包括旋转因子获取单元;所述旋转因子获取单元,用于根据所述待变换序列的长度确定出对应的旋转因子,对所述旋转因子进行分组,得到P个子旋转因子。可以理解的是,数据处理模块用于将变换后的两个序列分别和旋转因子的对应元素相乘。旋转因子即为。在序列长度确定后,旋转因子的数值是确定的,所以可以在现场可编程门阵列器件内部事先定义一些长度的旋转因子,旋转因子可以通过编写Python或C++程序计算得到。The above-mentioned data processing module includes a rotation factor acquisition unit; the rotation factor acquisition unit is used to determine the corresponding rotation factor according to the length of the sequence to be transformed, group the rotation factor, and obtain P sub-rotation factors. It can be understood that the data processing module is used to multiply the two transformed sequences with the corresponding elements of the rotation factor respectively. The rotation factor is After the sequence length is determined, the value of the rotation factor is determined, so some rotation factors of certain lengths can be pre-defined inside the field programmable gate array device, and the rotation factor can be calculated by writing a Python or C++ program.
在一些实施例中,所述数据处理模块,可以包括:旋转因子缩放单元,用于在对所述旋转因子进行分组之前,根据表征所述待变换序列的实部或虚部的位宽,确定针对所述旋转因子的放大倍数,利用所述放大倍数对所述旋转因子进行放大处理;数据截断单元,用于在以长度P为单位对所述乘积进行分组得到Q个分组后数据之前,根据所述放大倍数对所述乘积进行等比例缩小。即为了提高算法的计算精度,本实施例中根据数据位宽对旋转因子进行适当的缩放,如本实施例的数据位宽选择为32位,则可以将旋转因子放大倍。这个缩放倍数可以根据实际需求进行灵活的调整。对于旋转因子,同样需要按照算公式(3)对数据进行分组,将数据转存到2组长度为4的寄存器中。In some embodiments, the data processing module may include: a rotation factor scaling unit, which is used to determine the magnification factor for the rotation factor according to the bit width representing the real part or imaginary part of the sequence to be transformed before grouping the rotation factor, and use the magnification factor to amplify the rotation factor; a data truncation unit, which is used to proportionally reduce the product according to the magnification factor before grouping the product in units of length P to obtain Q grouped data. That is, in order to improve the calculation accuracy of the algorithm, in this embodiment, the rotation factor is appropriately scaled according to the data bit width. For example, if the data bit width of this embodiment is selected as 32 bits, the rotation factor can be magnified. This scaling factor can be flexibly adjusted according to actual needs. For the rotation factor, the data also needs to be grouped according to formula (3) and transferred to two groups of registers with a length of 4.
上述数据处理模块,具体可以包括:复数乘法器、数据分组单元和数据封装单元;其中,所述复数乘法器,用于通过将所述变换后子序列与子旋转因子之间一对一相乘,得到乘积;所述数据分组单元,用于以长度P为单位对所述乘积进行分组得到Q个分组后数据;所述数据封装单元,用于对每个分组后数据进行数据封装,得到Q个长度为P的新的待变换子序列。The above-mentioned data processing module may specifically include: a complex multiplier, a data grouping unit and a data encapsulation unit; wherein the complex multiplier is used to obtain a product by one-to-one multiplication between the transformed subsequence and the sub-rotation factor; the data grouping unit is used to group the product in units of length P to obtain Q grouped data; the data encapsulation unit is used to perform data encapsulation on each grouped data to obtain Q new subsequences to be transformed with a length of P.
例如图5所示为数据处理模块的内部结构示意图,变换后的两组序列分别与两组旋转因子的对应元素相乘。需要说明的是,此处为复数的乘法,乘积后的实部为变换后序列和旋转因子对应实部相乘和对应虚部相乘的差,乘积后的虚部为变换后序列和旋转因子实部和虚部交叉相乘的和。因为对旋转因子进行了放大处理,所以在数据处理模块中通过数据截断的方式对数据进行等比例的缩小,以保证数据不溢出。之后按照算法公式(3)对数据重新进行分组,将两个4点的序列重新分为4个2点的序列。最后同样将分组后的序列封装为高级可扩展流接口,然后输入到4个快速傅里叶变换模块中进行下一步的傅里叶变换。For example, FIG5 shows a schematic diagram of the internal structure of the data processing module, where the two sets of transformed sequences are multiplied with the corresponding elements of the two sets of rotation factors. It should be noted that this is a complex number multiplication, and the real part of the product is the difference between the transformed sequence and the corresponding real part of the rotation factor and the corresponding imaginary part, and the imaginary part of the product is the sum of the cross-multiplication of the transformed sequence and the real and imaginary parts of the rotation factor. Because the rotation factor is amplified, the data is proportionally reduced by data truncation in the data processing module to ensure that the data does not overflow. Then, the data is regrouped according to the algorithm formula (3), and the two 4-point sequences are redivided into 4 2-point sequences. Finally, the grouped sequences are also encapsulated as an advanced extensible stream interface, and then input into the four fast Fourier transform modules for the next Fourier transform.
与所述数据处理模块14相连的Q个快速傅里叶变换模块13,用于分别对所述新的待变换子序列进行傅里叶变换,得到新的变换后子序列。即得到新的待变换子序列后,再次利用快速傅里叶变换模块进行运算,运算结果作为新的变换后子序列。The Q fast Fourier transform modules 13 connected to the data processing module 14 are used to perform Fourier transform on the new subsequence to be transformed respectively to obtain a new transformed subsequence. That is, after obtaining the new subsequence to be transformed, the fast Fourier transform module is used again to perform calculations, and the calculation results are used as the new transformed subsequences.
所述数据后处理模块15用于对Q个所述新的变换后子序列进行数据重组,得到所述待变换序列对应的傅里叶变换后序列。数据后处理模块将多个新的变换后子序列按照算法规定的顺序重组成一个序列,最终得到待变换序列对应的傅里叶变换后序列。The data post-processing module 15 is used to reorganize the Q new transformed subsequences to obtain the Fourier transformed sequence corresponding to the sequence to be transformed. The data post-processing module reorganizes the multiple new transformed subsequences into a sequence according to the order specified by the algorithm, and finally obtains the Fourier transformed sequence corresponding to the sequence to be transformed.
上述数据后处理模块,具体可以包括数据缓存单元、数据重组单元、数据封装单元;其中,所述数据缓存单元,用于利用Q组先入先出寄存器分别缓存Q个所述新的变换后子序列;所述数据重组单元,用于根据序列排序规则从所述先入先出寄存器依次取出所述新的变换后子序列,并进行数据重组得到重组后数据;所述数据封装单元,用于对所述重组后数据进行数据封装,得到所述傅里叶变换后序列。例如图6所示为数据后处理模块结构示意图,数据后处理模块用于数据的缓存和重组;以长度为8的待变换序列为例,使用4组先入先出寄存器缓存4个快速傅里叶变换模块输出的4组新的变换后子序列。根据算法公式(9)依次从4组先入先出寄存器中取出需要的数据,并将数据封装为高级可扩展流接口进行输出,由此完成复合数的整个快速傅里叶变换流程。The above-mentioned data post-processing module may specifically include a data cache unit, a data reorganization unit, and a data encapsulation unit; wherein the data cache unit is used to use Q groups of first-in first-out registers to cache Q of the new transformed subsequences respectively; the data reorganization unit is used to sequentially take out the new transformed subsequences from the first-in first-out registers according to the sequence sorting rule, and perform data reorganization to obtain reorganized data; the data encapsulation unit is used to perform data encapsulation on the reorganized data to obtain the Fourier transformed sequence. For example, FIG6 shows a schematic diagram of the structure of the data post-processing module, and the data post-processing module is used for data caching and reorganization; taking the sequence to be transformed with a length of 8 as an example, 4 groups of first-in first-out registers are used to cache 4 groups of new transformed subsequences output by 4 fast Fourier transform modules. According to the algorithm formula (9), the required data is sequentially taken out from the 4 groups of first-in first-out registers, and the data is encapsulated into a high-level extensible stream interface for output, thereby completing the entire fast Fourier transform process of the composite number.
除快速傅里叶变换外,上述系统还可以实现傅里叶逆变换。在一些实施例中,所述数据预处理模块,包括选择处理单元,用于根据目标参数判断计算类型;所述计算类型包括快速傅里叶变换和傅里叶逆变换;虚部取负单元,用于将所述待变换序列的虚部取负值。即当需要进行逆变换时,对待变换序列的虚部取负值。上述数据后处理模块,可以包括:虚部取负单元,用于将经过傅里叶逆变换的待变换序列的虚部取负值,并将序列的实部和虚部都除以序列长度。In addition to the fast Fourier transform, the above system can also implement the inverse Fourier transform. In some embodiments, the data preprocessing module includes a selection processing unit for determining the calculation type according to the target parameter; the calculation type includes fast Fourier transform and inverse Fourier transform; an imaginary part negation unit for taking a negative value for the imaginary part of the sequence to be transformed. That is, when an inverse transform is required, the imaginary part of the sequence to be transformed is taken a negative value. The above data post-processing module may include: an imaginary part negation unit for taking a negative value for the imaginary part of the sequence to be transformed after the inverse Fourier transform, and dividing both the real part and the imaginary part of the sequence by the sequence length.
即将输入的待变换序列x(n)进行共轭处理,然后再进行后续的操作。对新的变换后子序列X2(n)取共轭,并除以序列长度。在增加这两处的处理后,即可完成复合数的快速傅里叶逆变换。在系统架构中,增加一个参数定义(IFFT),如果IFFT定义为0,则进行快速傅里叶变换,如果定义为1,则表示进行快速傅里叶逆变换。在数据预处理模块中增加一步选择处理,在进行快速傅里叶逆变换时,将输入的待变换序列元素的虚部取负值,而在进行快速傅里叶变换时输入的待变换序列元素不做处理。同时,在数据后处理模块中也增加一步选择处理,在进行快速傅里叶逆变换时,将变换后的序列元素的虚部取负值,同时将元素的实部和虚部都除以序列长度,而在进行快速傅里叶变换时变换后的序列元素不做处理。That is, the input sequence to be transformed x(n) is conjugated, and then the subsequent operations are performed. The new transformed subsequence X2(n) is conjugated and divided by the sequence length. After adding these two processings, the inverse fast Fourier transform of the complex number can be completed. In the system architecture, a parameter definition (IFFT) is added. If IFFT is defined as 0, a fast Fourier transform is performed. If it is defined as 1, it means that an inverse fast Fourier transform is performed. A step of selection processing is added to the data preprocessing module. When performing an inverse fast Fourier transform, the imaginary part of the input sequence element to be transformed is negative, and the input sequence element to be transformed is not processed when performing a fast Fourier transform. At the same time, a step of selection processing is also added to the data post-processing module. When performing an inverse fast Fourier transform, the imaginary part of the transformed sequence element is negative, and the real and imaginary parts of the element are divided by the sequence length. When performing a fast Fourier transform, the transformed sequence element is not processed.
由上可见,本实施例中信号处理系统包括数据预处理模块、快速傅里叶变换模块、数据处理模块和数据后处理模块;其中,数据预处理模块用于对输入的长度为N的待变换序列进行预处理,得到P个长度为Q的待变换子序列;其中,N为复合数,N=P×Q;与数据预处理模块相连的P个快速傅里叶变换模块,用于分别对所述换子序列进行傅里叶变换,得到变换后子序列;数据处理模块用于对变换后子序列进行数据处理,得到Q个长度为P的新的待变换子序列;与数据处理模块相连的Q个快速傅里叶变换模块,用于分别对新的待变换子序列进行傅里叶变换,得到新的变换后子序列;数据后处理模块用于对Q个新的变换后子序列进行数据重组,得到待变换序列对应的傅里叶变换后序列。由此,针对长度为复合数的序列,通过数据预处理模块将待变换序列分为待变换子序列,针对待变换子序列进行一次傅里叶变换,然后,利用数据处理模块将变换后子序列转换为新的待变换子序列,针对新的待变换子序列再进行一次傅里叶变换,将复合数的快速傅里叶变换拆分成两次短序列的傅里叶变换,并实现层层分解,满足多种长度序列的傅里叶变换需求,提高基于FPGA快速傅里叶变换的能力,提高信号处理速度。As can be seen from the above, the signal processing system in this embodiment includes a data preprocessing module, a fast Fourier transform module, a data processing module and a data post-processing module; wherein the data preprocessing module is used to preprocess the input sequence to be transformed with a length of N to obtain P subsequences to be transformed with a length of Q; wherein N is a composite number, N=P×Q; the P fast Fourier transform modules connected to the data preprocessing module are used to perform Fourier transform on the subsequences to be transformed respectively to obtain transformed subsequences; the data processing module is used to perform data processing on the transformed subsequences to obtain Q new subsequences to be transformed with a length of P; the Q fast Fourier transform modules connected to the data processing module are used to perform Fourier transform on the new subsequences to be transformed respectively to obtain new transformed subsequences; the data post-processing module is used to perform data reorganization on the Q new transformed subsequences to obtain the Fourier transformed sequence corresponding to the sequence to be transformed. Therefore, for a sequence whose length is a composite number, the sequence to be transformed is divided into subsequences to be transformed through a data preprocessing module, a Fourier transform is performed on the subsequences to be transformed, and then the transformed subsequences are converted into new subsequences to be transformed by the data processing module, and the new subsequences to be transformed are subjected to another Fourier transform, the fast Fourier transform of the composite number is split into two Fourier transforms of short sequences, and layer-by-layer decomposition is achieved to meet the Fourier transform requirements of sequences of various lengths, improve the capability of fast Fourier transform based on FPGA, and improve the signal processing speed.
相应的,本发明实施例还公开了一种信号处理方法,应用于FPGA,适用于任意正整数,例如图7所示,该方法包括以下步骤:Correspondingly, an embodiment of the present invention further discloses a signal processing method, which is applied to FPGA and is applicable to any positive integer. For example, as shown in FIG7 , the method includes the following steps:
步骤S11:获取输入信号对应的长度为N的待变换序列;Step S11: obtaining a sequence to be transformed with a length of N corresponding to the input signal;
步骤S12:利用信号处理系统对输入的长度为M的待变换序列进行预处理,得到S个长度为D的待变换子序列,以及D个长度为S的新的待变换子序列;其中,M为正整数,M=S×D;Step S12: using a signal processing system to preprocess the input sequence to be transformed of length M, to obtain S subsequences to be transformed of length D, and D new subsequences to be transformed of length S; wherein M is a positive integer, M=S×D;
步骤S13:若所述S为以2为底的幂指数,则利用幂指数快速傅里叶变换模块对所述新的待变换子序列进行傅里叶变换;Step S13: if S is a power exponent with base 2, using a power exponential fast Fourier transform module to perform Fourier transform on the new subsequence to be transformed;
步骤S14:若所述D为素数,则利用素数快速傅里叶变换模块对所述待变换子序列进行傅里叶变换。Step S14: If D is a prime number, a prime number fast Fourier transform module is used to perform Fourier transform on the subsequence to be transformed.
基于上述信号处理系统以及幂指数快速傅里叶变换模块、素数快速傅里叶变换模块,能够实现任意长度序列的快速傅里叶变换。以长度为56的序列为例说明,其它长度的序列计算原理类似。例如图8所示为长度为56的序列对应的快速傅里叶变换流程图,图9所示为长度为56的序列对应的快速傅里叶变换系统架构示意图。对于长度为56的序列,首先使用复合数的信号处理系统进行变换,将其拆分为7×8的两种傅里叶变换,对于长度为素数7的子序列,使用素数的傅里叶变换模块进行变换;而对于长度为8(2的指数次幂)的子序列,则采用2的指数次幂的傅里叶变换模块进行变换。对于素数7,在使用了素数的傅里叶变换模块后,将子序列转换成了长度为6的傅里叶变换,并配合傅里叶逆变换;而长度为6的序列的傅里叶变换又可以进一步的拆分为2×3的两种傅里叶变换,而素数3可以使用素数的傅里叶变换单元将其转换位长度为2的傅里叶变换,最终底层的傅里叶变换都使用2的指数次幂的傅里叶变换单元进行变换。Based on the above signal processing system and the exponential fast Fourier transform module and the prime fast Fourier transform module, the fast Fourier transform of a sequence of any length can be realized. Take a sequence of length 56 as an example, and the calculation principle of sequences of other lengths is similar. For example, FIG8 shows a fast Fourier transform flow chart corresponding to a sequence of length 56, and FIG9 shows a schematic diagram of the fast Fourier transform system architecture corresponding to a sequence of length 56. For a sequence of length 56, a composite number signal processing system is first used for transformation, and it is split into two 7×8 Fourier transforms. For a subsequence of length 7, a prime number Fourier transform module is used for transformation; and for a subsequence of length 8 (exponential power of 2), an exponential power of 2 Fourier transform module is used for transformation. For the prime number 7, after using the prime number Fourier transform module, the subsequence is converted into a Fourier transform of length 6, and combined with the inverse Fourier transform; the Fourier transform of the sequence of length 6 can be further split into two 2×3 Fourier transforms, and the prime number 3 can be converted into a Fourier transform of length 2 using the prime number Fourier transform unit. Finally, the underlying Fourier transforms are all transformed using the Fourier transform unit of the exponential power of 2.
上述利用信号处理系统对输入的长度为M的待变换序列进行预处理之前,还包括:判断所述M是否为以2为底的幂指数,若是,则利用幂指数快速傅里叶变换模块对所述待变换序列进行傅里叶变换,若否,则执行所述利用信号处理系统对输入的长度为M的待变换序列进行预处理的操作。上述利用素数快速傅里叶变换模块对所述待变换子序列进行傅里叶变换之后,还包括:判断所述待变换子序列经过素数快速傅里叶变换模块转换后的长度为H的子序列,是否为以2为底的幂指数,若是,则利用幂指数快速傅里叶变换模块对所述长度为H的子序列进行傅里叶变换,若否,则利用信号处理系统对长度为H的子序列进行预处理。针对现场可编程门阵列,使用普通的基2架构完成最底层的傅里叶变换,结合复合数信号处理系统和素数傅里叶变换系统,能够满足各应用场景下任意长度序列的傅里叶变换需求。Before the above-mentioned use of the signal processing system to preprocess the input sequence to be transformed with a length of M, it also includes: judging whether the M is a power exponent with a base of 2, and if so, using the power exponential fast Fourier transform module to perform Fourier transform on the sequence to be transformed, and if not, executing the operation of using the signal processing system to preprocess the input sequence to be transformed with a length of M. After the above-mentioned use of the prime number fast Fourier transform module to perform Fourier transform on the subsequence to be transformed, it also includes: judging whether the subsequence with a length of H after the subsequence to be transformed is a power exponent with a base of 2, and if so, using the power exponential fast Fourier transform module to perform Fourier transform on the subsequence with a length of H, and if not, using the signal processing system to preprocess the subsequence with a length of H. For field programmable gate arrays, the most basic Fourier transform is completed using an ordinary radix 2 architecture, combined with a composite number signal processing system and a prime number Fourier transform system, which can meet the Fourier transform requirements of sequences of any length in various application scenarios.
相应的,本发明实施例还公开了一种针对任意长度序列的信号处理方法,参见图10所示,该方法包括以下步骤:Correspondingly, an embodiment of the present invention further discloses a signal processing method for a sequence of arbitrary length, as shown in FIG10 , the method comprises the following steps:
步骤S21:对输入的长度为N的待变换序列进行预处理,得到P个长度为Q的待变换子序列;其中,N为复合数,N=P×Q;Step S21: preprocessing the input sequence to be transformed of length N to obtain P subsequences to be transformed of length Q; wherein N is a composite number, N=P×Q;
步骤S22:利用P个快速傅里叶变换单元分别对所述待变换子序列进行傅里叶变换,得到变换后子序列;Step S22: using P fast Fourier transform units to perform Fourier transform on the subsequences to be transformed respectively to obtain transformed subsequences;
步骤S23:对所述变换后子序列进行数据处理,得到Q个长度为P的新的待变换子序列;Step S23: performing data processing on the transformed subsequence to obtain Q new subsequences to be transformed with a length of P;
步骤S24:利用Q个快速傅里叶变换单元分别对所述新的待变换子序列进行傅里叶变换,得到新的变换后子序列;Step S24: using Q fast Fourier transform units to perform Fourier transform on the new subsequence to be transformed respectively to obtain a new transformed subsequence;
步骤S25:对Q个所述新的变换后子序列进行数据重组,得到所述待变换序列对应的傅里叶变换后序列。Step S25: reorganize the Q new transformed subsequences to obtain a Fourier transformed sequence corresponding to the sequence to be transformed.
由上可见,本实施例中,针对长度为复合数的序列,通过将待变换序列分为待变换子序列,针对待变换子序列进行一次傅里叶变换,然后,将变换后子序列转换为新的待变换子序列,针对新的待变换子序列再进行一次傅里叶变换,将复合数的快速傅里叶变换拆分成两次短序列的傅里叶变换,并实现层层分解,满足多种长度序列的傅里叶变换需求,提高基于FPGA快速傅里叶变换的能力。As can be seen from the above, in this embodiment, for a sequence whose length is a composite number, the sequence to be transformed is divided into subsequences to be transformed, a Fourier transform is performed on the subsequences to be transformed, and then the transformed subsequences are converted into new subsequences to be transformed, and the new subsequences to be transformed are subjected to another Fourier transform, the fast Fourier transform of the composite number is split into two Fourier transforms of short sequences, and layer-by-layer decomposition is implemented to meet the Fourier transform requirements of sequences of various lengths, thereby improving the capability of fast Fourier transform based on FPGA.
在一些具体实施例中,所述对输入的长度为N的待变换序列进行预处理,得到P个长度为Q的待变换子序列,具体可以包括:In some specific embodiments, preprocessing the input sequence to be transformed with a length of N to obtain P subsequences to be transformed with a length of Q may specifically include:
将所述待变换序列缓存至长度为N的第一寄存器中;Cache the sequence to be transformed into a first register of length N;
以长度Q为单位对所述待变换序列进行分组得到P个分组后数据,将所述分组后数据转存至P组长度为Q的第二寄存器中;The sequence to be transformed is grouped in units of length Q to obtain P grouped data, and the grouped data is transferred to a second register of P groups with a length of Q;
分别从每个所述第二寄存器中取出分组后数据,并分别将每个所述分组后数据封装为高级可扩展接口,以得到P个长度为Q的待变换子序列。The grouped data are taken out from each of the second registers respectively, and each of the grouped data is encapsulated into a high-level extensible interface respectively, so as to obtain P subsequences to be transformed with a length of Q.
在一些具体实施例中,所述对所述变换后子序列进行数据处理,得到Q个长度为P的新的待变换子序列,具体可以包括:In some specific embodiments, the performing data processing on the transformed subsequence to obtain Q new subsequences to be transformed with a length of P may specifically include:
通过将所述变换后子序列与子旋转因子之间一对一相乘,得到乘积;Obtaining a product by performing one-to-one multiplication between the transformed subsequence and the sub-rotation factor;
以长度P为单位对所述乘积进行分组得到Q个分组后数据;Grouping the product in units of length P to obtain Q grouped data;
对每个分组后数据进行数据封装,得到Q个长度为P的新的待变换子序列。Data encapsulation is performed on each grouped data to obtain Q new subsequences to be transformed with a length of P.
在一些具体实施例中,所述信号处理方法具体可以包括:In some specific embodiments, the signal processing method may specifically include:
根据所述待变换序列的长度确定出对应的旋转因子,对所述旋转因子进行分组,得到P个子旋转因子。A corresponding rotation factor is determined according to the length of the sequence to be transformed, and the rotation factor is grouped to obtain P sub-rotation factors.
在一些具体实施例中,所述信号处理方法具体可以包括:In some specific embodiments, the signal processing method may specifically include:
在对所述旋转因子进行分组之前,根据表征所述待变换序列的实部或虚部的位宽,确定针对所述旋转因子的放大倍数,利用所述放大倍数对所述旋转因子进行放大处理;Before grouping the rotation factors, determine a magnification factor for the rotation factors according to a bit width representing a real part or an imaginary part of the sequence to be transformed, and perform a magnification process on the rotation factors using the magnification factor;
在以长度P为单位对所述乘积进行分组得到Q个分组后数据之前,根据所述放大倍数对所述乘积进行等比例缩小。Before grouping the product in units of length P to obtain Q grouped data, the product is proportionally reduced according to the magnification factor.
在一些具体实施例中,所述对Q个所述新的变换后子序列进行数据重组,得到所述待变换序列对应的傅里叶变换后序列,具体可以包括:In some specific embodiments, the performing data reorganization on the Q new transformed subsequences to obtain a Fourier transformed sequence corresponding to the sequence to be transformed may specifically include:
利用Q组先入先出寄存器分别缓存Q个所述新的变换后子序列;Using Q groups of first-in first-out registers to cache the Q new transformed subsequences respectively;
根据序列排序规则从所述先入先出寄存器依次取出所述新的变换后子序列,并进行数据重组得到重组后数据;Taking out the new transformed subsequences from the first-in first-out register in sequence according to the sequence sorting rule, and performing data reorganization to obtain reorganized data;
对所述重组后数据进行数据封装,得到所述傅里叶变换后序列。The reorganized data is encapsulated to obtain the Fourier transformed sequence.
在一些具体实施例中,所述信号处理方法,具体可以包括:In some specific embodiments, the signal processing method may specifically include:
通过数据输入接口输出就绪信号,接收有效信号,并在有效信号为高电平过程中接收数据信号的输入得到待变换序列,在所述待变换序列的最后一个数据输入时结束信号由低电平变为高电平,在所述待变换序列输入完成后,所述有效信号和所述结束信号由高电平变为低电平。A ready signal is output through a data input interface, a valid signal is received, and a data signal is input while the valid signal is at a high level to obtain a sequence to be transformed. When the last data of the sequence to be transformed is input, an end signal changes from a low level to a high level. After the input of the sequence to be transformed is completed, the valid signal and the end signal change from a high level to a low level.
在一些具体实施例中,所述信号处理方法,具体可以包括:In some specific embodiments, the signal processing method may specifically include:
通过时钟信号接口接收时钟信号;receiving a clock signal through a clock signal interface;
通过复位信号接口接收复位信号。Receive the reset signal through the reset signal interface.
在一些具体实施例中,所述信号处理方法,具体可以包括:In some specific embodiments, the signal processing method may specifically include:
通过结果输出接口接收有效信号,在有效信号为高电平过程中输出傅里叶变换后序列,在所述傅里叶变换后序列的最后一个数据输出时结束信号由低电平变为高电平,在所述傅里叶变换后序列输出完成后,所述有效信号和所述结束信号由高电平变为低电平。A valid signal is received through a result output interface, and a Fourier transformed sequence is output while the valid signal is at a high level. When the last data of the Fourier transformed sequence is output, an end signal changes from a low level to a high level. After the output of the Fourier transformed sequence is completed, the valid signal and the end signal change from a high level to a low level.
在一些具体实施例中,所述信号处理方法具体可以包括:In some specific embodiments, the signal processing method may specifically include:
根据目标参数判断计算类型;所述计算类型包括快速傅里叶变换和傅里叶逆变换;Determine the calculation type according to the target parameter; the calculation type includes fast Fourier transform and inverse Fourier transform;
将所述待变换序列的虚部取负值;Taking the imaginary part of the sequence to be transformed as a negative value;
将经过傅里叶逆变换的待变换序列的虚部取负值,并将序列的实部和虚部都除以序列长度。The imaginary part of the sequence to be transformed after inverse Fourier transformation is negative, and both the real part and the imaginary part of the sequence are divided by the sequence length.
进一步的,本发明实施例还公开了一种电子设备,该电子设备,具体可以包括:至少一个处理器、至少一个存储器。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的信号处理中的相关步骤。Furthermore, an embodiment of the present invention also discloses an electronic device, which may specifically include: at least one processor and at least one memory, wherein the memory is used to store a computer program, and the computer program is loaded and executed by the processor to implement the relevant steps in the signal processing disclosed in any of the above embodiments.
进一步的,本发明实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的信号处理步骤。Furthermore, an embodiment of the present invention also discloses a computer storage medium, in which computer executable instructions are stored. When the computer executable instructions are loaded and executed by a processor, the signal processing steps disclosed in any of the aforementioned embodiments are implemented.
进一步的,本发明实施例还公开了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现前述的信号处理方法或针对任意长度序列的信号处理方法。Furthermore, an embodiment of the present invention also discloses a computer program product, including a computer program/instruction, which implements the aforementioned signal processing method or a signal processing method for a sequence of any length when executed by a processor.
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见系统部分说明即可。In this specification, each embodiment is described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the embodiments can be referred to each other. For the method disclosed in the embodiment, since it corresponds to the system disclosed in the embodiment, the description is relatively simple, and the relevant parts can be referred to the system part description.
结合本文中所公开的实施例描述的系统或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。The steps of the system or algorithm described in conjunction with the embodiments disclosed herein may be implemented directly using hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、系统、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、系统、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、系统、物品或者设备中还存在另外的相同要素。Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, system, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, system, article or device. In the absence of further restrictions, the elements defined by the statement "comprise a ..." do not exclude the existence of other identical elements in the process, system, article or device including the elements.
以上对本发明所提供的一种信号处理系统、方法、产品、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的系统及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。The signal processing system, method, product, device and medium provided by the present invention are introduced in detail above. Specific examples are used in this article to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the system of the present invention and its core idea. At the same time, for those skilled in the art, according to the idea of the present invention, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on the present invention.
Claims (15)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410764473.2A CN118332267B (en) | 2024-06-14 | 2024-06-14 | A signal processing system, method, product, device and medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410764473.2A CN118332267B (en) | 2024-06-14 | 2024-06-14 | A signal processing system, method, product, device and medium |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN118332267A true CN118332267A (en) | 2024-07-12 |
| CN118332267B CN118332267B (en) | 2024-10-01 |
Family
ID=91776369
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410764473.2A Active CN118332267B (en) | 2024-06-14 | 2024-06-14 | A signal processing system, method, product, device and medium |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118332267B (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118981593A (en) * | 2024-08-06 | 2024-11-19 | 华中科技大学 | A Fourier transform in-memory operation system and operation method thereof |
| CN119646368A (en) * | 2025-02-20 | 2025-03-18 | 苏州元脑智能科技有限公司 | Data processing method, electronic device, storage medium and program product |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1913514A (en) * | 2006-09-14 | 2007-02-14 | 上海交通大学 | 3780 point Fourier alteration modulation method and device and its demodulation method and device |
| CN101262464A (en) * | 2008-03-14 | 2008-09-10 | 南京邮电大学 | Method of Reconfigurable Fast Fourier Transform in Orthogonal Frequency Division Multiplexing System |
| CN110321581A (en) * | 2019-03-19 | 2019-10-11 | 南京航空航天大学 | A kind of design method of the two-dimensional Fourier transform IP kernel based on HLS |
| US20200073658A1 (en) * | 2017-06-30 | 2020-03-05 | Intel Corporation | Systems, apparatuses, and methods for controllable sine and/or cosine operations |
| CN112255455A (en) * | 2020-11-06 | 2021-01-22 | Oppo广东移动通信有限公司 | Signal processing method, signal processor, device and storage medium |
| CN112347413A (en) * | 2020-11-06 | 2021-02-09 | 哲库科技(北京)有限公司 | Signal processing method, signal processor, device and storage medium |
| CN112446330A (en) * | 2020-11-30 | 2021-03-05 | 山东大学 | Solar radio frequency spectrum analysis method and system based on multichannel FFT algorithm |
| CN116738129A (en) * | 2023-08-09 | 2023-09-12 | 国家海洋技术中心 | Ocean noise frequency domain spectrum level determining method and analyzer based on two-dimensional matrix algorithm |
| CN117826153A (en) * | 2024-01-05 | 2024-04-05 | 重庆邮电大学 | High-efficiency synthetic aperture radar image processing system based on FPGA and its implementation method |
| CN118150980A (en) * | 2024-03-13 | 2024-06-07 | 广东利扬芯片测试股份有限公司 | Method and device for testing performance of radio frequency chip |
-
2024
- 2024-06-14 CN CN202410764473.2A patent/CN118332267B/en active Active
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1913514A (en) * | 2006-09-14 | 2007-02-14 | 上海交通大学 | 3780 point Fourier alteration modulation method and device and its demodulation method and device |
| CN101262464A (en) * | 2008-03-14 | 2008-09-10 | 南京邮电大学 | Method of Reconfigurable Fast Fourier Transform in Orthogonal Frequency Division Multiplexing System |
| US20200073658A1 (en) * | 2017-06-30 | 2020-03-05 | Intel Corporation | Systems, apparatuses, and methods for controllable sine and/or cosine operations |
| CN110321581A (en) * | 2019-03-19 | 2019-10-11 | 南京航空航天大学 | A kind of design method of the two-dimensional Fourier transform IP kernel based on HLS |
| CN112255455A (en) * | 2020-11-06 | 2021-01-22 | Oppo广东移动通信有限公司 | Signal processing method, signal processor, device and storage medium |
| CN112347413A (en) * | 2020-11-06 | 2021-02-09 | 哲库科技(北京)有限公司 | Signal processing method, signal processor, device and storage medium |
| CN112446330A (en) * | 2020-11-30 | 2021-03-05 | 山东大学 | Solar radio frequency spectrum analysis method and system based on multichannel FFT algorithm |
| CN116738129A (en) * | 2023-08-09 | 2023-09-12 | 国家海洋技术中心 | Ocean noise frequency domain spectrum level determining method and analyzer based on two-dimensional matrix algorithm |
| CN117826153A (en) * | 2024-01-05 | 2024-04-05 | 重庆邮电大学 | High-efficiency synthetic aperture radar image processing system based on FPGA and its implementation method |
| CN118150980A (en) * | 2024-03-13 | 2024-06-07 | 广东利扬芯片测试股份有限公司 | Method and device for testing performance of radio frequency chip |
Non-Patent Citations (1)
| Title |
|---|
| 沈龙龙;李军旗;于水游;: "基于FPGA的1024点FFT在信号实时解码处理中的实现", 光电技术应用, no. 03, 11 June 2020 (2020-06-11), pages 70 - 75 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118981593A (en) * | 2024-08-06 | 2024-11-19 | 华中科技大学 | A Fourier transform in-memory operation system and operation method thereof |
| CN119646368A (en) * | 2025-02-20 | 2025-03-18 | 苏州元脑智能科技有限公司 | Data processing method, electronic device, storage medium and program product |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118332267B (en) | 2024-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN118332267B (en) | A signal processing system, method, product, device and medium | |
| Zhang et al. | Highly efficient architecture of NewHope-NIST on FPGA using low-complexity NTT/INTT | |
| US6366936B1 (en) | Pipelined fast fourier transform (FFT) processor having convergent block floating point (CBFP) algorithm | |
| JP2020537756A (en) | Homomorphic processing unit (HPU) to accelerate secure computation under homomorphic encryption | |
| KR20030027321A (en) | Apparatus and Method for 2-D Discrete Cosine Transform using Distributed Arithmetic Module | |
| CN114968173A (en) | Polynomial Multiplication Operation Method and Polynomial Multiplier Based on NTT and INTT Structure | |
| Feng et al. | Accelerating an FHE integer multiplier using negative wrapped convolution and ping-pong FFT | |
| Thakur et al. | Design and analysis of high-speed parallel prefix adder for digital circuit design applications | |
| CN111796797A (en) | A method and device for realizing calculation acceleration of polynomial multiplication on the ring using an AI accelerator | |
| CN119829005B (en) | Butterfly computing unit, butterfly computing unit array, reconfigurable array and chip | |
| Mohan et al. | Implementation of N-Point FFT/IFFT processor based on Radix-2 Using FPGA | |
| CN118260516B (en) | Transformation method, device, equipment and medium suitable for FPGA (field programmable gate array) data sequence | |
| CN118796152A (en) | A Lattice Cipher Modular Multiplier Based on Parallel K-RED Modular Reduction Algorithm | |
| Patle et al. | Implementation of Baugh-Wooley Multiplier Based on Soft-Core Processor | |
| Vergara et al. | A 195K FFT/s (256-points) high performance FFT/IFFT processor for OFDM applications | |
| Kumar et al. | Hardware Implementation of 64-Bits Data by Radix-8 FFT/IFFT for High Speed Applications | |
| JPH0981541A (en) | Accumulator | |
| Bao et al. | Efficient Number Theoretic Transform accelerator on the versal platform powered by the AI Engine | |
| Wang et al. | High radix montgomery modular multiplier on modern FPGA | |
| Benaissa et al. | CMOS VLSI design of a high-speed Fermat number transform based convolver/correlator using three-input adders | |
| Liu et al. | Optimizing residue number system on fpga | |
| Surabhi | Design and implementation of 256* 256 booth multiplier and its applications | |
| Chang et al. | High Performance Integer Multiplier on FPGA with Radix-4 Number Theoretic Transform | |
| Vishwanath | Efficient Hardware Architecture for Ultra-High Sampling Rate FFT Analysis of Acoustic Emission Signals | |
| CN118277710A (en) | FFT/IFFT processing method and processing device, electronic equipment, chip and storage medium |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |