CN101354701B - 一种实现基4fft/ifft计算的fft处理器 - Google Patents
一种实现基4fft/ifft计算的fft处理器 Download PDFInfo
- Publication number
- CN101354701B CN101354701B CN2008100460762A CN200810046076A CN101354701B CN 101354701 B CN101354701 B CN 101354701B CN 2008100460762 A CN2008100460762 A CN 2008100460762A CN 200810046076 A CN200810046076 A CN 200810046076A CN 101354701 B CN101354701 B CN 101354701B
- Authority
- CN
- China
- Prior art keywords
- data
- fft
- calculation result
- ifft
- exchanges
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种实现基4FFT/IFFT计算的FFT处理器,包括FFT蝶形运算单元、数据存储器以及一个用于接收FFT蝶形运算单元输出的四点计算结果数据的数据交换单元;如果进行的是IFFT计算,则数据交换单元工作,将四点计算结果数据中的第二点数据与第四点数据进行交换,交换后的计算结果数据存入数据存储器中;如果进行的是FFT计算,则数据交换单元不工作,四点计算结果数据不进行数据交换,FFT蝶形运算单元直接将四点计算结果数据存入数据存储器中。在本发明中,用同一FFT蝶形运算单元,实现了FFT和IFFT计算,从而既简化了硬件设计又减小了芯片面积,最关键的是可以在同一个FFT处理器上实现FFT和IFFT计算。
Description
技术领域
本发明涉及一种实现基4FFT/IFFT计算的FFT处理器。
背景技术
数字处理技术的发展使得广播从模拟方式向数字方式过渡成为一种趋势。目前,部分无线广播已经采用了数字传输,其它的正准备采用数字传输方式。数字音频广播采用了正交频分多路复用(OFDM)技术,其中采用的FFT处理器可以处理长度为256、512、1024、2048四种数字音频广播(DAB)信号。
通常,用基2算法来处理长度为2n的DAB信号的FFT运算,如256、512、1024、2048等;用基4的算法来处理长度为4n的DAB信号的FFT运算,如256、1024等。基2算法和基4算法相比,运算速度慢。但是,基4算法不能处理长度为512、2048等非4n的数据。
为解决上述问题,现有技术中,如2004年08月11日公开的,公开号为CN1520071A,名称为“含有FFT处理器的数字音频广播接收器及其操作方法”的中国发明专利申请公开说明书公开了一种含FFT处理器的数字音频广播接收器,如图1所示,包括地址发生器,用于生成预定个数的写地址和读地址;快速FFT处理器,用于重复FFT模式的数据,生成预定个数的数据,并利用预定个数的数据实现快速FFT;以及控制器,用于根据FFT处理器的操作,控制地址发生器生成写地址和读地址。预定个数是4096个,并且FFT处理器使用4096个数据来实现快速付里叶变换。这样,利用重复FFT模式的数据生成的4096个数据来实现基于基4的运算,对于2048、1024、256和512不同长度的DAB信号可以用结构相同的FFT处理器进行处理,从而简化了它的硬件结构和FFT的运算控制。
但上述的基4算法的FFT处理器只能处理基4输入数据的FFT计算,不能同时处理基4输入数据的IFFT计算。
发明内容
本发明的目的在于克服现有技术的不足,提供一种实现基4FFT/IFFT计算的FFT处理器。
为了达到上述发明目的,本发明的一种实现基4FFT/IFFT计算的FFT处理器,包括FFT蝶形运算单元和数据存储器,其特征在于,还包括:
一个数据交换单元,用于接收FFT蝶形运算单元输出的四点计算结果数据;
如果当前进行的是IFFT计算,则数据交换单元工作,数据交换单元将四点计算结果数据中的第二点数据与第四点数据进行交换,交换后的计算结果数据存入数据存储器中;
如果当前进行的是FFT计算,则数据交换单元不工作,四点计算结果数据不进行数据交换,FFT蝶形运算单元直接将四点计算结果数据存入数据存储器中。
本发明的发明目的是这样实现的:
按时间抽取的基4FFT计算推导公式为:
A′=A+BWp+CW2p+DW3p
B′=A+jBWp-CW2p-jDW3p
C′=A-BWp+CW2p-DW3p
D′=A-jBWp-CW2p+jDW3p(1)
按时间抽取的基4IFFT计算推导公式为:
A″=A+BWp+CW2p+DW3p
B″=A-jBWp-CW2p+jDW3p
C″=A-BWp+CW2p-DW3p
D″=A+jBWp-CW2p-jDW3p(2)
其中,A、B、C、D为蝶形运算单元的四点输入数据,A′、B′、C′、D′为蝶形运算单元输出的四点FFT计算结果数据,A″、B″、C″、D″是蝶形运算单元输出的四点IFFT计算结果数据,W=e-j2π/N。
如式(1)(2)所示,从两式中可以看出,FFT计算中的A′、B′、C′、D′分别和IFFT计算中的A″、D″、C″、B″结构相同。在本发明中,利用这一关系,用相同的电路结构,即同一FFT蝶形运算单元,实现了FFT和IFFT计算:在进行IFFT计算时,多了一个数据交换过程,即数据交换单元将FFT蝶形运算单元输出的四点计算结果数据中的第二点数据与第四点数据进行交换,从而既简化了硬件设计又减小了芯片面积,最关键的是可以在同一个FFT处理器上实现FFT和IFFT计算。
附图说明
图1是一种现有技术的FFT处理器结构图;
图2是本发明FFT处理器一种具体实施方式的结构图;
图3是图2所示的FFT蝶形运算单元的一种具体实施方式的结构图;
图4是16点的基4算法的FFT信号流图。
具体实施方式
为更好地理解本发明,下面结合具体实施方式对本发明进行更为详细描述。需要提醒注意的是,尽管相似部件出现在不同附图中,但它们被赋予相似的附图标记。在以下的描述中,当采用的已知功能和设计的详细描述也许会淡化本发明的主题内容时,这些描述在这儿将被忽略。
图1是一种现有技术的FFT处理器结构图。现有技术的FFT处理器在背景技术中已有描述,在此不再赘述。
图2是本发明FFT处理器一种具体实施方式的结构图。在本实施例中,存储器地址控制单元605,控制输入数据和旋转因子在数据存储器RAM601及旋转因子存储器ROM603中的存放位置;FFT蝶形运算单元602每次从数据存储器RAM601中取四点数据,从旋转因子存储器ROM603中取出相应的旋转因子,进行蝶形运算。
在本实施例中,所述的FFT处理器通过一控制信号IFFT_on控制数据交换单元606是否工作,同时控制蝶形运算单元602将计算结果数据传递给数据交换单元606还是存储器RAM601。
如果当前进行的是IFFT计算,则控制信号IFFT_on有效,数据交换单元606工作,蝶形运算单元602将四点计算结果数据传递给数据交换单元606,数据交换单元606将四点计算结果数据中的第二点结果数据与第四点结果数据进行交换,交换后的计算结果数据存入数据存储器RAM601中;
如果当前进行的是FFT计算,则控制信号IFFT_on无效,数据交换单元606不工作,蝶形运算单元602将四点计算结果数据传递给存储器RAM601,直接将四点计算结果数据存入数据存储器中RAM601。
当计算N=4n点数据的FFT/IFFT变换时,共需要n级迭代运算,每一级需要进行N/4次的蝶形运算;当n级迭代运算进行完之后就得到了N点数据的FFT/IFFT变换结果。从图4的信号流图可以看出,当输入数据是按照自然顺序输入时,FFT/IFFT变换结果数据是乱序的。整序模块604实现将结果数据整序为自然顺序。
在计算IFFT运算时,多了一个数据交换过程,控制信号IFFT_on用来控制数据交换单元606是否工作。当进行IFFT运算时,控制信号IFFT_on信号有效,数据交换单元606工作,将四点计算结果数据中的第二点数据与第四点数据交换后输出,从而既简化了硬件设计又减小了芯片面积,最关键的是可以在同一个FFT处理器上实现FFT和IFFT计算。
图3是图2所示的FFT蝶形运算单元的一种具体实施方式的结构图。从公式(1)或(2)中可知,在进行四点蝶形运算时,除输入数据A外,其他三点数据都需要和旋转因子进行复数相乘。在本实施例中,复数相乘采用CORDIC算法实现。B、C、D三点输入数据采用CORDIC算法实现和对应的旋转因子Wp、W2p、W3p相乘后结合输入数据A进行加减运算得到四点蝶形运算结果数据。其中,用来实现和j的相乘,即实现复数的实虚部交换。
图4是16点的基4算法的FFT信号流图。图中,输入数据是按照自然顺序输入的。N=16=42,所以需要进行2级的迭代运算,每一级需要进行N/4=16/4=4次蝶形运算。计算输出结果是乱序的。
尽管上面对本发明说明性的具体实施方式进行了描述,但应当清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (2)
1.一种实现基4FFT/IFFT计算的FFT处理器,包括FFT蝶形运算单元和数据存储器,其特征在于,还包括:
一个数据交换单元,用于接收FFT蝶形运算单元输出的四点计算结果数据;
如果当前进行的是IFFT计算,则数据交换单元工作,数据交换单元将四点计算结果数据中的第二点数据与第四点数据进行交换,交换后的四点计算结果数据存入数据存储器中;
如果当前进行的是FFT计算,则数据交换单元不工作,四点计算结果数据不进行数据交换,FFT蝶形运算单元直接将四点计算结果数据存入数据存储器中。
2.根据权利要求1所述的实现基4FFT/IFFT计算的FFT处理器,其特征在于,所述的FFT处理器通过一控制信号控制数据交换单元是否工作,同时控制蝶形运算单元将四点计算结果数据传递给数据交换单元还是数据存储器;
如果当前进行的是IFFT计算,则控制信号有效,数据交换单元工作,蝶形运算单元将四点计算结果数据传递给数据交换单元,数据交换单元将四点计算结果数据中的第二点数据与第四点数据进行交换,交换后的四点计算结果数据存入数据存储器中;
如果当前进行的是FFT计算,则控制信号无效,数据交换单元不工作,蝶形运算单元将四点计算结果数据传递给数据存储器,直接将四点计算结果数据存入数据存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100460762A CN101354701B (zh) | 2008-09-16 | 2008-09-16 | 一种实现基4fft/ifft计算的fft处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100460762A CN101354701B (zh) | 2008-09-16 | 2008-09-16 | 一种实现基4fft/ifft计算的fft处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101354701A CN101354701A (zh) | 2009-01-28 |
CN101354701B true CN101354701B (zh) | 2010-08-11 |
Family
ID=40307516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100460762A Expired - Fee Related CN101354701B (zh) | 2008-09-16 | 2008-09-16 | 一种实现基4fft/ifft计算的fft处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101354701B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102611667B (zh) * | 2011-01-25 | 2016-06-15 | 深圳市中兴微电子技术有限公司 | 随机接入检测fft/ifft处理方法及装置 |
CN104572734B (zh) * | 2013-10-23 | 2019-04-30 | 腾讯科技(深圳)有限公司 | 问题推荐方法、装置及系统 |
-
2008
- 2008-09-16 CN CN2008100460762A patent/CN101354701B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101354701A (zh) | 2009-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103955447B (zh) | 基于dsp芯片的fft加速器 | |
CN101354700B (zh) | 一种蝶形运算fft处理器 | |
CN100390782C (zh) | 一种实时快速傅立叶变换电路 | |
CN101937423B (zh) | 一种流水式fft/ifft的处理系统 | |
CN103699515A (zh) | 一种fft并行处理装置和方法 | |
Wang et al. | Novel memory reference reduction methods for FFT implementations on DSP processors | |
US9559886B2 (en) | Device and method for implementing fast fourier transform/discrete fourier transform | |
CN110147249A (zh) | 一种网络模型的计算方法及装置 | |
CN101354701B (zh) | 一种实现基4fft/ifft计算的fft处理器 | |
CN101667984A (zh) | 3780点快速傅立叶变换处理器及运算控制方法 | |
CN103034621B (zh) | 基2×k并行fft架构的地址映射方法及系统 | |
CN110163349A (zh) | 一种网络模型的计算方法及装置 | |
CN112559954B (zh) | 基于软件定义可重构处理器的fft算法处理方法及装置 | |
CN103262067B (zh) | 一种数据处理方法、数据处理装置和通信系统 | |
WO2013097436A1 (zh) | 一种fft/dft的倒序排列系统与方法及其运算系统 | |
CN101833540B (zh) | 信号处理方法和装置 | |
EP2538345A1 (en) | Fast fourier transform circuit | |
CN102073620B (zh) | 快速傅立叶转换器与反快速傅立叶转换器及其方法 | |
KR100602272B1 (ko) | 고속으로 데이터를 처리하는 고속 퓨리에 변환 장치 및 방법 | |
WO2013097235A1 (zh) | 并行位反序装置和方法 | |
CN101277283B (zh) | 快速傅立叶变换蝶型装置 | |
CN101764778B (zh) | 一种基带处理器和基带处理方法 | |
CN102023963B (zh) | 高速多模式时频域变换方法 | |
CN105893328A (zh) | 一种基于Cooley-Tukey的FFT算法 | |
CN101794275A (zh) | 快速傅立叶变换运算的设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100811 Termination date: 20160916 |
|
CF01 | Termination of patent right due to non-payment of annual fee |