JP3757782B2 - FFT operation circuit - Google Patents

FFT operation circuit Download PDF

Info

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
Application number
JP2000330524A
Other languages
Japanese (ja)
Other versions
JP2002132747A (en
Inventor
洋志 澁谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2000330524A priority Critical patent/JP3757782B2/en
Publication of JP2002132747A publication Critical patent/JP2002132747A/en
Application granted granted Critical
Publication of JP3757782B2 publication Critical patent/JP3757782B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ディジタル信号処理に用いられる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 第三の信号線群
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an FFT (Fast Fourier Transform) arithmetic circuit used for digital signal processing. In this specification, for example, “2 * 8 ^ n” means “2 × (8 to the power of n)”.
[0002]
[Prior art]
FFT is a technique used to extract frequency components lurking in a series of sample data in the time domain, and has an excellent feature that a large number of data can be processed in a short time. Further, when the FFT is used as hardware, a circuit having a small area is required.
[0003]
When performing the FFT operation on the same number of data, the larger the radix value of the butterfly operation, the faster the processing. If the number of data subject to FFT is N, the number of butterfly operations until the FFT operation is completed is (N / 2) log2N in radix 2, (N / 4) log4N in radix 4, and radix 8 (N / 8) log8N The number of multiplications per butterfly is 4 for radix 2, 12 for radix 4, and 32 for radix 8. Therefore, the number of multiplications is 4 * (N / 2) log2N in radix 2, 12 * (N / 4) log4N in radix 4, 32 * (N / 8) log8N in radix 8, and even in simple calculations, radix 2 and radix 4 Is multiplied by 1.5 times and 1.125 times the number of multiplications of the radix 8, respectively.
[0004]
On the other hand, the number of data targeted by FFT is a power of the radix. Therefore, the number of data of 256, 512, 1024, 2048, 4096, etc. can be handled in the radix-2 butterfly computation. On the other hand, in the radix-8 butterfly operation, since only the number of data of powers of 8, that is, 512, 4096...
[0005]
[Problems to be solved by the invention]
Since this problem is the same for the radix-4 butterfly operation, the target data of the radix-4 FFT is limited to a power of 4. Japanese Patent Laid-Open No. 10-307811 solves this problem by incorporating a circuit for processing a radix-2 butterfly computation in a radix-4 butterfly computation circuit. However, even when the number of data is large, the calculation efficiency is lower than that of the radix-8 butterfly calculation because the calculation is limited to the radix-4 butterfly calculation.
[0006]
Further, a method of connecting a butterfly operation having a small radix to a butterfly operation having a small radix can be considered. For example, the number of data 2 * 8 ^ n is processed by connecting the radix-2 butterfly operation to the radix-8 butterfly operation. However, since the radix-2 butterfly operation is processed by performing N radix-8 butterfly operation after one N-stage radix-8 butterfly operation, the radix-2 butterfly operation circuit is not utilized. The circuit area cannot be used effectively.
[0007]
OBJECT OF THE INVENTION
As described above, the radix-8 butterfly operation has a problem that the number of sample data that can be used is limited while efficient processing is realized when the number of sample data is large. SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide an FFT operation circuit capable of achieving both efficient processing when the number of sample data is large and expansion of the number of available sample data while effectively utilizing the circuit area. There is.
[0008]
[Means for Solving the Problems]
The FFT operation circuit according to the present invention uses a part of the radix-2 α power butterfly operation circuit, where α is a single integer of 2 or more and β is at least one integer from 1 to α-1. Thus, a radix-2 β-th power butterfly operation is performed . More specifically, the β-th signal line group for extracting intermediate data in the middle of the butterfly computation is added to the summation processing unit that outputs the data of the radix-2 power of the butterfly computation from the α-th signal line group. The intermediate data corresponding to the result of the radix-2 β-th power butterfly operation is output from the β-th signal line group ( claim 1 ).
[0009]
For example, the α is 3 and the β is 1 and 2 ( claim 2 ). At this time, the summing processing unit includes a first adder / subtractor group that performs addition / subtraction of input data, a second adder / subtractor group that performs addition / subtraction on the output data of the first adder / subtractor group, and the second A third adder / subtractor group that performs addition / subtraction on the output data of the adder / subtractor group; a multiplier group that performs multiplication on a part of the output data of the third adder / subtractor group; and output data of the multiplier group and the addition / subtraction A fourth adder / subtractor group that performs addition / subtraction on a part of the output data of the generator group, the first signal line group that extracts the output data of the first adder / subtractor group, and the second adder / subtractor group. and the second signal line group extracting an output data, and a third signal line group extracting an output data of said third and said fourth subtracter group may be mono (claim 3) .
[0010]
Further, at this time, the first and second adder / subtractor groups each include eight 2-input one-output adders and eight two-input one-output subtractors, and the third adder / subtractor group includes six It consists of a 2-input 1-output adder and 6 2-input 1-output subtractors, and the fourth adder / subtractor group consists of 4 2-input 1-output adders and 4 2-input 1-output subtractors. ( Claim 4 ).
[0011]
Hereinafter, the case where α is 3 and β is 1 and 2 will be described as an example. The radix-8 butterfly operation has a problem that the number of sample data that can be used is limited while efficient processing is realized when the number of sample data is large. The present invention seeks to solve this problem by processing radix-2 and radix-4 butterfly computations in a radix-8 butterfly computation circuit. In the FFT operation circuit according to the present invention, the number of operation data is 8 ^ n (= 2 ^ (3n)), 2 * 8 ^ n (= 2 ^ (3n + 1)), 4 * 8 ^ n (= 2 ^ (3n + 2)) can be targeted, and all objects that can be handled by the radix-2 butterfly computation circuit can be covered. In addition, since the radix-2 and radix-4 butterfly computations are performed using the radix-8 butterfly computation circuit, the circuit area can be used effectively.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a block diagram showing an embodiment of an FFT operation circuit according to the present invention. FIG. 2 is a block diagram showing the internal configuration of the tacking processing unit and the connection relationship between the tacking processing unit and the selector in the FFT operation circuit of FIG. Hereinafter, description will be given based on these drawings.
[0013]
The FFT operation circuit of the present embodiment also performs radix-2 and radix-4 butterfly operations using a part of the radix-8 butterfly operation circuit. The data storage unit 11, the twist coefficient storage unit 12, the twist coefficient A multiplication unit 13, a tag processing unit 14, a selector 15, a control unit 16, and the like are provided. The feature of this embodiment resides in the slash processing unit 14, the selector 15, and the control unit 16 that form the core of the butterfly operation.
[0014]
The radix-8 butterfly calculation result data is output from the signal line group sig3 of the summing processor 14. In addition to this, by setting the signal line group sig1 and the signal line group sig2, and extracting intermediate data from them, data corresponding to the processing result of the radix-2 butterfly operation from the signal line group sig1, the radix from the signal line group sig2 Data corresponding to the processing result of the 4 butterfly computation is obtained. Therefore, the radix-2 butterfly operation circuit also performs radix-2 and radix-4 butterfly operations, so it can process 2 * 8 ^ n or 4 * 8 ^ n data without increasing the circuit scale. It is possible.
[0015]
The data storage unit 11 stores initial data before starting the FFT operation. Intermediate data is stored during the FFT processing, and processing result data is stored at the end of the FFT operation. The twist coefficient storage unit 12 stores a twist coefficient. When the number of data subject to FFT is N, the stored twist coefficients are sin (2πk / N) and cos (2πk / N) where k is 0, 1, 2,..., N−1. . The twist coefficient multiplication unit 13 multiplies the data output from the data storage unit 11 and the twist coefficient output from the twist coefficient storage unit 12. The summing processing unit 14 performs a summing process on the data output from the twist coefficient storage unit 12, and from the signal line group sig1, the data corresponding to the processing result of the radix-2 butterfly operation, the signal line group sig2 Outputs data corresponding to the processing result of the radix-4 butterfly computation, and outputs the radix-8 butterfly computation processing result data from the signal line group sig3. The selector 15 selects data output from the signal line groups sig 1, sig 2, and sig 3 of the summing processing unit 14 based on the control signal from the control unit 16 and outputs the data to the data storage unit 11.
[0016]
The summation processing unit 14 includes an adder / subtractor group as1 that performs addition / subtraction of input data, an adder / subtractor group as2 that performs addition / subtraction on the output data of the adder / subtractor group as1, an adder / subtractor group as3 that performs addition / subtraction on the output data of the adder / subtractor group as2. Multiplier group mul1 that multiplies part of the output data of adder / subtractor group as3, adder / subtractor group as4 that performs addition / subtraction for the output data of multiplier group mul1 and part of the output data of adder / subtractor group as3, adder / subtractor group A signal line group sig1 for extracting output data of as1, a signal line group sig2 for extracting output data of the adder / subtractor group as2, a signal line group sig3 for extracting output data of the adder / subtractor groups as3 and as4, and the like are provided.
[0017]
The adder / subtractor groups as1 and as2 are each composed of 8 2-input 1-output adders and 8 2-input 1-output subtractors, and the adder / subtractor group as3 is 6 2-input 1-output adders and 6 2-inputs. The adder / subtracter group as4 is composed of four 2-input 1-output adders and four 2-input 1-output subtractors. The selector 15 selects any one of the signal line groups sig1, sig2, and sig3 of the summing processing unit 14 according to a control signal from the control unit 16, and outputs each data.
[0018]
Next, the operation of the FFT operation circuit of this embodiment will be described in detail. First, the radix-8 butterfly operation is described, and then the radix-2 and radix-4 butterfly operations are described. Then, how to implement a radix-2 butterfly operation and a radix-4 butterfly operation in a radix-8 butterfly operation will be described.
[0019]
In radix-8 butterfly computation, 8-point discrete Fourier transform is performed. The 8-point butterfly operation is expressed as shown in Equation (1).
Xn = Σ 7 k = 0 x_k * W ^ (n * k) ---- (1)
n = 0,1,2,…, 7
However, W is a rotor represented by Formula (2). j is an imaginary unit hereinafter.
W = exp (-2πj / 8) ---- (2)
[0020]
When Expression (1) is expanded, Expression (3) to Expression (10) are obtained.
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)
However, t is a constant 1 / √2.
[0021]
The data handled here is complex data. Therefore, if the real part of the butterfly computation input data xi is ai, the imaginary part is bi, the real part of the output data Xi is Ai, and the imaginary part is Bi, and the equations (2) to (9) are rearranged, the equation (11) To be expressed as in equation (26). Further, the process of calculating a0, a1, ..., a7, b0, b1, ..., b7 to A0, A1, ..., A7, B0, B1, ..., B7 as shown in Expression (11) to Expression (26) This is shown in FIG.
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]
Here, the variables ap0, am0, ap1, am1, ap3, am2, ap3, am3, bp0, bm0, bp1, bm1, bp2, bm2, bp3, bm3 are set as shown in equation (27) to equation (42). . This corresponds to the output of the adder / subtracter group as1 in FIG.
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]
Further, variables aap0, apm0, app1, apm1, amp0, amm0, amp1, amm1, bpp0, bpm0, bpp1, bpm1, bmp0, bmm0, bmp1, and bmm1 are set as in Expression (43) to Expression (58). This corresponds to the output of the adder / subtractor group as2 in FIG.
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]
Expressions (11) to (26) using these are expressed as equations (59) to (74). This corresponds to the operation of the addition / subtraction group as3, the adder / subtractor group as4, and the multiplier group mul1 in FIG.
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]
Next, a radix-2 butterfly operation will be described, and a method for realizing a radix-2 butterfly operation in the radix-8 butterfly operation described above will be described.
[0026]
The radix-2 butterfly operation is expressed by equation (75).
Xn = Σ 1 k = 0 x_k * W ^ (n * k) ---- (75)
n = 0,1
Here, W is represented by Expression (76).
W = exp (-2πj / 2) ---- (76)
[0027]
Therefore, when the radix-2 butterfly operation is expressed as in equations (11) to (26) in the radix-8 butterfly operation, equations (77) to (80) are obtained.
A0 = a0 + a1 ---- (77)
A1 = a0-a1 ---- (78)
B0 = b0 + b1 ---- (79)
B1 = b0-b1 ---- (80)
[0028]
This 4-term set of equations (77), (78), (79), (80) is the 4-term set of equations (27), (28), (35), (36), and the equations (29), ( 30), (37), (38), 4-term set, formulas (31), (32), (39), (40) 4-term set, formulas (33), (34), (41), ( Corresponds to the four-item group in 42). Therefore, 2 data 4 inputs for performing radix-2 butterfly computation are (a0, a4, b0, b4) or (a2, a6, b2, b6), (a1, a5, b1, b5), (a3, a7, b3) , B7), and (ap0, am0, bp0, bm0) or (ap2, am2, bp2, bm2), (ap1, am1, bp1, bm1), (ap3, am3, bp3, bm3) ), The radix-2 butterfly computation result can be output.
[0029]
That is, as shown in FIG. 3, in the radix-8 butterfly calculation, a0, a1,..., A7, b0, b1,..., B7 are input in consideration of the above combination, and the result of the adder / subtracter group as1 is signal line. By taking it out to the group sig1, it is possible to output the result of processing four sets of radix-2 butterfly operations in parallel.
[0030]
Subsequently, the radix-4 butterfly operation will be described, and a method for realizing the radix-4 butterfly operation in the radix-8 butterfly operation described above will be described.
[0031]
The radix-4 butterfly operation is expressed by equation (81).
Xn = Σ 3 k = 0 x_k * W ^ (n * k) ---- (81)
n = 0,1,2,3
Here, W is represented by the formula (82).
W = exp (-2πj / 4) ---- (82)
[0032]
Therefore, when the radix-4 butterfly operation is expressed as in equations (11) to (26) in the radix-8 butterfly operation, equations (83) to (90) are obtained.
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]
The eight terms of this equation (83), (84), (85), (86), (87), (88), (89), (90) are the equations (43), (44), (47) , (48), (51), (52), (56), (55), 8 terms, formulas (45), (46), (49), (50), (53), (54), Corresponding to the 8-term set of (58) and (57). Therefore, 4 data 8 inputs to perform radix-4 butterfly calculation are (a0, a4, a2, a6, b0, b4, b2, b6) or (a1, a5, a3, a7, b1, b5, b3, b7) The radix 4 is obtained by making (app0, apm0, amp0, amm0, bpp0, bpm0, bmm0, bmp0) or (app1, apm1, amp1, amm1, bpp1, bpm1, bmm1, bmp1) corresponding to the addition and subtraction results. The result of the butterfly operation can be output.
[0034]
That is, as shown in FIG. 3, in the radix-8 butterfly operation, a0, a1,..., A7, b0, b1,..., B7 are input in consideration of the above combination, and the result of the adder / subtracter group as2 is signal line. By taking out the group sig2, it is possible to output the result of processing two sets of radix-4 butterfly operations in parallel.
[0035]
Here, as an example, processing when performing FFT on an object with 2 * 8 ^ n data will be described. However, it is assumed that each storage unit is realized by a memory.
[0036]
The control unit 16 sends a control signal to the data storage unit 11 so as to output address data in accordance with the radix-8 butterfly algorithm. A control signal is sent to the twist coefficient storage unit 12 so as to output a twist coefficient in accordance with a radix-8 butterfly algorithm. Further, for the twist coefficient multiplication unit 13, the multiplication of the data output from the data storage unit 11 and the twist coefficient output from the twist coefficient storage unit 12 is performed in accordance with the radix-8 butterfly algorithm. Send a control signal. The multiplied data is sent to the summing processing unit 14 where the summing processing is performed. Subsequently, the control unit 16 sends a control signal to the selector 15 so as to select a radix-8 butterfly calculation result. The selector 15 selects the signal line group sig3, which is the radix-8 butterfly calculation result, from the signal line group of the summing processing unit 14, and outputs the data to the data storage unit 11. This loop is executed n times.
[0037]
Then, the control unit 16 sends a control signal to the data storage unit so as to output data at an address in accordance with a radix-2 butterfly algorithm. A control signal is sent to the twist coefficient storage unit 12 so as to output a twist coefficient in accordance with a radix-2 butterfly algorithm. Further, for the twiddle coefficient multiplier 13, the multiplication of the data output from the data storage section 11 and the twiddle coefficient output from the twiddle coefficient storage section 12 is performed in accordance with the radix-2 butterfly algorithm. Send a control signal. The multiplied data is sent to the summing processing unit 14 where the summing processing is performed. Subsequently, the control unit 16 sends a control signal to the selector 15 so as to select a radix-2 butterfly calculation result. The selector 1 selects the signal line group sig1 which is the radix-2 butterfly calculation result from the signal line groups of the summing processing unit 14 and outputs the data to the data storage unit 11. This loop is executed once.
[0038]
As a result of the above processing, the data storage unit 11 stores the result of the 2 * 8 ^ n FFT operation.
[0039]
The present invention is developed from the above-described embodiment. For example, the radix in the above-described embodiment is performed such that “a part of the radix-16 butterfly operation circuit is used to perform radix 2, 4, and 8 butterfly operations”. The eight parts can be 16, 32,. As an example, the case of radix 16 will be described.
[0040]
Radix-16 butterfly operation
X_n = Σ 15 k = 0 x_k * W ^ (n * k) n = 0,…, 15 ---- (91)
However, W = exp (−2πj / 16): j operates in the basic form of imaginary units as in the case of radix 2, 4, and 8.
[0041]
When formula (91) is expanded,
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)
It becomes. However, w4 = exp (2πj / 4).
[0042]
Equation (92) is
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)
Equation (93) is
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)
And can be transformed. However, w8 = exp (2πj / 8).
[0043]
The parentheses {} in the equations (92) and (93) correspond to the radix-4 butterfly operation, and the parentheses {} in the equations (94) and (95) correspond to the radix-8 butterfly operation. The radix 2 can be shown similarly. This can be said even if the value of the radix is further increased.
[0044]
【The invention's effect】
According to the FFT operation circuit according to the present invention, a radix (2 to the power of α) butterfly operation circuit is assumed, where α is a single integer of 2 or more and β is at least one integer from 1 to α-1. By using butterfly calculation of the radix (2 to the power of β), the circuit is able to handle not only the number of data (2 to the power of α) ^ n but also 2 * (2 to the power of 2) ^ n, ... FFT can be performed without increasing the scale. The reason is 2 * (2 to the power of α) ^ n, by performing a radix (2 to the power of β) butterfly operation using a part of the radix (2 to the power of α) butterfly operation circuit as it is. This is because a radix (2 to the power of β) butterfly operation circuit that handles the number of data becomes unnecessary. Therefore, it is possible to achieve both efficient processing when the number of sample data is large and expansion of the number of sample data that can be used while effectively utilizing the circuit area.
[0045]
In particular, according to the FFT arithmetic circuit of claim 2 , FFT can be performed not only for the number of data but also for 2 * 8 ^ n and 4 * 8 ^ n without increasing the circuit scale. The reason is that a radix that can handle 2 * 8 ^ n and 4 * 8 ^ n data numbers by performing a radix-2 butterfly operation and a radix-4 butterfly operation by using a part of the radix-8 butterfly operation circuit as it is. This is because a 2 or radix 4 butterfly operation circuit is not required.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of an FFT operation circuit according to the present invention.
2 is a block diagram illustrating an internal configuration of a tacking processing unit and a connection relationship between the tacking processing unit and a selector in the FFT operation circuit of FIG. 1; FIG.
FIG. 3 is a flowchart showing the operation of the FFT operation circuit of FIG. 1;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 11 Data storage part 12 Twist coefficient storage part 13 Twist coefficient multiplication part 14 Tackling process part 15 Selector 16 Control part
sig1 First signal line group
sig2 Second signal line group
sig3 Third signal line group

