CN108062289B - 快速傅里叶变换fft地址换序方法、信号处理方法及装置 - Google Patents
快速傅里叶变换fft地址换序方法、信号处理方法及装置 Download PDFInfo
- Publication number
- CN108062289B CN108062289B CN201810075622.9A CN201810075622A CN108062289B CN 108062289 B CN108062289 B CN 108062289B CN 201810075622 A CN201810075622 A CN 201810075622A CN 108062289 B CN108062289 B CN 108062289B
- Authority
- CN
- China
- Prior art keywords
- address
- array
- fft
- group
- data
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast 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
本发明提供了一种快速傅里叶变换FFT地址换序方法、信号处理方法及装置,快速傅里叶变换FFT地址换序方法包括:根据采样点个数以及预设基数确定总级数M;按顺序将采样点存储到M级存储器中的第一级存储器的存储空间中;根据采样点个数确定基础二进制数组;在每两个相邻级存储器之间进行地址换序,当当前级数m为正整数且m小于M时,在基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,在基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,缓解现有技术中存在的由于数据地址变换速度低导致的运算时间长,效率低的问题,达到减少运算时间、提高运算效率的效果。
Description
技术领域
本发明涉及计算机软件技术领域,尤其是涉及一种快速傅里叶变换FFT地址换序方法、信号处理方法及装置。
背景技术
在目前的快速傅里叶变换(Fast Fourier Transform,FFT)计算中,数据的地址变换应用的变换方式大都是基于地址累加后的高低位互换方式,当该级数据全部缓存至随机存取存储器(Random Access Memory,RAM)中,启动从RAM中读取数据的操作,读取的数据地址顺序加1,在顺序地址加1后,应用高低位互换逻辑既可完成存储数据的换序读取,该方式适用于任意基结构的FFT运算中的数据地址变换操作。
但是,在高速或大点数FFT处理过程中,数据地址变换速度决定着FFT计算速度,传统的地址变换过程适合流水顺序操作,在数据读取过程中需要消耗大量的时钟周期,以1024点为例,该处需要消耗1024个基础时钟的用时,运算时间长,运算效率低。
发明内容
有鉴于此,本发明的目的在于提供一种快速傅里叶变换FFT地址换序方法、信号处理方法及装置,以缓解现有技术中存在的由于数据地址变换速度低导致的运算时间长,运算效率低的技术问题。
第一方面,本发明实施例提供了一种快速傅里叶变换FFT地址换序方法,包括:
根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;
按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中;
根据所述采样点的个数确定基础二进制数组;
在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述根据所述采样点的个数确定基础二进制数组,包括:
将所述采样点的个数除以2,得到中间数字K,所述K为正整数;
根据所述中间数字K,得到0~K-1依次排列的个数为所述K的数组;
将十进制表示的所述数组换算成二进制表示的二进制数组;
将所述二进制数组中的每一个二进制数的最高位上的数字去掉,得到所述基础二进制数组。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述第一地址数组内的数据地址的个数与所述第二地址数组内的数据地址的个数相同。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述基础二进制数组内的各二进制数连续递增排列。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述数据地址的个数为2N,其中,N等于M-1。
第二方面,本发明实施例还提供一种快速傅里叶变换FFT信号处理方法,包括:
根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;
按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中;
根据所述采样点的个数确定基础二进制数组;
在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M;
对所述第一组待处理数据和所述第二组待处理数据分别进行蝶形运算,并将得到的运算结果按所述顺序存入下一级存储器各所述存储地址对应的存储空间;
循环执行上述地址换序至当前级数m等于M。
第三方面,本发明实施例还提供一种快速傅里叶变换FFT信号处理装置,包括:多级存储器、多个地址换序模块和多个蝶型运算模块;
各级所述存储器用于存储采样点及待处理数据,包含第一输出端口和第二输出端口,其中第一输出端口用于输出所述第一地址数组和所述第一组待处理数据,第二输出端口用于输出所述第二地址数组和所述第二组待处理数据;
地址换序模块,用于根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中;根据所述采样点的个数确定基础二进制数组;在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M,循环执行上述地址换序至当前级数m等于M;
蝶型运算模块,用于在每次地址换序后,对第一组待处理数据和第二组待处理数据分别进行蝶形运算,并将得到的运算结果按所述顺序存入下一级存储器各所述存储地址对应的存储空间。
结合第三方面,本发明实施例提供了第三方面的第一种可能的实施方式,其中,所述第一地址数组内的数据地址的个数与所述第二地址数组内的数据地址的个数相同。
结合第三方面,本发明实施例提供了第三方面的第二种可能的实施方式,其中,所述基础二进制数组内的各二进制数连续递增排列。
结合第三方面,本发明实施例提供了第三方面的第三种可能的实施方式,其中,所述数据地址的个数为2N,其中,N等于M-1。
本发明实施例带来了以下有益效果:本发明实施例提供的快速傅里叶变换FFT地址换序方法包括:根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中;根据所述采样点的个数确定基础二进制数组;在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M,所以,当进行快速傅里叶变换FFT时,首先根据采样点的个数和预设基数确定总级数M和基础二进制数组,然后在每两个相邻级存储器之间进行地址换序,当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,在这个过程中完成快速傅里叶变换FFT地址换序,而且,通过这种递推规律进行地址换序提高了数据地址变换速度,进而减少了运算时间,避免使用传统的地址换序方法而导致的运算时间长和运算效率低下的问题,因此,可以缓解现有技术中存在的由于数据地址变换速度低导致的运算时间长,运算效率低的技术问题,达到减少运算时间、提高运算效率的技术效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的快速傅里叶变换FFT地址换序方法的流程图;
图2为图1中步骤S103的流程图;
图3为本发明实施例提供的快速傅里叶变换FFT信号处理方法的流程图;
图4为本发明实施例提供的快速傅里叶变换FFT信号处理装置的示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在高速或大点数FFT处理过程中,数据地址变换速度决定着FFT计算速度,传统的地址变换过程适合流水顺序操作,在数据读取过程中需要消耗大量的时钟周期,以1024点为例,该处需要消耗1024个基础时钟的用时,运算时间长,运算效率低,基于此,本发明实施例提供的一种快速傅里叶变换FFT地址换序方法、信号处理方法及装置,可以缓解现有技术中存在的由于数据地址变换速度低导致的运算时间长,运算效率低的技术问题,达到减少运算时间、提高运算效率的技术效果。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种快速傅里叶变换FFT地址换序方法进行详细介绍,如图1所示,所述快速傅里叶变换FFT地址换序方法可以包括以下步骤。
步骤S101,根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数。
步骤S102,按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中。
示例性的,4级存储器包括:第一级存储器、第二级存储器、第三级存储器和第四级存储器。将进行第一次地址换序后的采样点存入所述第二级存储器,以此类推。
步骤S103,根据所述采样点的个数确定基础二进制数组。
示例性的,如图2所示,步骤S103可以包括以下步骤。
步骤S201,将所述采样点的个数除以2,得到中间数字K,所述K为正整数。
示例性的,当所述采样点的个数是16时,可以得到中间数字K的值为8。
步骤S202,根据所述中间数字K,得到0~K-1依次排列的个数为所述K的数组。
示例性的,当中间数字K的值为8时,可以得到数组[0,1,2,3,4,5,6,7]。
步骤S203,将十进制表示的所述数组换算成二进制表示的二进制数组。
示例性的,将十进制表示的数组[0,1,2,3,4,5,6,7]换算成二进制表示的二进制数组[0000,0001,0010,0011,0100,0101,0110,0111]。
步骤S204,将所述二进制数组中的每一个二进制数的最高位上的数字去掉,得到所述基础二进制数组。
示例性的,将二进制数组[0000,0001,0010,0011,0100,0101,0110,0111]中的每一个二进制数的最高位上的数字去掉,得到所述基础二进制数组[000,001,010,011,100,101,110,111]。
示例性的,所述基础二进制数组内的各二进制数连续递增排列。
步骤S104,在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M。
示例性的,所述数据地址的个数为2N,其中,N等于M-1。当M=4时,N=M-1=3。所以数据地址的个数为8个。
示例性的,当所述采样点的个数是16,当m=1时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第1位前面插入数字0,得到第一地址数组,在所述基础二进制数组中的每一个二进制数的从最高位开始的第1位前面插入数字1,得到第二地址数组。当m=1时的第一地址数组和第二地址数组如表1所示。
表1
第一地址数组 | 第二地址数组 |
0000 | 1000 |
0001 | 1001 |
0010 | 1010 |
0011 | 1011 |
0100 | 1100 |
0101 | 1101 |
0110 | 1110 |
0111 | 1111 |
示例性的,当所述采样点的个数是16,当m=2时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第2位前面插入数字0,得到第一地址数组,在所述基础二进制数组中的每一个二进制数的从最高位开始的第2位前面插入数字1,得到第二地址数组。当m=2时的第一地址数组和第二地址数组如表2所示。
表2
第一地址数组 | 第二地址数组 |
0000 | 0100 |
0001 | 0101 |
0010 | 0110 |
0011 | 0111 |
1000 | 1100 |
1001 | 1101 |
1010 | 1110 |
1011 | 1111 |
示例性的,当所述采样点的个数是16,当m=3时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第3位前面插入数字0,得到第一地址数组,在所述基础二进制数组中的每一个二进制数的从最高位开始的第3位前面插入数字1,得到第二地址数组。当m=3时的第一地址数组和第二地址数组如表3所示。
表3
第一地址数组 | 第二地址数组 |
0000 | 0010 |
0001 | 0011 |
0100 | 0110 |
0101 | 0111 |
1000 | 1010 |
1001 | 1011 |
1100 | 1110 |
1101 | 1111 |
示例性的,当所述采样点的个数是16,当m=4时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第4位前面插入数字0,得到第一地址数组,在所述基础二进制数组中的每一个二进制数的从最高位开始的第4位前面插入数字1,得到第二地址数组。当m=4时的第一地址数组和第二地址数组如表4所示。
表4
第一地址数组 | 第二地址数组 |
0000 | 0001 |
0010 | 0011 |
0100 | 0101 |
0110 | 0111 |
1000 | 1001 |
1010 | 1011 |
1100 | 1101 |
1110 | 1111 |
示例性的,所述第一地址数组内的数据地址的个数与所述第二地址数组内的数据地址的个数相同。
示例性的,所述快速傅里叶变换FFT地址换序方法具有很强的规律性,便于实现,编码简单,适用性强。
本发明实施例中,所述快速傅里叶变换FFT地址换序方法包括:根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中;根据所述采样点的个数确定基础二进制数组;在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M,所以,当进行快速傅里叶变换FFT时,首先根据采样点的个数和预设基数确定总级数M和基础二进制数组,然后在每两个相邻级存储器之间进行地址换序,当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,在这个过程中完成快速傅里叶变换FFT地址换序,而且,通过这种递推规律进行地址换序提高了数据地址变换速度,进而减少了运算时间,避免使用传统的地址换序方法而导致的运算时间长和运算效率低下的问题,因此,可以缓解现有技术中存在的由于数据地址变换速度低导致的运算时间长,运算效率低的技术问题,达到减少运算时间、提高运算效率的技术效果。
在本发明的又一实施例中,对本发明实施例所公开的一种快速傅里叶变换FFT信号处理方法进行详细介绍,如图3所示,所述快速傅里叶变换FFT信号处理方法可以包括以下步骤。
步骤S301,根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数。
步骤S302,按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中。
示例性的,4级存储器包括:第一级存储器、第二级存储器、第三级存储器和第四级存储器。将进行第一次地址换序后的采样点存入所述第二级存储器,以此类推。
步骤S303,根据所述采样点的个数确定基础二进制数组。
示例性的,步骤S303可以包括以下步骤。
步骤S401,将所述采样点的个数除以2,得到中间数字K,所述K为正整数。
示例性的,当所述采样点的个数是16时,可以得到中间数字K的值为8。
步骤S402,根据所述中间数字K,得到0~K-1依次排列的个数为所述K的数组。
示例性的,当中间数字K的值为8时,可以得到数组[0,1,2,3,4,5,6,7]。
步骤S403,将十进制表示的所述数组换算成二进制表示的二进制数组。
示例性的,将十进制表示的数组[0,1,2,3,4,5,6,7]换算成二进制表示的二进制数组[0000,0001,0010,0011,0100,0101,0110,0111]。
步骤S404,将所述二进制数组中的每一个二进制数的最高位上的数字去掉,得到所述基础二进制数组。
示例性的,将二进制数组[0000,0001,0010,0011,0100,0101,0110,0111]中的每一个二进制数的最高位上的数字去掉,得到所述基础二进制数组[000,001,010,011,100,101,110,111]。
示例性的,所述基础二进制数组内的各二进制数连续递增排列。
步骤S304,在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M。
示例性的,所述数据地址的个数为2N,其中,N等于M-1。当M=4时,N=M-1=3。所以数据地址的个数为8个。
示例性的,当所述采样点的个数是16,当m=1时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第1位前面插入数字0,得到第一地址数组,在所述基础二进制数组中的每一个二进制数的从最高位开始的第1位前面插入数字1,得到第二地址数组。当m=1时的第一地址数组和第二地址数组如表5所示。
表5
第一地址数组 | 第二地址数组 |
0000 | 1000 |
0001 | 1001 |
0010 | 1010 |
0011 | 1011 |
0100 | 1100 |
0101 | 1101 |
0110 | 1110 |
0111 | 1111 |
示例性的,当所述采样点的个数是16,当m=2时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第2位前面插入数字0,得到第一地址数组,在所述基础二进制数组中的每一个二进制数的从最高位开始的第2位前面插入数字1,得到第二地址数组。当m=2时的第一地址数组和第二地址数组如表6所示。
表6
第一地址数组 | 第二地址数组 |
0000 | 0100 |
0001 | 0101 |
0010 | 0110 |
0011 | 0111 |
1000 | 1100 |
1001 | 1101 |
1010 | 1110 |
1011 | 1111 |
示例性的,当所述采样点的个数是16,当m=3时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第3位前面插入数字0,得到第一地址数组,在所述基础二进制数组中的每一个二进制数的从最高位开始的第3位前面插入数字1,得到第二地址数组。当m=3时的第一地址数组和第二地址数组如表7所示。
表7
示例性的,当所述采样点的个数是16,当m=4时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第4位前面插入数字0,得到第一地址数组,在所述基础二进制数组中的每一个二进制数的从最高位开始的第4位前面插入数字1,得到第二地址数组。当m=4时的第一地址数组和第二地址数组如表8所示。
表8
第一地址数组 | 第二地址数组 |
0000 | 0001 |
0010 | 0011 |
0100 | 0101 |
0110 | 0111 |
1000 | 1001 |
1010 | 1011 |
1100 | 1101 |
1110 | 1111 |
示例性的,所述第一地址数组内的数据地址的个数与所述第二地址数组内的数据地址的个数相同。
步骤S305,对所述第一组待处理数据和所述第二组待处理数据分别进行蝶形运算,并将得到的运算结果按所述顺序存入下一级存储器各所述存储地址对应的存储空间。
步骤S306,循环执行上述地址换序至当前级数m等于M。
示例性的,在每一次快速傅里叶变换FFT信号处理的过程中都包括地址换序过程和蝶形运算过程,直至m=M。
本发明实施例中,所述快速傅里叶变换FFT信号处理方法包括:根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中;根据所述采样点的个数确定基础二进制数组;在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M;对所述第一组待处理数据和所述第二组待处理数据分别进行蝶形运算,并将得到的运算结果按所述顺序存入下一级存储器各所述存储地址对应的存储空间;循环执行上述地址换序至当前级数m等于M,所以,当进行快速傅里叶变换FFT信号处理的过程中,在各级存储器之间,首先进行地址换序,然后进行蝶形运算,循环过程直到m=M,在地址换序的过程中,通过这种递推规律进行地址换序提高了数据地址变换速度,进而减少了运算时间,避免使用传统的地址换序方法而导致的运算时间长和运算效率低下的问题,进而,提高了快速傅里叶变换FFT信号处理的速度,因此,可以缓解现有技术中存在的由于数据地址变换速度低导致的快速傅里叶变换FFT信号处理过程效率低下的技术问题,达到提高快速傅里叶变换FFT信号处理过程效率的技术效果。
在本发明的又一实施例中,对本发明实施例所公开的一种快速傅里叶变换FFT信号处理装置进行详细介绍,如图4所示,所述快速傅里叶变换FFT信号处理装置可以包括:多级存储器41、多个地址换序模块42和多个蝶型运算模块43。
各级所述存储器41用于存储采样点及待处理数据,包含第一输出端口和第二输出端口,其中第一输出端口用于输出所述第一地址数组和所述第一组待处理数据,第二输出端口用于输出所述第二地址数组和所述第二组待处理数据。
地址换序模块42,用于根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;按顺序将所述采样点存储到M级存储器41中的第一级存储器41各存储地址对应的存储空间中;根据所述采样点的个数确定基础二进制数组;在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M,循环执行上述地址换序至当前级数m等于M。
示例性的,所述第一地址数组内的数据地址的个数与所述第二地址数组内的数据地址的个数相同。所述基础二进制数组内的各二进制数连续递增排列。所述数据地址的个数为2N,其中,N等于M-1。当M=4时,所述数据地址的个数为8个。
蝶型运算模块43,用于在每次地址换序后,对第一组待处理数据和第二组待处理数据分别进行蝶形运算,并将得到的运算结果按所述顺序存入下一级存储器各所述存储地址对应的存储空间。
本发明实施例中,所述快速傅里叶变换FFT信号处理装置实现方式简单,不用增加额外的硬件存储资源,适用于工程化操作。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明实施例所提供的进行快速傅里叶变换FFT地址换序方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种快速傅里叶变换FFT地址换序方法,其特征在于,包括:
根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;
按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中;
根据所述采样点的个数确定基础二进制数组;
在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M。
2.根据权利要求1所述的快速傅里叶变换FFT地址换序方法,其特征在于,所述根据所述采样点的个数确定基础二进制数组,包括:
将所述采样点的个数除以2,得到中间数字K,所述K为正整数;
根据所述中间数字K,得到0~K-1依次排列的个数为所述K的数组;
将十进制表示的所述数组换算成二进制表示的二进制数组;
将所述二进制数组中的每一个二进制数的最高位上的数字去掉,得到所述基础二进制数组。
3.根据权利要求2所述的快速傅里叶变换FFT地址换序方法,其特征在于,所述第一地址数组内的数据地址的个数与所述第二地址数组内的数据地址的个数相同。
4.根据权利要求3所述的快速傅里叶变换FFT地址换序方法,其特征在于,所述基础二进制数组内的各二进制数连续递增排列。
5.根据权利要求4所述的快速傅里叶变换FFT地址换序方法,其特征在于,所述数据地址的个数为2N,其中,N等于M-1。
6.一种快速傅里叶变换FFT信号处理方法,其特征在于,包括:
根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;
按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中;
根据所述采样点的个数确定基础二进制数组;
在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M;
对所述第一组待处理数据和所述第二组待处理数据分别进行蝶形运算,并将得到的运算结果按所述顺序存入下一级存储器各所述存储地址对应的存储空间;
循环执行上述地址换序至当前级数m等于M。
7.一种快速傅里叶变换FFT信号处理装置,其特征在于,包括:多级存储器、多个地址换序模块和多个蝶型运算模块;
各级所述存储器用于存储采样点及待处理数据,包含第一输出端口和第二输出端口,其中第一输出端口用于输出第一地址数组和第一组待处理数据,第二输出端口用于输出第二地址数组和第二组待处理数据;
地址换序模块,用于根据快速傅里叶变换FFT的采样点的个数以及所述FFT的预设基数确定所述预设基数对应的FFT级间变换的总级数M,所述M为正整数;按顺序将所述采样点存储到M级存储器中的第一级存储器各存储地址对应的存储空间中;根据所述采样点的个数确定基础二进制数组;在每两个相邻级存储器之间进行地址换序,具体为:当当前级数m为正整数且m小于M时,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字0,得到第一地址数组,将与所述第一地址数组对应的第一组待处理数据利用第一输出端口输出,在所述基础二进制数组中的每一个二进制数的从最高位开始的第m位前面插入数字1,得到第二地址数组,将与所述第二地址数组对应的第二组待处理数据利用第二输出端口输出,所述m的取值范围为1~M,循环执行上述地址换序至当前级数m等于M;
蝶型运算模块,用于在每次地址换序后,对第一组待处理数据和第二组待处理数据分别进行蝶形运算,并将得到的运算结果按所述顺序存入下一级存储器各所述存储地址对应的存储空间。
8.根据权利要求7所述的快速傅里叶变换FFT信号处理装置,其特征在于,所述第一地址数组内的数据地址的个数与所述第二地址数组内的数据地址的个数相同。
9.根据权利要求8所述的快速傅里叶变换FFT信号处理装置,其特征在于,所述基础二进制数组内的各二进制数连续递增排列。
10.根据权利要求9所述的快速傅里叶变换FFT信号处理装置,其特征在于,所述数据地址的个数为2N,其中,N等于M-1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810075622.9A CN108062289B (zh) | 2018-01-25 | 2018-01-25 | 快速傅里叶变换fft地址换序方法、信号处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810075622.9A CN108062289B (zh) | 2018-01-25 | 2018-01-25 | 快速傅里叶变换fft地址换序方法、信号处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108062289A CN108062289A (zh) | 2018-05-22 |
CN108062289B true CN108062289B (zh) | 2021-09-03 |
Family
ID=62141947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810075622.9A Active CN108062289B (zh) | 2018-01-25 | 2018-01-25 | 快速傅里叶变换fft地址换序方法、信号处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108062289B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737638A (zh) * | 2020-06-11 | 2020-10-02 | Oppo广东移动通信有限公司 | 基于傅里叶变换的数据处理方法及相关装置 |
CN112905110B (zh) * | 2021-01-29 | 2023-03-24 | 展讯半导体(成都)有限公司 | 数据存储方法及装置、存储介质、用户设备、网络侧设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6907439B1 (en) * | 2002-02-20 | 2005-06-14 | Lattice Semiconductor Corporation | FFT address generation method and apparatus |
US6976047B1 (en) * | 2002-03-28 | 2005-12-13 | Lattice Semiconductor Corporation | Skipped carry incrementer for FFT address generation |
CN101290613A (zh) * | 2007-04-16 | 2008-10-22 | 卓胜微电子(上海)有限公司 | Fft处理器的数据存储系统和方法 |
CN102855222A (zh) * | 2011-06-27 | 2013-01-02 | 中国科学院微电子研究所 | 并行分支蝶形单元的fft的地址映射方法及装置 |
CN103226543A (zh) * | 2013-04-26 | 2013-07-31 | 中国科学院微电子研究所 | 一种流水线结构的fft处理器 |
CN103970718A (zh) * | 2014-05-26 | 2014-08-06 | 苏州威士达信息科技有限公司 | 一种快速傅里叶变换实现装置及方法 |
CN106415526A (zh) * | 2016-08-10 | 2017-02-15 | 深圳市汇顶科技股份有限公司 | Fft处理器及运算方法 |
-
2018
- 2018-01-25 CN CN201810075622.9A patent/CN108062289B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6907439B1 (en) * | 2002-02-20 | 2005-06-14 | Lattice Semiconductor Corporation | FFT address generation method and apparatus |
US6976047B1 (en) * | 2002-03-28 | 2005-12-13 | Lattice Semiconductor Corporation | Skipped carry incrementer for FFT address generation |
CN101290613A (zh) * | 2007-04-16 | 2008-10-22 | 卓胜微电子(上海)有限公司 | Fft处理器的数据存储系统和方法 |
CN102855222A (zh) * | 2011-06-27 | 2013-01-02 | 中国科学院微电子研究所 | 并行分支蝶形单元的fft的地址映射方法及装置 |
CN103226543A (zh) * | 2013-04-26 | 2013-07-31 | 中国科学院微电子研究所 | 一种流水线结构的fft处理器 |
CN103970718A (zh) * | 2014-05-26 | 2014-08-06 | 苏州威士达信息科技有限公司 | 一种快速傅里叶变换实现装置及方法 |
CN106415526A (zh) * | 2016-08-10 | 2017-02-15 | 深圳市汇顶科技股份有限公司 | Fft处理器及运算方法 |
Non-Patent Citations (1)
Title |
---|
流水并行1-D FFT地址映射算法;刘红侠 等;《武汉大学学报(工学版)》;20080630;第41卷(第3期);第123-127页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108062289A (zh) | 2018-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534839B2 (en) | Method for matrix by vector multiplication for use in artificial neural network | |
WO2016029664A1 (zh) | 一种二维过滤器的生成方法、查询方法及装置 | |
US20140337401A1 (en) | Data access method and device for parallel fft computation | |
CN108062289B (zh) | 快速傅里叶变换fft地址换序方法、信号处理方法及装置 | |
CN108304347A (zh) | 一种快速傅里叶变换处理方法和装置 | |
CN110019184B (zh) | 一种压缩和解压缩有序整数数组的方法 | |
US20040172583A1 (en) | Memory system and method for use in trellis-based decoding | |
CN111384972B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
CN114268323A (zh) | 支持行存的数据压缩编码方法、装置及时序数据库 | |
CN112163184B (zh) | 一种实现fft的装置及方法 | |
CN104598391A (zh) | 一种待转置二维矩阵的分块线性存储读取方法及系统 | |
CN105027074A (zh) | 质数产生 | |
CN115270690B (zh) | 查找空闲存储的装置、方法及芯片 | |
CN111313912A (zh) | 一种ldpc码编码器及编码方法 | |
CN110474647B (zh) | 有限域构造的ldpc码的译码方法、装置、译码器及存储介质 | |
CN111970007B (zh) | 一种解码方法、解码器、设备及介质 | |
CN111224674B (zh) | 多进制ldpc码的解码方法、装置及解码器 | |
CN114925127A (zh) | 级联结构数据的二维图表生成方法、装置、存储介质 | |
RU2717950C1 (ru) | Высокоскоростное устройство быстрого преобразования фурье с бесконфликтным линейным доступом к памяти | |
CN109753629B (zh) | 多粒度并行fft计算装置 | |
CN116662063B (zh) | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 | |
CN111384976A (zh) | 稀疏校验矩阵的存储方法和读取方法 | |
CN101471132B (zh) | 一种内容寻址存储器查找性能测试方法及系统 | |
CN113836481B (zh) | 矩阵计算电路、方法、电子设备及计算机可读存储介质 | |
CN110875744B (zh) | 编码方法及装置 |
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 |