CN108205517B - 一种fft复用方法 - Google Patents
一种fft复用方法 Download PDFInfo
- Publication number
- CN108205517B CN108205517B CN201611187723.2A CN201611187723A CN108205517B CN 108205517 B CN108205517 B CN 108205517B CN 201611187723 A CN201611187723 A CN 201611187723A CN 108205517 B CN108205517 B CN 108205517B
- Authority
- CN
- China
- Prior art keywords
- fft
- data
- point
- frequency shift
- result
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (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复用方法,包括以下步骤:步骤1,根据外部输入的高速采样数据进行D倍抽取,并对每一项抽取数据进行数字滤波;步骤2,在连续K/D个时钟周期内,分别对滤波输出数据进行e‑2πk/K频移处理;步骤3,在连续K/D个时钟周期内,将所得到的数据进行串行转并行转换,K/D个时钟周期更新一次数据;步骤4,对D点数据分别进行D点并行FFT处理,并在K/D个周期内的每个时钟周期对FFT结果分别进行复用处理;步骤5,对由每个周期得到D点FFT结果共同组成K点FFT的结果进行重排,并按照工程需求顺序输出。
Description
技术领域
本发明涉及一种信号处理技术,特别是一种FFT复用方法。
背景技术
快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的一种快速算法,是描述离散信号时域和频域关系的重要数学工具,在数字信号处理方面得到广泛应用。传统的FFT算法可以采用软件、DSP、专用FFT处理芯片或者FPGA等来实现。其中,软件和DSP实现的速度较慢,不能满足数字化接收机里高速信号实时处理的要求;专用FFT处理芯片虽然速度较快,但是价格昂贵、不易广泛推广。FPGA具有资源丰富、速度快、设计灵活,近年来得到广泛的应用。
目前FPGA实现的FFT处理器设计方案按照数据流可分为串行处理与并行处理。串行处理是每次蝶形运算仅用一个蝶形单元,处理方式比较简单,运算速度相对较慢。并行处理运算速度较快,占用的资源也比较多,这对于某些空间和硬件资源都比较紧张的***来说尤其困难。因此提出了一种FFT复用方法,通过蝶形运算单元复用,采用半并行流水操作,有效平衡FPGA内部处理速度与资源消耗之间的矛盾,有效降低了对逻辑资源的需求,满足工程应用的需求。
发明内容
本发明的目的在于提供一种FFT复用方法,包括以下步骤:
步骤1,根据外部输入的高速采样数据进行D倍抽取,并对每一项抽取数据进行数字滤波;
步骤2,在连续K/D个时钟周期内,分别对滤波输出数据进行e-j2πk/K频移处理,其中,k=0~K/D-1;
步骤3,在连续K/D个时钟周期内,将所得到的数据进行串行转并行转换,K/D个时钟周期更新一次数据;
步骤4,对D点数据分别进行D点并行FFT处理,并在K/D个周期内的每个时钟周期对FFT结果分别进行复用处理;
步骤5,对由每个周期得到D点FFT结果共同组成K点FFT的结果进行重排,并按照工程需求顺序输出。
本发明与现有技术相比,其显著优点为:(1)通过蝶形运算单元复用,优化FFT模块逻辑资源占用;(2)采用半并行流水操作,提高高速数据处理能力;(3)有效平衡FPGA内部处理速度与资源消耗之间的矛盾;(4)对输出数据进行排序,降低***处理复杂度。
下面结合说明书附图对本发明做进一步描述。
附图说明
图1为本发明的方法流程图。
图2为32点并行FFT算法的数据流图。
具体实施方式
结合图1、图2,一种FFT复用方法,其特征在于,包括以下步骤:
步骤1,根据外部输入的高速采样数据进行D倍抽取,并对每一项抽取数据进行数字滤波;
步骤2,在连续K/D个时钟周期内,分别对滤波输出数据进行e-j2πk/K频移处理,其中,k=0~K/D-1;
步骤3,在连续K/D个时钟周期内,将所得到的数据进行串行转并行转换,K/D个时钟周期更新一次数据;
步骤4,对D点数据分别进行D点并行FFT处理,并在K/D个周期内的每个时钟周期对FFT结果分别进行复用处理;
步骤5,对由每个周期得到D点FFT结果共同组成K点FFT的结果进行重排,并按照工程需求顺序输出。
步骤1分对高速采样数据进行D倍抽取与滤波以下步骤:
步骤11,首先将输入的高速采样数据分相采集锁存;
步骤12,每一相数据按照D倍抽取;
步骤13,根据D倍抽取采样数据对FIR低通滤波器系数进行等效抽取准备;
步骤14,根据D倍抽取采样数据匹配D倍抽取FIR低通滤波器系数进行滤波。
步骤2具体包括以下步骤:
步骤21,根据每个K/D个周期内的e-j2πk/K频移处理,其中,k=0~K/D-1,准备频移系数;
步骤22,根据每个K/D个周期输出滤波数据与频移系数进行复乘,实现频率的搬移。
步骤4在K/D个周期内的每个时钟周期对D点并行数据的FFT结果进行复用处理,具体包括以下步骤:
步骤41,输入频移数据准备,K/D个周期内输入的数据为x(m),x(m+D),x(m+D*2),x(m++D*3),…,x(m+(K/D-1)*D)数据;
步骤42,利用FFT的频移特性在K/D个周期内用D点FFT实现K点FFT。
步骤5具体包括以下步骤:
步骤51,根据K/D个周期内每个D点FFT输出结果,转换到K点FFT的结果顺序;
步骤52,改变K/D个周期内每个周期D点FFT的频移方向,进而改变每个周期输出的FFT的结果顺序;
步骤53,对结果中的奇偶时刻的FFT结果进行相邻通道转换,实现FFT的结果顺序排列输出。
实施例
设一个64通道的滤波器组(K=64),高速信号采样率fs为2.6GHz,外部AD分成8相(进行8倍抽取,D=8)进入FPGA,每相数据率325MHz,即FPGA运行速率325MHz;滤波器组输出速率fo=fs/64=40.625MHz,每一相数据的复用倍数=fpga运行速率/输出速率=325/40.625=8,即8倍复用;具体步骤如下:
步骤1,根据外部输入的高速采样数据进行D倍抽取,并对每一项抽取数据进行数字滤波;
步骤11,首先将输入的2.6GHz高速采样数据分8相进行FPGA采集锁存;
步骤12,每一相数据按照8倍抽取;
步骤13,根据8倍抽取采样数据对FIR低通滤波器系数进行等效抽取准备;
步骤14,根据8倍抽取采样数据匹配8倍抽取FIR低通滤波器系数进行滤波。
步骤2,在连续8个时钟周期内,分别对滤波输出数据进行e-j2πk/8频移处理,其中,k=0~7;
步骤21,根据每个K/D个周期内的e-j2πk/K频移处理,其中,k=0~K/D-1,准备频移系数;
步骤22,根据每个K/D个周期输出滤波数据与频移系数进行复乘,实现频率的搬移。
步骤3,在连续8个时钟周期内,将所得到的数据进行串行转并行转换,8个时钟周期更新一次数据;
步骤4,对D点数据分别D点并行FFT处理,并在K/D个周期内的每个时钟周期对FFT结果分别进行复用处理;
步骤41,输入频移数据准备,8个周期内输入的数据为x(m),x(m+8),x(m+16),x(m+24),…,x(m+63)数据;
步骤42,利用FFT的频移特性在8个周期内用8点FFT实现64点FFT;
在每8个周期内的8点FFT数据b(m)为:
对b(m)进行8点FFT运算,得到的FFT结果顺序排序如表1所示。
表1 用8点FFT实现64点FFT输出结果顺序表
En8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Q0 | 0 | 63 | 62 | 61 | 60 | 59 | 58 | 57 |
Q1 | 32 | 31 | 30 | 29 | 28 | 27 | 26 | 25 |
Q2 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 |
Q3 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 |
Q4 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
Q5 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 |
Q6 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 |
Q7 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 |
其中,根据En8来区分每8个周期的顺序,并得到各个支路输出结果。
步骤5,对由每个周期得到8点FFT结果共同组成64点FFT的结果进行重排,并按照工程需求顺序输出。
步骤51,根据8个周期内每个8点FFT输出结果,转换到64点FFT的结果顺序,如表1所示;
步骤52,改变8个周期内每个周期8点FFT的频移方向,进而改变每个周期输出的FFT的结果顺序;
常规频移方向按照0~7顺序频移,由于频移的对称性,采用[01-12-23-34]顺序进行频移处理,结果如表2所示。
表2 改变频移后64点FFT输出结果顺序表
En8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Q0 | 0 | 63 | 1 | 62 | 2 | 61 | 3 | 60 |
Q1 | 32 | 31 | 33 | 30 | 34 | 29 | 35 | 28 |
Q2 | 16 | 15 | 17 | 14 | 18 | 13 | 19 | 12 |
Q3 | 48 | 47 | 49 | 46 | 50 | 45 | 51 | 44 |
Q4 | 8 | 7 | 9 | 6 | 10 | 5 | 11 | 4 |
Q5 | 40 | 39 | 41 | 38 | 42 | 37 | 43 | 36 |
Q6 | 24 | 23 | 25 | 22 | 26 | 21 | 27 | 20 |
Q7 | 56 | 55 | 57 | 54 | 58 | 53 | 59 | 52 |
步骤53,对结果中的奇偶时刻的FFT结果进行相邻通道转换,实现FFT的结果顺序排列输出。
首先,针对表2,将奇时刻的相邻两行进行数据对换,得到结果如表3所示。
表3 奇时刻对换后64点FFT输出结果顺序表
En8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Q0 | 63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | |
Q1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
Q2 | 31 | 33 | 29 | 35 | 27 | 37 | 25 | 39 | |
Q3 | 32 | 30 | 34 | 28 | 36 | 26 | 38 | 24 | |
Q4 | 47 | 49 | 45 | 51 | 43 | 53 | 41 | 55 | |
Q5 | 16 | 14 | 18 | 12 | 20 | 10 | 22 | 8 | |
Q6 | 15 | 17 | 13 | 19 | 11 | 21 | 9 | 23 | |
Q7 | 48 | 46 | 50 | 44 | 52 | 42 | 54 | 40 |
再次,将不同行按递增顺序进行排序,如表4所示。
表4 改变行顺序后64点FFT输出结果顺序表
最后,对中间的六行在奇数时刻再作一次简单的相邻行的交换,即可得到最终按照顺序排序的FFT结果输出,如表5所示。
表5 排序后64点FFT输出结果顺序表
En8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Q1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Q6 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
Q5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
Q2 | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
Q3 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
Q4 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 |
Q7 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
Q0 | 63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 |
Claims (3)
1.一种FFT复用方法,其特征在于,包括以下步骤:
步骤1,根据外部输入的高速采样数据进行D倍抽取,并对每一项抽取数据进行数字滤波;
步骤2,在连续K/D个时钟周期内,分别对滤波输出数据进行e-j2πk/K频移处理,其中,k=0~K/D-1,K为滤波器通道数;
步骤3,在连续K/D个时钟周期内,将所得到的数据进行串行转并行转换,K/D个时钟周期更新一次数据;
步骤4,对D点数据分别进行D点并行FFT处理,并在K/D个周期内的每个时钟周期对FFT结果分别进行复用处理;
步骤5,对由每个周期得到D点FFT结果共同组成K点FFT的结果进行重排,并按照工程需求顺序输出;
其中,步骤4在K/D个周期内的每个时钟周期对D点并行数据的FFT结果进行复用处理,具体包括以下步骤:
步骤41,输入频移数据准备,K/D个周期内输入的数据为x(m),x(m+D),x(m+D*2),x(m+D*3),…,x(m+(K/D-1)*D)数据;
步骤42,利用FFT的频移特性在K/D个周期内用D点FFT实现K点FFT;
其中,步骤5具体包括以下步骤:
步骤51,根据K/D个周期内每个D点FFT输出结果,转换到K点FFT的结果顺序;
步骤52,改变K/D个周期内每个周期D点FFT的频移方向,进而改变每个周期输出的FFT的结果顺序;
步骤53,对结果中的奇偶时刻的FFT结果进行相邻通道转换,实现FFT的结果顺序排列输出。
2.根据权利要求1所述的方法,其特征在于,步骤1中对高速采样数据进行D倍抽取与滤波包括以下步骤:
步骤11,首先将输入的高速采样数据分相采集锁存;
步骤12,每一相数据按照D倍抽取;
步骤13,根据D倍抽取采样数据对FIR低通滤波器系数进行等效抽取准备;
步骤14,根据D倍抽取采样数据匹配D倍抽取FIR低通滤波器系数进行滤波。
3.根据权利要求1所述的方法,其特征在于,步骤2具体包括以下步骤:
步骤21,根据每个K/D个周期内的e-j2πk/K频移处理,其中,k=0~K/D-1,准备频移系数;
步骤22,根据每个K/D个周期输出滤波数据与频移系数进行复乘,实现频率的搬移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611187723.2A CN108205517B (zh) | 2016-12-20 | 2016-12-20 | 一种fft复用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611187723.2A CN108205517B (zh) | 2016-12-20 | 2016-12-20 | 一种fft复用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108205517A CN108205517A (zh) | 2018-06-26 |
CN108205517B true CN108205517B (zh) | 2021-06-08 |
Family
ID=62604316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611187723.2A Active CN108205517B (zh) | 2016-12-20 | 2016-12-20 | 一种fft复用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108205517B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339484B (zh) * | 2020-02-20 | 2022-07-01 | 中国科学院自动化研究所 | 基于fpga的大型射电干涉阵列相关器的实现方法及装置 |
CN112732339B (zh) * | 2021-01-20 | 2022-09-13 | 上海微波设备研究所(中国电子科技集团公司第五十一研究所) | 一种分时复用时间抽取fft实现方法、***及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063411A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种基于802.11n的FFT/IFFT处理器 |
CN102831099A (zh) * | 2012-07-27 | 2012-12-19 | 西安空间无线电技术研究所 | 一种3072点fft运算的实现方法 |
CN104123266A (zh) * | 2014-07-23 | 2014-10-29 | 电子科技大学 | 一种数吉赫兹采样率下的极低延迟快速傅里叶变换方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014013726A1 (ja) * | 2012-07-18 | 2014-01-23 | 日本電気株式会社 | Fft回路 |
-
2016
- 2016-12-20 CN CN201611187723.2A patent/CN108205517B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063411A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种基于802.11n的FFT/IFFT处理器 |
CN102831099A (zh) * | 2012-07-27 | 2012-12-19 | 西安空间无线电技术研究所 | 一种3072点fft运算的实现方法 |
CN104123266A (zh) * | 2014-07-23 | 2014-10-29 | 电子科技大学 | 一种数吉赫兹采样率下的极低延迟快速傅里叶变换方法 |
Non-Patent Citations (3)
Title |
---|
《A low power radix-2 FFT accelerator for FPGA》;Soumak Mookherjee 等;《Conference: Asilomar Conference for Signal, System and Computer》;20151130;全文 * |
《A pipelined architecture for normal I/O order FFT》;Xue Liu 等;《Journal of Zhejiang University: Science C》;20110130;第12卷(第1期);全文 * |
《基于FPGA的高性能浮点型FFT处理器设计》;许朋 等;《武汉大学学报(工学版)》;20150201;第48卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108205517A (zh) | 2018-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101567701B (zh) | 一种高效多路数字下变频器*** | |
CN102355273B (zh) | 数字信道化方法及电路 | |
CN108205517B (zh) | 一种fft复用方法 | |
CN111786688B (zh) | 一种基于嵌入式gpu的宽带并行信道化接收方法 | |
CN103106180A (zh) | 恒定几何形状***基fft | |
CN104967428B (zh) | 用于fpga的高速高阶fir滤波器的频域实现方法 | |
CN102403986B (zh) | 多通道的cic抽取滤波器及其实现方法 | |
CN100574098C (zh) | 基于可编程逻辑器件的插值cic滤波器及实现方法 | |
CN103268308A (zh) | 支持混合基dft的计算装置及方法 | |
CN104333348B (zh) | 一种高阶数字滤波***及方法 | |
CN113346871A (zh) | 多通道多相多速率适配fir数字滤波处理架构 | |
WO2016179740A1 (zh) | 处理信号的方法及装置 | |
CN106842144A (zh) | 并行多相结构数字脉压方法 | |
CN101360087B (zh) | 基带成形srrc数字滤波器的低复杂度实现装置及方法 | |
CN105446702A (zh) | 一种基于串行fft ip核的宽带数字信道化并行处理方法 | |
CN105791197B (zh) | 一种偏移正交多载波***的脉冲成形滤波器 | |
CN109951173B (zh) | 一种多路并行输入并行处理的fir滤波方法及滤波器 | |
CN117040486A (zh) | 一种多档数字滤波器及宽带数字接收机 | |
CN110032707B (zh) | 一种基于fpga的四进小波多通道信号处理方法 | |
CN111722027A (zh) | 基于fpga的相位噪声数据流处理装置及方法 | |
Mankar et al. | FPGA implementation of 16-point radix-4 complex FFT core using NEDA | |
CN105975436A (zh) | 一种SoC***中通用可配置加速单元的IP电路 | |
CN109921764A (zh) | 4倍内插积分梳状cic滤波器高速并行算法 | |
CN112818526B (zh) | 一种非均匀图滤波器组的分布式设计方法 | |
Ramesha et al. | A novel Architecture of FBMC Transmitter using Poly phase Filtering and its FPGA implementation |
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 |