Claims (4)

2以上のただ一つの整数をα、1からα−1までの少なくとも一つの整数をβとすると、基数(2のα乗)のバタフライ演算回路の一部を利用して基数(2のβ乗)のバタフライ演算を行う、FFT演算回路であって
基数(2のα乗)のバタフライ演算結果のデータを第αの信号線群から出力するたすき掛け処理部に、当該バタフライ演算途中の中間データを取り出す第βの信号線群が設けられ、
基数(2のβ乗)のバタフライ演算結果に相当する前記中間データが前記第βの信号線群から出力される、
ことを特徴とするFFT演算回路。
If a single integer greater than 2 is α, and at least one integer from 1 to α-1 is β, a radix (2 to the power of β) is used by using a part of the radix (2 to the power of α) butterfly operation circuit. ) Butterfly computation, an FFT computation circuit ,
A slash processing unit that outputs data of a radix (2 to the power of α) butterfly calculation result from the α-th signal line group is provided with a β-th signal line group for extracting intermediate data during the butterfly calculation,
The intermediate data corresponding to a radix (2 to the power of β) butterfly calculation result is output from the β-th signal line group.
An FFT operation circuit characterized by that.
前記αが3であり、前記βが1及び2である、
請求項1記載のFFT演算回路。
The α is 3 and the β is 1 and 2;
The FFT operation circuit according to claim 1.
前記たすき掛け処理部は、入力データの加減算を行う第1の加減算器群と、この第1の加減算器群の出力データについて加減算を行う第2の加減算器群と、この第2の加減算器群の出力データについて加減算を行う第3の加減算器群と、この第3の加減算器群の出力データの一部について乗算を行う乗算器群と、この乗算器群の出力データと前記加減算器群の出力データの一部とについて加減算を行う第4の加減算器群と、前記第1の加減算器群の出力データを取り出す前記第1の信号線群と、前記第2の加減算器群の出力データを取り出す前記第2の信号線群と、前記第3及び前記第4の加減算器群の出力データを取り出す前記第3の信号線群とを備えた、
請求項2記載のFFT演算回路。
The summation processing unit includes a first adder / subtracter group that performs addition / subtraction of input data, a second adder / subtractor group that performs addition / subtraction on the output data of the first adder / subtractor group, and the second adder / subtractor group. A third adder / subtractor group that performs addition / subtraction on the output data of the first output data, a multiplier group that performs multiplication on a part of the output data of the third adder / subtractor group, the output data of the multiplier group, and the adder / subtractor group A fourth adder / subtractor group that performs addition / subtraction with respect to part of the output data, the first signal line group for extracting output data of the first adder / subtractor group, and output data of the second adder / subtractor group The second signal line group to be taken out, and the third signal line group to take out output data of the third and fourth adder / subtractor groups,
The FFT operation circuit according to claim 2 .
前記第1及び前記第2の加減算器群がそれぞれ8個の2入力1出力加算器及び8個の2入力1出力減算器からなり、前記第3の加減算器群が6個の2入力1出力加算器及び6個の2入力1出力減算器からなり、前記第4の加減算器群が4個の2入力1出力加算器及び4個の2入力1出力減算器からなる、
請求項3記載のFFT演算回路。
The first and second adder / subtractor groups each include eight 2-input 1-output adders and eight 2-input 1-output subtractors, and the third adder / subtractor group includes six 2-input 1-outputs. An adder and 6 2-input 1-output subtractors; and the fourth adder / subtractor group includes 4 2-input 1-output adders and 4 2-input 1-output subtractors.
The FFT operation circuit according to claim 3 .
JP2000330524A 2000-10-30 2000-10-30 FFT operation circuit Expired - Fee Related JP3757782B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000330524A JP3757782B2 (en) 2000-10-30 2000-10-30 FFT operation circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000330524A JP3757782B2 (en) 2000-10-30 2000-10-30 FFT operation circuit

Publications (2)

Publication Number Publication Date
JP2002132747A JP2002132747A (en) 2002-05-10
JP3757782B2 true JP3757782B2 (en) 2006-03-22

Family

ID=18807027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000330524A Expired - Fee Related JP3757782B2 (en) 2000-10-30 2000-10-30 FFT operation circuit

Country Status (1)

Country Link
JP (1) JP3757782B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266196B2 (en) * 2005-03-11 2012-09-11 Qualcomm Incorporated Fast Fourier transform twiddle multiplication
US8229014B2 (en) 2005-03-11 2012-07-24 Qualcomm Incorporated Fast fourier transform processing in an OFDM system
KR100762281B1 (en) 2005-12-08 2007-10-01 한국전자통신연구원 Memory address counter and memory control unit for Radix-2-square SDF FFT
US7979485B2 (en) 2005-12-20 2011-07-12 Samsung Electronics Co., Ltd. Circuit for fast fourier transform operation
JP4791172B2 (en) * 2005-12-20 2011-10-12 三星電子株式会社 FFT operation circuit
JP5493646B2 (en) * 2009-09-25 2014-05-14 日本電気株式会社 Discrete Fourier transform apparatus and discrete Fourier transform / discrete inverse Fourier transform method
CN104657334B (en) * 2014-12-29 2018-12-28 南京大学 A kind of base 2-4-8 mixed base butterfly of fast Fourier variation calculates device and its application

