JP3757782B2 - Fft演算回路 - Google Patents
Fft演算回路 Download PDFInfo
- Publication number
- JP3757782B2 JP3757782B2 JP2000330524A JP2000330524A JP3757782B2 JP 3757782 B2 JP3757782 B2 JP 3757782B2 JP 2000330524 A JP2000330524 A JP 2000330524A JP 2000330524 A JP2000330524 A JP 2000330524A JP 3757782 B2 JP3757782 B2 JP 3757782B2
- Authority
- JP
- Japan
- Prior art keywords
- radix
- group
- adder
- data
- output
- 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
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000013500 data storage Methods 0.000 description 12
- 230000014509 gene expression Effects 0.000 description 9
- 238000000034 method Methods 0.000 description 8
- 101150096655 APM1 gene Proteins 0.000 description 4
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 4
- 101100162826 Dictyostelium discoideum apm2 gene Proteins 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 101100403145 Danio rerio mul1a gene Proteins 0.000 description 3
- LKJPSUCKSLORMF-UHFFFAOYSA-N Monolinuron Chemical compound CON(C)C(=O)NC1=CC=C(Cl)C=C1 LKJPSUCKSLORMF-UHFFFAOYSA-N 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
Description
【発明の属する技術分野】
本発明は、ディジタル信号処理に用いられるFFT(Fast Fourier Transform:高速フーリエ変換)演算回路に関する。なお、本明細書中において、例えば「2*8^n」とは、「2×(8のn乗)」を意味するものとする。
【0002】
【従来の技術】
FFTは、時間領域における一連のサンプルデータに潜む周波数成分を抽出するのに用いられる手法であり、多数のデータを短時間で処理できるという優れた特徴を有する。また、FFTをハードウェアにする際には、面積の小さい回路が必要とされる。
【0003】
同じデータ数の対象についてFFTの演算を行う場合、バタフライ演算の基数の値が大きいほど高速に処理できる。FFTの対象となるデータの数をNとすると、FFTの演算を終了するまでのバタフライ演算の回数は、基数2で(N/2)log2N、基数4で(N/4)log4N、基数8で(N/8)log8Nとなる。また、1バタフライあたりの乗算回数は、基数2で4、基数4で12、基数8で32となる。したがって、乗算回数は基数2で4*(N/2)log2N、基数4で12*(N/4)log4N、基数8で32*(N/8)log8Nとなり、単純計算でも基数2、基数4の乗算回数はそれぞれ基数8の乗算回数の1.5倍、1.125倍となる。
【0004】
一方、FFTで対象となるデータ数は、基数のべき乗個である。よって、基数2のバタフライ演算では256、512、1024、2048、4096…というデータ数を扱える。一方、基数8のバタフライ演算では、8のべき乗個すなわち512、4096…というデータ数しか扱えないので、利用できる対象が限定されてしまうという課題があった。
【0005】
【発明が解決しようとする課題】
この課題は基数4のバタフライ演算についても同様であるため、基数4のFFTは対象データが4のべき乗に限定されてしまう。特開平10-307811号公報では、基数4のバタフライ演算回路において基数2のバタフライ演算を処理する回路を内蔵させることによって、この課題を解決している。しかし、データ数が大きい場合においても基数4のバタフライ演算に限定されてしまうので、演算効率は基数8のバタフライ演算に比べて低いものとなってしまう。
【0006】
また、基数の大きいバタフライ演算に基数の小さいバタフライ演算をつなげる手法が考えられる。例えば、基数8のバタフライ演算に基数2のバタフライ演算をつなげることによって、データ数2*8^nを処理するというものである。しかし、基数8のバタフライ演算をN段行ったのちに1段だけ基数2のバタフライ演算を行うことにより、基数8のバタフライ演算が処理されている間、基数2のバタフライ演算回路が活用されないので、回路面積を有効に利用できない。
【0007】
【発明の目的】
以上のように、基数8のバタフライ演算は、サンプルデータ数が大きい場合に効率的な処理を実現する一方、利用できるサンプルデータ数が限定されてしまうという課題があった。そこで、本発明の目的は、回路面積の有効利用を図りつつ、サンプルデータ数が大きい場合の効率的な処理と、利用できるサンプルデータ数の拡大とを両立可能とした、FFT演算回路を提供することにある。
【0008】
【課題を解決するための手段】
本発明に係るFFT演算回路は、2以上のただ一つの整数をα、1からα−1までの少なくとも一つの整数をβとすると、基数2のα乗のバタフライ演算回路の一部を利用して基数2のβ乗のバタフライ演算を行うことを特徴とするものである。より具体的に言えば、基数2のα乗のバタフライ演算結果のデータを第αの信号線群から出力するたすき掛け処理部に、当該バタフライ演算途中の中間データを取り出す第βの信号線群が設けられ、基数2のβ乗のバタフライ演算結果に相当する前記中間データが前記第βの信号線群から出力される、ものである(請求項1)。
【0009】
例えば、前記αが3であり、前記βが1及び2である(請求項2)。このとき、前記たすき掛け処理部は、入力データの加減算を行う第1の加減算器群と、この第1の加減算器群の出力データについて加減算を行う第2の加減算器群と、この第2の加減算器群の出力データについて加減算を行う第3の加減算器群と、この第3の加減算器群の出力データの一部について乗算を行う乗算器群と、この乗算器群の出力データと前記加減算器群の出力データの一部とについて加減算を行う第4の加減算器群と、前記第1の加減算器群の出力データを取り出す前記第1の信号線群と、前記第2の加減算器群の出力データを取り出す前記第2の信号線群と、前記第3及び前記第4の加減算器群の出力データを取り出す前記第3の信号線群とを備えた、ものとしてもよい(請求項3)。
【0010】
更にこのとき、前記第1及び前記第2の加減算器群がそれぞれ8個の2入力1出力加算器及び8個の2入力1出力減算器からなり、前記第3の加減算器群が6個の2入力1出力加算器及び6個の2入力1出力減算器からなり、前記第4の加減算器群が4個の2入力1出力加算器及び4個の2入力1出力減算器からなる、としてもよい(請求項4)。
【0011】
以下、一例としてαが3であり、βが1及び2である場合について説明する。基数8のバタフライ演算は、サンプルデータ数が大きい場合に効率的な処理を実現する一方、利用できるサンプルデータ数が限定されてしまうという課題があった。本発明は、基数8のバタフライ演算回路において基数2及び基数4のバタフライ演算を処理することによって、この課題を解決しようとするものである。本発明に係るFFT演算回路では、演算データ数が8^n(=2^(3n))、2*8^n(=2^(3n+1))、4*8^n(=2^(3n+2))を対象とすることができるため、基数2のバタフライ演算回路で扱いうる対象をすべてカバーすることができる。また、基数8のバタフライ演算回路を利用して基数2及び基数4のバタフライ演算を行うため、回路面積を有効に利用できる。
【0012】
【発明の実施の形態】
図1は、本発明に係るFFT演算回路の一実施形態を示すブロック図である。図2は、図1のFFT演算回路における、たすき掛け処理部の内部構成、及びたすき掛け処理部とセレクタとの接続関係を示すブロック図である。以下、これらの図面に基づき説明する。
【0013】
本実施形態のFFT演算回路は、基数8のバタフライ演算回路の一部を用いて、基数2及び基数4のバタフライ演算をも行うものであり、データ格納部11、ひねり係数格納部12、ひねり係数乗算部13、たすき掛け処理部14、セレクタ15、制御部16等を備えている。本実施形態の特徴は、バタフライ演算の核をなすたすき掛け処理部14、セレクタ15及び制御部16にある。
【0014】
たすき掛け処理部14の信号線群sig3から基数8のバタフライ演算結果データを出力する。これに加え、信号線群sig1、信号線群sig2を設定し、これらから中間データを取り出すことによって、信号線群sig1から基数2のバタフライ演算の処理結果に相当するデータ、信号線群sig2から基数4のバタフライ演算の処理結果に相当するデータが得られる。したがって、基数8のバタフライ演算回路において基数2及び基数4のバタフライ演算をも行うため、回路規模を増やすことなく、2*8^n個や4*8^n個のデータに対しても処理することが可能である。
【0015】
データ格納部11には、FFT演算を開始する前に初期データを格納する。FFT処理中には中間データが格納され、FFT演算終了時には処理結果データが格納される。ひねり係数格納部12にはひねり係数が格納される。FFTの対象となるデータの数がNであるとき、格納されるひねり係数はkを0、1、2、…、N-1とするとsin(2πk/N)、cos(2πk/N)である。ひねり係数乗算部13は、データ格納部11から出力されるデータとひねり係数格納部12から出力されるひねり係数との乗算を行う。たすき掛け処理部14は、ひねり係数格納部12から出力されるデータに対してたすき掛け処理を行い、信号線群sig1からは基数2のバタフライ演算の処理結果に相当するデータ、信号線群sig2からは基数4のバタフライ演算の処理結果に相当するデータ、信号線群sig3からは基数8のバタフライ演算処理結果データを出力する。セレクタ15は、制御部16からの制御信号に基づいて、たすき掛け処理部14の信号線群sig1、sig2、sig3から出力されるデータを選択し、データ格納部11に出力する。
【0016】
たすき掛け処理部14は、入力データの加減算を行う加減算器群as1、加減算器群as1の出力データについて加減算を行う加減算器群as2、加減算器群as2の出力データについて加減算を行う加減算器群as3、加減算器群as3の出力データの一部について乗算を行う乗算器群mul1、乗算器群mul1の出力データと加減算器群as3の出力データの一部とについて加減算を行う加減算器群as4、加減算器群as1の出力データを取り出す信号線群sig1、加減算器群as2の出力データを取り出す信号線群sig2、加減算器群as3、as4の出力データを取り出す信号線群sig3等を備えている。
【0017】
加減算器群as1、as2はそれぞれ8個の2入力1出力加算器及び8個の2入力1出力減算器からなり、加減算器群as3は6個の2入力1出力加算器及び6個の2入力1出力減算器からなり、加減算器群as4は4個の2入力1出力加算器及び4個の2入力1出力減算器からなる。セレクタ15は、たすき掛け処理部14の信号線群sig1、sig2、sig3のいずれかを、制御部16からの制御信号に従って選択し、それぞれのデータを出力する。
【0018】
次に、本実施形態のFFT演算回路の動作について詳しく説明する。まず、基数8のバタフライ演算を説明した上で、基数2及び基数4のバタフライ演算を説明する。その上で、基数8のバタフライ演算における基数2のバタフライ演算及び基数4のバタフライ演算の実現方法について述べる。
【0019】
基数8のバタフライ演算では8点の離散フーリエ変換を行う。8点のバタフライ演算は式(1)のように表わされる。
Xn=Σ7 k=0 x_k*W^(n*k)----(1)
n=0,1,2,…,7
ただし、Wは式(2)で表される回転子である。jは以下虚数単位とする。
W=exp(-2πj/8)----(2)
【0020】
式(1)を展開すると式(3)から式(10)のように表される。
X0=x0+x1+x2+x3+x4+x5+x6+x7----(3)
X1=x0+t(1-j)*x1-j*x2+t(-1-j)*x3-x4-t(1-j)*x5+j*x6-t(-1-j)*x7----(4)
X2=x0-j*x1-x2+j*x3+x4-j*x5-x6+j*x7----(5)
X3=x0+t(-1-j)*x1+j*x2+t(1-j)*x3-x4-t(-1-j)*x5-j*x6-t(1-j)*x7----(6)
X4=x0-x1+x2-x3+x4-x5+x6-x7----(7)
X5=x0+t(-1+j)*x1-j*x2+t(1+j)*x3-x4+t(-1+j)*x5+j*x6-t(1+j)*x7----(8)
X6=x0+j*x1-x2-j*x3+x4+j*x5-x6-j*x7----(9)
X7=x0+t(1+j)*x1+j*x2+t(-1+j)*x3-x4-t(1+j)*x5-j*x6-t(-1+j)*x7----(10)
ただし、tは定数1/√2である。
【0021】
ここで扱われるデータは複素データである。そこで、バタフライ演算入力データxiの実数部をai、虚数部をbi、出力データXiの実数部をAi、虚数部をBiとし、式(2)から式(9)を整理すると、式(11)から式(26)のように表される。また、式(11)から式(26)のようにa0、a1、…、a7、b0、b1、…、b7からA0、A1、…、A7、B0、B1、…、B7を算出する過程を図示したのが図3である。
A0=a0+a4+(a1+a5)+(a2+a6)+(a3+a7)----(11)
A2=a0+a4+(b1+b5)-(a2+a6)-(b3+b7)----(12)
A4=a0+a4-(a1+a5)+(a2+a6)-(a3+a7)----(13)
A6=a0+a4-(b1+b5)-(a2+a6)+(b3+b7)----(14)
A1=a0-a4+t(a1-a5)+t(b1-b5)+(b2-b6)-t(a3-a7)+t(b3-b7)----(15)
A3=a0-a4-t(a1-a5)+t(b1-b5)-(b2-b6)+t(a3-a7)+t(b3-b7)----(16)
A5=a0-a4-t(a1-a5)-t(b1-b5)+(b2-b6)+t(a3-a7)-t(b3-b7)----(17)
A7=a0-a4+t(a1-a5)-t(b1-b5)-(b2-b6)-t(a3-a7)-t(b3-b7)----(18)
B0=b0+b4+(b1+b5)+(b2+b6)+(b3+b7)----(19)
B2=b0+b4-(a1+a5)-(b2+b6)+(a3+a7)----(20)
B4=b0+b4-(b1+b5)+(b2+b6)-(b3+b7)----(21)
B6=b0+b4+(a1+a5)-(b2+b6)-(a3+a7)----(22)
B1=b0-b4+t(b1-b5)-t(a1-a5)-(a2-a6)-t(b3-b7)-t(a3-a7)----(23)
B3=b0-b4-t(b1-b5)-t(a1-a5)+(a2-a6)+t(b3-b7)-t(a3-a7)----(24)
B5=b0-b4-t(b1-b5)+t(a1-a5)-(a2-a6)+t(b3-b7)+t(a3-a7)----(25)
B7=b0-b4+t(b1-b5)+t(a1-a5)+(a2-a6)-t(b3-b7)+t(a3-a7)----(26)
【0022】
ここで、式(27)から式(42)のように変数ap0、am0、ap1、am1、ap3、am2、ap3、am3、bp0、bm0、bp1、bm1、bp2、bm2、bp3、bm3を設定する。これは図3における加減算器群as1の出力に相当する。
ap0=a0+a4----(27)
am0=a0-a4----(28)
ap1=a1+a5----(29)
am1=a1-a5----(30)
ap2=a2+a6----(31)
am2=a2-a6----(32)
ap3=a3+a7----(33)
am3=a3-a7----(34)
bp0=b0+b4----(35)
bm0=b0-b4----(36)
bp1=b1+b5----(37)
bm1=b1-b5----(38)
bp2=b2+b6----(39)
bm2=b2-b6----(40)
bp3=b3+b7----(41)
bm3=b3-b7----(42)
【0023】
更に、式(43)から式(58)のように変数aap0、apm0、app1、apm1、amp0、amm0、amp1、amm1、bpp0、bpm0、bpp1、bpm1、bmp0、bmm0、bmp1、bmm1を設定する。これは図3における加減算器群as2の出力に相当する。
app0=ap0+ap2----(43)
apm0=ap0-ap2----(44)
app1=ap1+ap3----(45)
apm1=ap1-ap3----(46)
amp0=am0+bm2----(47)
amm0=am0-bm2----(48)
amp1=am1+bm3----(49)
amm1=am1-bm3----(50)
bpp0=bp0+bp2----(51)
bpm0=bp0-bp2----(52)
bpp1=bp1+bp3----(53)
bpm1=bp1-bp3----(54)
bmp0=bm0+am2----(55)
bmm0=bm0-am2----(56)
bmp1=bm1+am3----(57)
bmm1=bm1-am3----(58)
【0024】
これらを用いて式(11)から式(26)を表わすと式(59)から式(74)のようになる。これは図3における加減算群as3、加減算器群as4及び乗算器群mul1の操作に相当する。
A0=app0+app1----(59)
A4=app0-app1----(60)
A2=apm0+bpm1----(61)
A6=apm0-bpm1----(62)
A1=amp0+t*(amp1+bmm1)----(63)
A5=amp0-t*(amp1+bmm1)----(64)
A3=amm0-t*(amm1-bmp1)----(65)
A7=amm0+t*(amm1-bmp1)----(66)
B0=bpp0+bpp1----(67)
B4=bpp0-bpp1----(68)
B2=bpm0-apm1----(69)
B6=bpm0+apm1----(70)
B1=bmm0-t*(amp1-bmm1)----(71)
B5=bmm0+t*(amp1-bmm1)----(73)
B3=bmp0-t*(amm1+bmp1)----(72)
B7=bmp0+t*(amm1+bmp1)----(74)
【0025】
次に、基数2のバタフライ演算について説明し、先に述べた基数8のバタフライ演算内における基数2のバタフライ演算の実現方法を述べる。
【0026】
基数2のバタフライ演算は式(75)で表わされる。
Xn=Σ1 k=0 x_k*W^(n*k)----(75)
n=0,1
ここで、Wは式(76)で表わされるものである。
W=exp(-2πj/2)----(76)
【0027】
よって、基数2のバタフライ演算を基数8のバタフライ演算における式(11)から式(26)のように表現すると、式(77)から式(80)のようになる。
A0=a0+a1----(77)
A1=a0-a1----(78)
B0=b0+b1----(79)
B1=b0-b1----(80)
【0028】
この式(77)、(78)、(79)、(80)の4項組は、式(27)、(28)、(35)、(36)の4項組、式(29)、(30)、(37)、(38)の4項組、式(31)、(32)、(39)、(40)の4項組、式(33)、(34)、(41)、(42)の4項組と対応がとれる。よって、基数2のバタフライ演算を行う2データ4入力を(a0、a4、b0、b4)又は(a2、a6、b2、b6)、(a1、a5、b1、b5)、(a3、a7、b3、b7)に対応させ、その加減算結果である(ap0、am0、bp0、bm0)又は(ap2、am2、bp2、bm2)、(ap1、am1、bp1、bm1)、(ap3、am3、bp3、bm3)を得ることによって、基数2のバタフライ演算結果を出力することができる。
【0029】
すなわち、図3に示すように基数8のバタフライ演算において、a0、a1、…、a7、b0、b1、…、b7に上述の組み合わせを鑑みた入力を行い、加減算器群as1の結果を信号線群sig1に取り出すことによって、基数2のバタフライ演算を4組並列に処理した結果を出力することができる。
【0030】
続いて、基数4のバタフライ演算について説明し、先に述べた基数8のバタフライ演算内における基数4のバタフライ演算の実現方法を述べる。
【0031】
基数4のバタフライ演算は式(81)で表わされる。
Xn=Σ3 k=0 x_k*W^(n*k)----(81)
n=0,1,2,3
ここで、Wは式(82)で表わされるものである。
W=exp(-2πj/4)----(82)
【0032】
よって、基数4のバタフライ演算を基数8のバタフライ演算における式(11)から式(26)のように表現すると、式(83)から式(90)のようになる。
A0=a0+a2+(a1+a3)----(83)
A2=a0+a2-(a1+a3)----(84)
A1=a0-a2+(b1-b3)----(85)
A3=a0-a2-(b1-b3)----(86)
B0=b0+b2+(b1+b3)----(87)
B2=b0+b2-(b1+b3)----(88)
B1=b0-b2-(a1-a3)----(89)
B3=b0-b2+(a1-a3)----(90)
【0033】
この式(83)、(84)、(85)、(86)、(87)、(88)、(89)、(90)の8項組は式(43)、(44)、(47)、(48)、(51)、(52)、(56)、(55)の8項組、式(45)、(46)、(49)、(50)、(53)、(54)、(58)、(57)の8項組と対応がとれる。よって、基数4のバタフライ演算を行う4データ8入力を(a0、a4、a2、a6、b0、b4、b2、b6)又は(a1、a5、a3、a7、b1、b5、b3、b7)に対応させ、その加減算結果である(app0、apm0、amp0、amm0、bpp0、bpm0、bmm0、bmp0)又は(app1、apm1、amp1、amm1、bpp1、bpm1、bmm1、bmp1)を得ることによって、基数4のバタフライ演算結果を出力することができる。
【0034】
すなわち、図3に示すように基数8のバタフライ演算において、a0、a1、…、a7、b0、b1、…、b7に上述の組み合わせを鑑みた入力を行い、加減算器群as2の結果を信号線群sig2に取り出すことによって、基数4のバタフライ演算を2組並列に処理した結果を出力することができる。
【0035】
ここで、例としてデータ数2*8^nの対象について、FFTを行う際の処理について説明する。ただし、各格納部はメモリで実現したとする。
【0036】
制御部16は、データ格納部11に対して、基数8のバタフライ演算のアルゴリズムに則ったアドレスのデータを出力するように制御信号を送る。ひねり係数格納部12に対しては、基数8のバタフライ演算のアルゴリズムに則ったひねり係数を出力するよう制御信号を送る。また、ひねり係数乗算部13に対しては、データ格納部11から出力されるデータとひねり係数格納部12から出力されるひねり係数との乗算を、基数8のバタフライ演算のアルゴリズムに則って行うよう制御信号を送る。乗算されたデータはたすき掛け処理部14に送られ、そこでたすき掛け処理が行われる。続いて、制御部16は、セレクタ15に対して、基数8のバタフライ演算結果を選択するように制御信号を送る。セレクタ15は、たすき掛け処理部14の信号線群の中から基数8のバタフライ演算結果である信号線群sig3を選択し、それらのデータをデータ格納部11へ出力する。このループをn回実行する。
【0037】
その上で、制御部16は、データ格納部に対して、基数2のバタフライ演算のアルゴリズムに則ったアドレスのデータを出力するように制御信号を送る。ひねり係数格納部12に対しては、基数2のバタフライ演算のアルゴリズムに則ったひねり係数を出力するよう制御信号を送る。また、ひねり係数乗算部13に対しては、データ格納部11から出力されるデータとひねり係数格納部12から出力されるひねり係数との乗算を、基数2のバタフライ演算のアルゴリズムに則って行うよう制御信号を送る。乗算されたデータはたすき掛け処理部14に送られ、そこでたすき掛け処理が行われる。続いて、制御部16は、セレクタ15に対して、基数2のバタフライ演算結果を選択するように制御信号を送る。セレクタ1は、たすき掛け処理部14の信号線群の中から基数2のバタフライ演算結果である信号線群sig1を選択し、それらのデータをデータ格納部11へ出力する。このループを1回実行する。
【0038】
以上の処理の結果、データ格納部11には2*8^nのFFT演算の結果が格納される。
【0039】
なお、本発明は、上記実施形態を発展させて、例えば「基数16のバタフライ演算回路の一部を利用して基数2、4、8のバタフライ演算を行う」というように、上記実施形態における基数8の部分を16、32、・・・とすることができる。一例として、基数16の場合について説明する。
【0040】
基数16のバタフライ演算が
X_n=Σ15 k=0 x_k*W^(n*k) n=0,…,15 ----(91)
ただし、W=exp(-2πj/16) :jは虚数単位
を基本の形として動作するのは、基数2、4、8の場合と同様である。
【0041】
式(91)を展開すると、
n=2m の場合
X_n={(x_0+x_8)+(x_4+x_12)*w4^n}+{(x_1+x_9)+(x_5+x_13)*w4^n}*W^n+{(x_2+x_10)+(x_6+x_14)*w4^n}*W^(2*n)+{(x_3+x_11)+(x_7+x_15)*w4^n}*W^(3*n)----(92)
n=2m+1 の場合
X_n={(x_0-x_8)+(x_4-x_12)*w4^n}+{(x_1-x_9)+(x_5-x_13)*w4^n}*W^n+{(x_2-x_10)+(x_6-x_14)*w4^n}*W^(2*n)+{(x_3-x_11)+(x_7-x_15)*w4^n}*W^(3*n)----(93)
となる。ただし、w4=exp(2πj/4)。
【0042】
(92)式は
X_n={(x_0+x_8)+(x_2+x_10)*w8^n+(x_4+x_12)*w8^(2*n)+(x_6+x_14)*w8^(3*n)}+{(x_1+x_9)+(x_3+x_11)*w8^n+(x_5+x_13)*w8^(2*n)+(x_7+x_15)*w8^(3*n)}*W^n----(94)
(93)式は
X_n={(x_0-x_8)+(x_2-x_10)*w8^n+(x_4-x_12)*w8^(2*n)+(x_6-x_14)*w8^(3*n)}+{(x_1-x_9)+(x_3-x_11)*w8^n+(x_5-x_13)*w8^(2*n)+(x_7-x_15)*w8^(3*n)}*W^n----(95)
と変形できる。ただし、w8=exp(2πj/8)。
【0043】
(92)、(93)式の括弧{}内が基数4のバタフライ演算に相当し、(94)、(95)式の括弧{}内が基数8のバタフライ演算に相当する。基数2についても同様に示すことができる。これは、更に基数の値が大きくなっても言えることである。
【0044】
【発明の効果】
本発明に係るFFT演算回路によれば、2以上のただ一つの整数をα、1からα−1までの少なくとも一つの整数をβとすると、基数(2のα乗)のバタフライ演算回路の一部を利用して基数(2のβ乗)のバタフライ演算を行うことにより、データ数が(2のα乗)^nだけでなく2*(2のα乗)^n、…についても、回路規模を増大することなくFFTを行える。その理由は、基数(2のα乗)のバタフライ演算回路の一部をそのまま用いて基数(2のβ乗)のバタフライ演算を行うことにより、2*(2のα乗)^n、…というデータ数を扱う基数(2のβ乗)のバタフライ演算回路が不要になるためである。したがって、回路面積の有効利用を図りつつ、サンプルデータ数が大きい場合の効率的な処理と、利用できるサンプルデータ数の拡大とを両立させることができる。
【0045】
特に請求項2記載のFFT演算回路によれば、データ数が8^nだけでなく2*8^nや4*8^nについても、回路規模を増大することなくFFTを行える。その理由は、基数8のバタフライ演算回路の一部をそのまま用いて基数2のバタフライ演算及び基数4のバタフライ演算を行えることにより、2*8^nや4*8^nというデータ数を扱う基数2や基数4のバタフライ演算回路が不要になるためである。
【図面の簡単な説明】
【図1】本発明に係るFFT演算回路の一実施形態を示すブロック図である。
【図2】図1のFFT演算回路における、たすき掛け処理部の内部構成、及びたすき掛け処理部とセレクタとの接続関係を示すブロック図である。
【図3】図1のFFT演算回路の動作を示すフロー図である。
【符号の説明】
11 データ格納部
12 ひねり係数格納部
13 ひねり係数乗算部
14 たすき掛け処理部
15 セレクタ
16 制御部
sig1 第一の信号線群
sig2 第二の信号線群
sig3 第三の信号線群
Claims (4)
- 2以上のただ一つの整数をα、1からα−1までの少なくとも一つの整数をβとすると、基数(2のα乗)のバタフライ演算回路の一部を利用して基数(2のβ乗)のバタフライ演算を行う、FFT演算回路であって、
基数(2のα乗)のバタフライ演算結果のデータを第αの信号線群から出力するたすき掛け処理部に、当該バタフライ演算途中の中間データを取り出す第βの信号線群が設けられ、
基数(2のβ乗)のバタフライ演算結果に相当する前記中間データが前記第βの信号線群から出力される、
ことを特徴とするFFT演算回路。 - 前記αが3であり、前記βが1及び2である、
請求項1記載のFFT演算回路。 - 前記たすき掛け処理部は、入力データの加減算を行う第1の加減算器群と、この第1の加減算器群の出力データについて加減算を行う第2の加減算器群と、この第2の加減算器群の出力データについて加減算を行う第3の加減算器群と、この第3の加減算器群の出力データの一部について乗算を行う乗算器群と、この乗算器群の出力データと前記加減算器群の出力データの一部とについて加減算を行う第4の加減算器群と、前記第1の加減算器群の出力データを取り出す前記第1の信号線群と、前記第2の加減算器群の出力データを取り出す前記第2の信号線群と、前記第3及び前記第4の加減算器群の出力データを取り出す前記第3の信号線群とを備えた、
請求項2記載のFFT演算回路。 - 前記第1及び前記第2の加減算器群がそれぞれ8個の2入力1出力加算器及び8個の2入力1出力減算器からなり、前記第3の加減算器群が6個の2入力1出力加算器及び6個の2入力1出力減算器からなり、前記第4の加減算器群が4個の2入力1出力加算器及び4個の2入力1出力減算器からなる、
請求項3記載のFFT演算回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000330524A JP3757782B2 (ja) | 2000-10-30 | 2000-10-30 | Fft演算回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000330524A JP3757782B2 (ja) | 2000-10-30 | 2000-10-30 | Fft演算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002132747A JP2002132747A (ja) | 2002-05-10 |
JP3757782B2 true JP3757782B2 (ja) | 2006-03-22 |
Family
ID=18807027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000330524A Expired - Fee Related JP3757782B2 (ja) | 2000-10-30 | 2000-10-30 | Fft演算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3757782B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8229014B2 (en) | 2005-03-11 | 2012-07-24 | Qualcomm Incorporated | Fast fourier transform processing in an OFDM system |
US8266196B2 (en) | 2005-03-11 | 2012-09-11 | Qualcomm Incorporated | Fast Fourier transform twiddle multiplication |
KR100762281B1 (ko) | 2005-12-08 | 2007-10-01 | 한국전자통신연구원 | 고속 푸리에 변환 시스템의 메모리 주소 생성 방법 및 그를이용한 트위들 팩터 생성 장치 |
JP4791172B2 (ja) * | 2005-12-20 | 2011-10-12 | 三星電子株式会社 | Fft演算回路 |
US7979485B2 (en) | 2005-12-20 | 2011-07-12 | Samsung Electronics Co., Ltd. | Circuit for fast fourier transform operation |
JP5493646B2 (ja) * | 2009-09-25 | 2014-05-14 | 日本電気株式会社 | 離散フーリエ変換装置および離散フーリエ変換・離散逆フーリエ変換方法 |
CN104657334B (zh) * | 2014-12-29 | 2018-12-28 | 南京大学 | 一种快速傅里叶变化的基2-4-8混合基蝶算器及其应用 |
-
2000
- 2000-10-30 JP JP2000330524A patent/JP3757782B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002132747A (ja) | 2002-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2866754B2 (ja) | 演算処理装置 | |
US6751643B2 (en) | Butterfly-processing element for efficient fast fourier transform method and apparatus | |
KR100311251B1 (ko) | 2차원이산코사인변환장치,2차원역이산코사인변환장치및디지탈신호처리장치 | |
JP2949498B2 (ja) | Dct回路、idct回路及びdct/idct回路 | |
JPH0526229B2 (ja) | ||
WO1998043180A1 (en) | Memory address generator for an fft | |
US5233551A (en) | Radix-12 DFT/FFT building block | |
JP3757782B2 (ja) | Fft演算回路 | |
Liu et al. | Pipelined architecture for a radix-2 fast Walsh–Hadamard–Fourier transform algorithm | |
US20030041080A1 (en) | Address generator for fast fourier transform processor | |
Lim et al. | A serial-parallel architecture for two-dimensional discrete cosine and inverse discrete cosine transforms | |
Bouguezel et al. | A general class of split-radix FFT algorithms for the computation of the DFT of length-$2^{m} $ | |
JP3951071B2 (ja) | 演算装置および演算方法 | |
Chang et al. | Accelerating multiple precision multiplication in GPU with Kepler architecture | |
Bi et al. | Pipelined hardware structure for sequency-ordered complex Hadamard transform | |
Arguello et al. | Parallel architecture for fast transforms with trigonometric kernel | |
JP3709291B2 (ja) | 高速複素フーリエ変換方法及び装置 | |
Panda | Performance Analysis and Design of a Discreet Cosine Transform processor Using CORDIC algorithm | |
JPH10307812A (ja) | Fft演算回路 | |
Parvin et al. | Impact of radices for the design of efficient FFT processor | |
JP3239949B2 (ja) | 複素数相関器 | |
Samir et al. | The effect of the digit slicing architecture on the FFT butterfly | |
Dick | FPGA based systolic array architectures for computing the discrete Fourier transform | |
KR950035402A (ko) | 이산적 코사인변환 및 역변환을 위한 집적회로 프로세서 | |
Bouguezel et al. | New radix-(2/spl times/2/spl times/2)/(4/spl times/4/spl times/4) and radix-(2/spl times/2/spl times/2)/(8/spl times/8/spl times/8) DIF FFT algorithms for 3-D DFT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050329 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050520 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051219 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100113 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |