CN107451096B - 高吞吐率fft/ifft的fpga信号处理方法 - Google Patents
高吞吐率fft/ifft的fpga信号处理方法 Download PDFInfo
- Publication number
- CN107451096B CN107451096B CN201710473138.7A CN201710473138A CN107451096B CN 107451096 B CN107451096 B CN 107451096B CN 201710473138 A CN201710473138 A CN 201710473138A CN 107451096 B CN107451096 B CN 107451096B
- Authority
- CN
- China
- Prior art keywords
- data
- storage area
- reading
- writing
- fpga
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
高吞吐率FFT/IFFT的FPGA信号处理方法,涉及FPGA技术。本发明包括下述步骤:1)读取低频信号的数据,2)将低频信号数据的内容顺次写入RAM的第一存储区及其他各存储区;3)在高频读时钟控制下,按照各存储区的写入顺序,以滑动窗的方式顺次读取各存储区中写入的数据内容,并顺次输出滑动窗中的数据内容,形成数据流;4)自数据流起始时刻,第N个FPGA经过(N‑1)个等待周期后进入数据处理阶段以读取数据流并进行FFT运算然后输出运算结果。本发明通过一个RAM将第速率数据转换为高数据速率,使得后续模块能在较高频率上工作,从而达到减少并行度的目的,最终降低了硬件消耗。本发明算法简单,易于工程实现。
Description
技术领域
本发明涉及FPGA技术。
背景技术
离散傅立叶变换(discrete fourier transform,简称DFT)与逆离散傅里叶变换(inverse discrete fourier transform,简称IDFT)是数字信号处理领域的重要变换工具,在信号的频谱分析与OFDM系统调制解调中均采用DFT/IDFT实现。然而直接计算DFT/IDFT需要大量运算,其快速算法(fast fourier transform简称FFT)利用傅里叶变换系数性质大大降低了乘法运算量,使得傅里叶变换在工程中得到了广泛应用。
自cooley-tukey提出DFT快速算法以来,对DFT算法有着更深入的研究,主要有素因子分解法,winogard算法(WFTA),循环卷积算法等,但是这些算法主要集中DFT变换本身,少有对DFT变换吞吐率的研究,当需要较高吞吐率时,FPGA通常采用并行处理的方式实现。
现有技术的FPGA实现时,单纯采用并行的方式来提高FFT吞吐率,会消耗大量硬件资源。
发明内容
本发明所要解决的技术问题是,提供一种具有高吞吐率和低硬件资源消耗特点的FPGA信号处理方法。
本发明解决所述技术问题采用的技术方案是,高吞吐率FFT/IFFT的FPGA信号处理方法,包括下述步骤:
1)数据预读:读取低频信号的数据,
2)写入控制:定义RAM中的一个存储区为第一存储区,将低频信号数据的内容顺次写入RAM的第一存储区及其他各存储区,当最末存储区写入完成后,以第一存储区作为最末存储区的接续,自第一存储区开始下一次写入循环;
3)读取控制:在高频读时钟控制下,按照各存储区的写入顺序,以滑动窗的方式顺次读取各存储区中写入的数据内容,当读取至最末存储区后,以第一存储区作为最末存储区的接续,自第一存储区开始下一次读取循环;控制首次读取前等待时间以及滑动窗的滑动速度使其与写入速度适应,并顺次输出滑动窗中的数据内容,形成数据流;
4)FPGA并行处理:FPGA按照下述方式读取数据流并进行FFT运算:自数据流起始时刻,第N个FPGA经过(N-1)个等待周期后进入数据处理阶段以读取数据流并进行FFT运算然后输出运算结果,所述数据处理阶段的构成单元为处理周期,每个处理周期包括使能时间和非使能时间,N为大于1的自然数。
所述步骤3)中,滑动窗每次滑动的滑动长度相等,且滑动窗的长度大于滑动长度。
所述步骤4)中,各个FPGA的处理周期时长相等。
本发明的有益效果是,通过一个RAM将第速率数据转换为高数据速率,使得后续模块能在较高频率上工作,从而达到减少并行度的目的,最终降低了硬件消耗。本发明算法简单,易于工程实现。
附图说明
图1是数据速率转换示意图。
图2是速率转换控制示意图。
图3是实施例1的16路FPGA并行处理示意图。
图4为本发明的RAM存储区读写方式示意图。
具体实施方式
本发明的目的是,当输入信号速率较低(频率较低)时,利用FPGA中RAM将低速信号转化为高速信号,从而使FFT工作在较高频率下,减少FFT实现时的并行度,在保证高吞吐率的同时,降低硬件资源消耗。
IFFT实现与FFT相似,以FFT进行说明。
实施例1:
本实施例仅说明RAM的写/读/输出步骤。
本发明的RAM存储区读写方式参见图4,将RAM视为由多个储存区环形排列而成,各个存储区按顺时针方向顺次编号1,2,3…。图4是一种简化的示意图,包含32个存储区。首先从30MHz的低频信号中读取数据,将读取的数据内容按存储区的顺序顺次循环的写入存储区,即序号为32的存储区写入完成后,以序号为1的存储区作为接续,形成循环。读取时钟为高频,例如高于30MHz的150MHz,从RAM中以滑动窗的形式读数据,图4中滑动窗长度为8个存储区,滑动步长为1个存储区。
设各存储区内的数据内容即存储区序号,
首次读取时,读取序号为1~8的存储区中的数据并输出,输出内容为1、2、3、4、5、6、7、8;
滑动一次后,读取序号为2~9的存储区中的数据并输出,输出内容为2、3、4、5、6、7、8、9;
以此类推。
则数据流的内容为1、2、3、4、5、6、7、8、2、3、4、5、6、7、8、9…。
实施例2:
设速率为30MHz的输入信号为x(n)n=0,1,2,…,每隔一个抽样点的长度为64的矢量需要进行一次64点的FFT运算,即矢量[x(0)x(1)…x(63)]需要进行一次64点FFT,矢量[x(1)x(2)…x(64)]需要进行一次64点FFT,矢量[x(2)x(3)…x(65)]需要进行一次64点FFT。
对上述问题的FPGA实现,本发明采用数据速率倍频和并行处理结合的方式进行计算,其实现框图如下图1到图3所示,图1表示将30MHz信号转换为150MHz信号,信号速率提高了5倍,使得后续模块可以在较高频率上运行;图2表示速率转换控制图,对输入、输出信号地址进行控制,图3表示在高速率下采用16路FFT并行方式实现上述计算:
图1通过一个RAM将信号速率从30MHz变换到150MHz,RAM深度设计为128,图2表示RAM读写时钟和地址的控制,数据速率为30MHz,RAM写时钟也为30MHz,写地址从0到127不断循环,将数据不断写入到RAM中;RAM读时钟为150MHz,当RAM中写入80个数据时,开始进行读数据操作,为了描述方便,设80个读时钟为一个周期,在第一个周期内,读取RAM中地址为0到79的数据,第二个周期内读取RAM中地址为16到95的数据,第三个周期内读取RAM中地址为32到111的数据...,每个周期内顺序读取相邻地址的数据,每个周期的起始地址较上一个周期的起始地址增加16,地址值超过128时,按模128进行处理。
RAM写入数据速率为30MHz,读出数据速率为150MHz,在上述地址控制下,从第65个数据开始,每个数据会被重复读出5次,因此读出的数据率实际为30MHz。这样可以保证RAM中数据不会被写满,也不会读空。
从RAM中读出的数据形成一路数据流,图3表示采用多路并行的方式对该路数据进行FFT运算,每路工作时钟均为150MHz,在使能信号的控制下,每路对不同的数据段进行FFT计算。第一路FFT使能信号开始时刻对准读数据开始位置,开始后64个时钟周期结束,接下来的16个时钟周期不使能,然后以80个周期重复得到第一路FFT使能信号;第二路FFT使能信号为第一路使能信号延迟一个时钟周期(图中表示为1个clk),第三路FFT使能信号为第一路使能信号延迟两个时钟周期...,第16路FFT使能信号为第一路使能信号延迟15个时钟周期。
Claims (1)
1.高吞吐率FFT/IFFT的FPGA信号处理方法,其特征在于,包括下述步骤:
1)数据预读:读取低频信号的数据,
2)写入控制:定义RAM中的一个存储区为第一存储区,将低频信号数据的内容顺次写入RAM的第一存储区及其他各存储区,当最末存储区写入完成后,以第一存储区作为最末存储区的接续,自第一存储区开始下一次写入循环;
3)读取控制:在高频读时钟控制下,按照各存储区的写入顺序,以滑动窗的方式顺次读取各存储区中写入的数据内容,当读取至最末存储区后,以第一存储区作为最末存储区的接续,自第一存储区开始下一次读取循环;控制首次读取前等待时间以及滑动窗的滑动速度使其与写入速度适应,并顺次输出滑动窗中的数据内容,形成数据流;
4)FPGA并行处理:FPGA按照下述方式读取数据流并进行FFT运算:自数据流起始时刻,第N个FPGA经过(N-1)个等待周期后进入数据处理阶段以读取数据流并进行FFT运算然后输出运算结果,所述数据处理阶段的构成单元为处理周期,每个处理周期包括使能时间和非使能时间,N为大于1的自然数;
所述步骤3)中,滑动窗每次滑动的滑动长度相等,且滑动窗的长度大于滑动步长;
所述步骤4)中,各个FPGA的处理周期时长相等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710473138.7A CN107451096B (zh) | 2017-06-21 | 2017-06-21 | 高吞吐率fft/ifft的fpga信号处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710473138.7A CN107451096B (zh) | 2017-06-21 | 2017-06-21 | 高吞吐率fft/ifft的fpga信号处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451096A CN107451096A (zh) | 2017-12-08 |
CN107451096B true CN107451096B (zh) | 2020-09-01 |
Family
ID=60487089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710473138.7A Active CN107451096B (zh) | 2017-06-21 | 2017-06-21 | 高吞吐率fft/ifft的fpga信号处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451096B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965191B (zh) * | 2018-07-13 | 2020-04-21 | 电信科学技术第五研究所有限公司 | 一种prach基带信号生成的实现结构及实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231632A (zh) * | 2007-11-20 | 2008-07-30 | 西安电子科技大学 | 应用fpga进行浮点fft处理的方法 |
CN101582059A (zh) * | 2009-06-26 | 2009-11-18 | 上海华魏光纤传感技术有限公司 | 基于fpga实现并行结构fft处理器的方法 |
CN102999467A (zh) * | 2012-12-24 | 2013-03-27 | 中国科学院半导体研究所 | 基于fpga实现的高速接口与低速接口转换电路及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003536B2 (en) * | 2002-08-15 | 2006-02-21 | Comsys Communications & Signal Processing Ltd. | Reduced complexity fast hadamard transform |
US20130198453A1 (en) * | 2012-01-26 | 2013-08-01 | Korea Electronics Technology Institute | Hybrid storage device inclucing non-volatile memory cache having ring structure |
-
2017
- 2017-06-21 CN CN201710473138.7A patent/CN107451096B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231632A (zh) * | 2007-11-20 | 2008-07-30 | 西安电子科技大学 | 应用fpga进行浮点fft处理的方法 |
CN101582059A (zh) * | 2009-06-26 | 2009-11-18 | 上海华魏光纤传感技术有限公司 | 基于fpga实现并行结构fft处理器的方法 |
CN102999467A (zh) * | 2012-12-24 | 2013-03-27 | 中国科学院半导体研究所 | 基于fpga实现的高速接口与低速接口转换电路及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107451096A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107133011B (zh) | 一种示波记录仪的多通道数据存储方法 | |
CN103699515B (zh) | 一种fft并行处理装置和方法 | |
US9735996B2 (en) | Fully parallel fast fourier transformer | |
US8917588B2 (en) | Fast Fourier transform and inverse fast Fourier transform (FFT/IFFT) operating core | |
EP4131786A1 (en) | Embedded gpu-based wideband parallel channelized receiving method | |
US9727531B2 (en) | Fast fourier transform circuit, fast fourier transform processing method, and program recording medium | |
CN111737638A (zh) | 基于傅里叶变换的数据处理方法及相关装置 | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
US9262378B2 (en) | Methods and devices for multi-granularity parallel FFT butterfly computation | |
CN107451096B (zh) | 高吞吐率fft/ifft的fpga信号处理方法 | |
CN115033293A (zh) | 零知识证明硬件加速器及生成方法、电子设备和存储介质 | |
KR100825771B1 (ko) | 메모리를 반감하는 고속 푸리에 변환 프로세서 및 그 방법 | |
CN106533593B (zh) | 一种基于同步随机存储器的动态多径时延模拟装置及方法 | |
CN113591022B (zh) | 一种可分解数据的读写调度处理方法和装置 | |
US20140089370A1 (en) | Parallel bit reversal devices and methods | |
CN108205517B (zh) | 一种fft复用方法 | |
CN105988959B (zh) | 一种异步数据传输方法及系统 | |
CN114647817A (zh) | 一种基于fpga的频域卷积代替时域互相关的加速方法 | |
CN114201725A (zh) | 基于多模可重构fft的窄带通信信号处理方法 | |
CN111368250B (zh) | 基于傅里叶变换/逆变换的数据处理系统、方法及设备 | |
CN113407902A (zh) | 一种基于fpga的输入分块重映射fft方法 | |
Orozco-Galvan et al. | Reconfigurable architecture based on FPGA for OFDM transmitter | |
CN106970895B (zh) | 基于fpga的fft装置及方法 | |
CN102104773B (zh) | 用于实现可变数据个数的fft/ifft处理器的基4模块 | |
CN107229596B (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 |