Also Published As

Publication number Publication date
JP2002132747A (en) 2002-05-10

Similar Documents

Publication Publication Date Title
JP2866754B2 (en) Arithmetic processing unit
KR100311251B1 (en) 2D Discrete Cosine Converter, 2D Inverse Discrete Cosine Converter, and Digital Signal Processing Equipment
US6751643B2 (en) Butterfly-processing element for efficient fast fourier transform method and apparatus
JP2949498B2 (en) DCT circuit, IDCT circuit and DCT / IDCT circuit
JPH0526229B2 (en)
WO1998043180A1 (en) Memory address generator for an fft
CN109117188B (en) Multi-path mixed-basis FFT (fast Fourier transform) reconfigurable butterfly operator
US5233551A (en) Radix-12 DFT/FFT building block
Liu et al. Pipelined architecture for a radix-2 fast Walsh–Hadamard–Fourier transform algorithm
JP3757782B2 (en) FFT operation circuit
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 (en) Arithmetic apparatus and arithmetic method
Chang et al. Accelerating multiple precision multiplication in GPU with Kepler architecture
Arguello et al. Parallel architecture for fast transforms with trigonometric kernel
Hua et al. A novel unified method for the fast computation of discrete image moments on grayscale images
Bi et al. Pipelined hardware structure for sequency-ordered complex Hadamard transform
Mankar et al. Multiplier‐less VLSI architectures for radix‐22 folded pipelined complex FFT core
JP3709291B2 (en) Fast complex Fourier transform method and apparatus
JP3092545B2 (en) FFT operation circuit
Samir et al. The effect of the digit slicing architecture on the FFT butterfly
Sorensen et al. Efficient FFT algorithms for DSP processors using tensor product decompositions
Parvin et al. Impact of radices for the design of efficient FFT processor
JP3652717B2 (en) Discrete cosine high-speed calculator

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