JP2012502379A - 離散フーリェ変換(dft)係数についての行列を演算するための方法および装置 - Google Patents

離散フーリェ変換(dft)係数についての行列を演算するための方法および装置 Download PDF

Info

Publication number
JP2012502379A
JP2012502379A JP2011526354A JP2011526354A JP2012502379A JP 2012502379 A JP2012502379 A JP 2012502379A JP 2011526354 A JP2011526354 A JP 2011526354A JP 2011526354 A JP2011526354 A JP 2011526354A JP 2012502379 A JP2012502379 A JP 2012502379A
Authority
JP
Japan
Prior art keywords
twiddle factor
frame
matrix
dft
real
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.)
Withdrawn
Application number
JP2011526354A
Other languages
English (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.)
Co Operative Research Centre for Advanced Automotive Technology Ltd
Original Assignee
Co Operative Research Centre for Advanced Automotive Technology Ltd
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
Priority claimed from AU2008904721A external-priority patent/AU2008904721A0/en
Application filed by Co Operative Research Centre for Advanced Automotive Technology Ltd filed Critical Co Operative Research Centre for Advanced Automotive Technology Ltd
Publication of JP2012502379A publication Critical patent/JP2012502379A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Abstract

離散周波数離散フーリェ変換(Discrete Fourier Transform:DFT)係数行列の演算方法であって、方法は、(a)サンプルの第1のフレーム(10)について、離散時間信号のサンプルのフレームを回転因子行列(F1,F2)と乗算して第1のフレームについてのDFT係数行列を演算し、サンプルのフレーム(b)の第2の半分と回転因子行列の右半分(F2)との乗算からもたらされる演算結果を記憶するステップと、(b)サンプルの後続の各フレーム(12,14)について、各後続フレームは前のフレームと半分が重なり合っており、(i)前のフレームからの記憶された演算結果を抽出するとともに、すべての第2のフレームの記憶された演算結果の符合を反転させるステップと、(ii)サンプルの現在のフレームの第2の半分を回転因子行列の右半分と乗算し、演算結果を記憶するステップと、(iii)ステップ(i)およびステップ(ii)の結果を加算するステップとを含む。

Description

発明の分野
本発明は、一般的に、離散フーリェ変換(Discrete Fourier Transform:DFT)の使用による離散時間シーケンスの処理に関し、特に、DFT係数の演算に関する。
発明の背景
フーリェ変換は、信号処理において基本的な役割を担っている。それは、もとの時間領域信号から、周波数領域表現の生成を可能とする。デジタル信号処理(Digital Signal Processing:DSP)においては、信号は離散時間シーケンスとして表現され、したがって、フーリェ変換の特定の形式である、離散フーリェ変換(DFT)が用いられる。1965年に、クーリおよびテューキが、ソフトウェアでDFTを生成するために、高速フーリェ変換(FFT)と呼ばれる効果的なアルゴリズムを最初に提案した。彼らのもとの成果は、広範に拡張され、FFTの語句は、今やDFTの演算のためのソフトウェアアルゴリズムの領域をカバーしている。
典型的に、DSPアルゴリズムの複雑性は、その実現のためにどれだけ多くの乗算が必要とされるかという点で測定される。DSP機能において複素数演算が最も一般的に使用されるので、本文脈においては乗算の数が用いられ、そのため、単一プロセッサコンピュータについてのアルゴリズム実行時間の最良の表現を提供する。ハードウェア実行例の効率を考慮すると、アルゴリズムは、演算の数というよりもむしろ、演算要素間に必要とされる通信の複雑性についてより評価される。FFTアルゴリズムは、バタフライブロックを用いて、選択された乗算の数を低減するが、ハードウェア実行例を考えると、実行例の制御部分および相互接続が複雑であり、実現のために必要とされる非常に多くのハードウェア資源をもたらす。したがって、現在のFFTに類似したアルゴリズムは、電界プログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)には特に適しているとはいえない。さらに、FPGAにおける、DFTのいくつかの直接実行例は、適度に簡単ではあるが、一般的に長い時間遅れを生成する。
したがって、FPGA実行例のようなハードウェアにおいて実行される場合、ハードウェア資源を節約し、および/または、時間遅れを最小にする、DFT係数の演算方法を提供することが望まれる。さらに、公知のDFT係数演算方法の、1つまたはより多くの欠点または不都合を改善または克服する、DFT係数行列の演算方法を提供することが望まれる。
発明の簡単な要約
本発明の1つの局面は、離散周波数離散フーリェ変換(DFT)係数行列の演算方法を提供し、方法は、
(a)サンプルの第1のフレームについて、離散時間信号のサンプルのフレームを回転因子行列と乗算してその第1のフレームについてのDFT係数行列を演算し、サンプルのフレームの第2の半分と回転因子行列の右半分との乗算からもたらされる演算結果を記憶するステップと、
(b)サンプルの後続の各フレームについて、各後続フレームは前のフレームと半分が重なり合っており、
(i)前のフレームからの記憶された演算結果を抽出するとともに、すべての第2のフレームの記憶された演算結果の符合を反転させるステップと、
(ii)サンプルの現在のフレームの第2の半分を回転因子行列の右半分と乗算し、その演算結果を記憶するステップと、
(iii)ステップ(i)およびステップ(ii)の結果を加算するステップとを含む。
上述の方法は、回転因子行列の対称特性の利用し、離散時間信号のサンプルの連続したフレームは半分だけ重なり合う場合は、そうでなければすべてのフレームについてのDFT係数を演算するために必要とされるであろう演算結果の半分を、先行するフレームに関してなされた演算結果から推測する。これらの演算結果を記憶するためのメモリ装置を設けることによって、方法は、FPGA実行例において、演算時間遅れが半分だけ低減されるように実行され得る。実数のDFT係数および虚数のDFT係数がこの方法によって実現されるハードウェア実行例においては、演算時間遅れは4の係数で低減され得る。
本方法は、窓関数の非ゼロ値を記憶するとともにDFT係数にその非ゼロ値を適用することによって、畳み込みを用いて、周波数領域においてDFT係数に対して窓関数を実行するステップをさらに含む。窓関数はハミングウィンドウであり得る。周波数領域において畳み込みを用いることによって、ウィンドウのサンプルを記憶するためのメモリ要件が省略され得る。さらに、第1のDFT係数が入力フレームの真のエネルギ値を示すように、もとのフレームPは保存される。これは、多くのDSPアルゴリズムにおける、必要とされかつ重要な値であり、それは、時間領域窓方法を用いる場合、別個に計算されなければならない。
本発明の1つまたはより多くの実施形態においては、上述の方法のステップは、実数の回転因子値を含む回転因子行列についての実数のDFT係数行列を演算するように第1の時間が実行され、虚数の回転因子値を含む回転因子行列についての虚数のDFT係数行列を演算するように第2の時間が実行される。
このような実施形態においては、サンプルの現在のフレームの第2の半分と回転因子行列の右半分とを乗算するステップは、
実数の回転因子行列の右半分の上半分または下半分のうちの一方を形成する実数の回転因子を含む乗算を実行すること、
虚数の回転因子行列の右半分の上半分または下半分のうちの一方を形成する虚数の回転因子を含む乗算を実行すること、
実数の回転因子行列の右半分の上半分または下半分のうちの他方を形成する実数の回転因子について、実数または虚数の回転因子行列の右半分の上半分または下半分のうちの上記一方における対応する乗算から、乗算の結果を推測すること、および、
虚数の回転因子行列の右半分の上半分または下半分のうちの他方を形成する虚数の回転因子について、実数または虚数の回転因子行列の右半分の上半分または下半分のうちの上記一方における対応する乗算から、乗算の結果を推測することによって実行され得る。
本発明の他の局面は、離散フーリェ変換(DFT)係数行列を演算するための装置を提供し、装置は、
サンプルの第1のフレームについて、離散時間信号のサンプルのフレームを回転因子行列と乗算してその第1のフレームについてのDFT係数行列を演算するように適合された演算ブロックと、
サンプルのフレームの第2の半分と回転因子行列の右半分との乗算からもたらされる演算結果を記憶するためのメモリ装置とを含み、
サンプルの後続の各フレームについて、各後続フレームは前のフレームと半分が重なり合っており、演算ブロックは、
(i)前のフレームからの記憶された演算結果を抽出するとともに、すべての第2のフレームの記憶された演算結果の符合を反転させ、
(ii)サンプルの現在のフレームの第2の半分を回転因子行列の右半分と乗算し、その演算結果を記憶し、
(iii)ステップ(i)およびステップ(ii)の結果を加算するようにさらに適合される。
演算ブロックは、行列演算を実行するための乗累算(multiply-accumulate:MAC)ブロックを含み得る。
装置は、周波数領域においてDFT係数に対して窓関数を実行するための畳み込みブロックをさらに含み得、畳み込みブロックは、
窓関数の非ゼロ値を記憶するためのメモリユニットと、
非ゼロ値をDFT係数に提供するための乗累算(MAC)ブロックとを含む。
装置は、サンプルの第1のフレームについて、離散時間信号のサンプルのフレームを、実数の回転因子値を含む第1の回転因子行列と乗算してその第1のフレームについての実数のDFT係数行列を演算するように適合された第1の演算ブロックと、
サンプルのフレームの第2の半分と、実数の回転因子値を含む第1の回転因子行列の右半分との乗算からもたらされる第1の演算結果を記憶するための第1のメモリ装置とを含み、
各後続フレームは前のフレームと半分が重なり合っており、第1の演算ブロックは、サンプルの各後続フレームについて、
(i)前のフレームからの記憶された第1の演算結果を抽出するとともに、すべての第2のフレームの記憶された第1の演算結果の符合を反転させ、
(ii)サンプルの現在のフレームの第2の半分を第1の回転因子行列の右半分と乗算し、その演算結果を記憶し、
(iii)ステップ(i)およびステップ(ii)の結果を加算するようにさらに適合され、
装置は、サンプルの第1のフレームについて、離散時間信号のサンプルのフレームを、虚数の回転因子値を含む第2の回転因子行列と乗算してその第1のフレームについての虚数のDFT係数行列を演算するように適合された第2の演算ブロックと、
サンプルのフレームの第2の半分と、虚数の回転因子値を含む第2の回転因子行列の右半分との乗算からもたらされる第2の演算結果を記憶するための第2のメモリ装置とをさらに含み得、
第2の演算ブロックは、サンプルの各後続フレームについて、
(iv)前のフレームからの記憶された第2の演算結果を周出力するとともに、すべての第2のフレームの記憶された第2の演算結果の符合を反転させ、
(v)サンプルの現在のフレームの第2の半分を虚数の回転因子行列の右半分と乗算し、その演算結果を記憶し、
(vi)ステップ(iv)およびステップ(v)の結果を加算するようにさらに適合される。
各演算ブロックは、行列乗算を実行するための乗累算(MAC)ブロックを含み得る。
装置は、周波数領域において、実数のDFT係数に窓関数を実行するための第1の畳み込みブロックと、
周波数領域において、虚数のDFT係数に窓関数を実行するための第2の畳み込みブロックとをさらに含み得、
各畳み込みブロックは、
窓関数の非ゼロ値を記憶するためのメモリユニットと、
非ゼロ値をDFT係数に適用するための乗累算(MAC)ブロックを含む。
1つまたはより多くの実施形態において、第1の演算ブロックは、実数の回転因子行列の右半分の上半分または下半分のうちの一方を形成する実数の回転因子を含む乗算を実行するように構成され得るとともに、第2の演算ブロックは、虚数の回転因子行列の右半分の上半分または下半分のうちの一方を形成する虚数の回転因子を含む乗算を実行するように構成され得る。この場合は、装置は、
実数の回転因子行列の右半分の上半分または下半分の他方を形成する実数の回転因子について、第1のメモリ装置に、実数または虚数の回転因子行列の右半分の上半分または下半分の一方における対応する乗算からの乗算の結果を加算するように構成される第1の加算器と、
虚数の回転因子行列の右半分の上半分または下半分の他方を形成する虚数の回転因子について、第2のメモリ装置に、実数または虚数の回転因子行列の右半分の上半分または下半分の一方における対応する乗算からの乗算の結果を加算するように構成される第2の加算器とをさらに含み得る。
図面の簡単な説明
本発明の好ましい実施形態は、添付の図面を参照して、例として示されるのであって、限定として示されるものではない。
離散時間信号のサンプルの連続フレーム、およびそれらのサンプルの連続フレームの重なり合う性質を示す概略図である。 離散フーリェ変換係数の演算において用いられる、回転因子行列の対称特性を示す図である。 離散フーリェ変換係数を演算する装置の電界プログラマブルゲートアレイ実行例の実施形態である。 図3上に示された装置の部分を形成する畳み込みブロックの一部の概略図である。 離散フーリェ変換係数の演算において用いられる、回転因子行列のさらなる対称特性を示す図である。 離散フーリェ変換係数の演算において用いられる、回転因子行列の追加的な対称特性を示す、z平面における4つの対称点の図形的表現である。 離散フーリェ変換係数行列を演算するための装置の電界プログラマブルゲートアレイ実行例のさらなる実施形態である。
図面の詳細な説明
フーリェ変換は、周波数領域において時間可変信号を表現するために用いられる主要ツールである。離散時間信号のN個のサンプルの組{x(n), n=0,1 ,2, ..., N-1}を考える。x(n)の従来の離散フーリェ変換(DFT)は、以下のような表現で定義される。
Figure 2012502379
ここで、シンボルjは、虚数(−1)1/2を表し、(時間領域における)N個の実数データ値は、(周波数領域における)N個の複素DFT値に変換される。
共通項があるので、上記の定義は、通常、以下のようなシンボルを導入することによって単純化される。
Figure 2012502379
この場合、wは実行上「回転因子」と呼ばれるスカラー量である。そして、式(1)は、回転因子に関して、以下のように記載される。
Figure 2012502379
式(1)で定義されたDFT係数は、以下のような行列ベクトル形式で表現され得る。
Figure 2012502379
または、
f=Fx (5)
ここで、xはN個の入力サンプルのベクトルであり、fはDFT変換係数のベクトルであり、FはN×Nのフーリェ行列である。デジタル信号処理アルゴリズムの解析、合成(synthesis)、および実行においてDFTが担う重要な役割は、当業者には周知である。
長く固定されていない信号を処理する場合、フーリェ解析を適用するために、それらを短い準固定フレームに分割することが必要である。フレーム境界の近くで生じる、スペクトル漏れおよび事象が見逃されることを避けるために、入力フレームは重ね合わされるとともに適切な窓関数が適用されて、フレーム境界効果を低減する。図1は、離散時間信号のサンプルにおける3つの連続フレーム10,12,14の例を示す。各フレームは、x[n]で参照されるN個の要素を有し、ここで、nは0からN−1まで変化する。各フレームは、前のフレームと半分または50%だけ重なり合う。
式(4)におけるDFT変換係数は複素数であるが、実際には、DFTアルゴリズムのハードウェア実効例においては、実数および虚数のDFT係数が演算される。そして、結果として得られる実数および虚数のDFT係数は、複素DFT係数を演算するために用いられる。実数および虚数のDFT係数を計算するために用いられる最も単純な式を以下に示す。
Figure 2012502379
ここで、XRe[k]およびXIm[k]は、ビン(bin)インデックスkにおける、実数および虚数のDFT係数であり、NはDFTの大きさである。
入力信号は、通常純粋に実数であるので、DFTの複素数出力は対称的となり、k+0〜N/2−1までの値のみが必要とされ、nは0からN−1までの値を用いる。
2つの式(6)および式(7)は、2つの乗累乗算(Multiply-Accumulate:MAC)ブロックを用いて、直接的な手法で、FPGAハードウェアにおいて実行され得る。MACブロックが、今や低価格のFPGAチップに内蔵されているのを一般的に見出されるので、これは特に興味深い。たとえば、ザイリンクス社(Xilinx)からの低価格FPGA スパルタン−3(Spartan-3)のファミリーは、30より多くのMACブロックを含む。
式(6)および式(7)の両方は、行列形式において、以下のように記述される。
k=[F][xn] (8)
ここで、Fはコサインまたはサインテーブルの行列形式(回転因子行列)であり、Xnは入力信号である。式(8)に基づいて、フレーム10のフーリェ変換は以下のようになる。
1k=[F][xn]=[F][ab] (9)
行列Fが、図2に示されるように、F=[F1 F2]のように左半分のF1および右半分のF2に縦に分割される場合、式(4)は以下のようになる。
1k=[F][xn]=[F][ab]=[F1][a]+[F2][b] (10)
同様に、図1におけるフレーム12およびフレーム14のフーリェ変換は、それぞれ式(11)および式(12)によって記述される。
2k=[F1][b]+[F2][c] (11)
3k=[F1][c]+[F2][d] (12)
また、式(6)、式(7)および式(8)は以下のように理解され得る。
F=cos(2πkn/N) または F=sin(2πkn/N)
ここで、k=0:N/2−1であり、n=0:N−1である。
F=cos(2πkn/N)の場合、式(10)、式(11)および式(12)におけるF1およびF2は、以下の式(12a)および式(12b)のように示される。
F1=cos(2πkn/N) (12a)
ここで、k=0:N/2−1であり、n=0:N/2−1である。
F2=cos(2πkn/N) (12b)
ここで、k=0:Nであり、n=N/2:N−1である。
nが0からN/2−1まで変化すると、F2は以下のようになる。
Figure 2012502379
式(13)は、kに依存して、F2=±F1であることを示しており、F=sin(2πkn/N)のときも真値である。
式(10)および式(11)において説明されたように、フレーム10のDFT係数は、[F1][a]および[F2][b]によって決定され、フレーム12のDFT係数は、[F1][b]および[F2][c]で決定される。しかしながら、(上述のように)F2=±F1であり、そのため、[F1][b]は、さらなる演算を行なうことなく、[F2][b]から推測することができるので、[F2][b]に含まれる値が、次回の演算のために記憶される必要があるだけである。そのため、フレーム12に必要とされる演算は、2の係数で低減され得る。同様に、フレーム14についてのDFTの計算は、[F2][d]だけが具体的な演算を必要とする。したがって、第1のフレームの後は、各後続フレームの演算要件は、50%に低減され得る。
上述の技術は、図3に示されるようなハードウェアにおいて実行され得る。この図は、DFT係数を演算するための装置30を示す。装置30は、離散時間信号のサンプルのフレームを回転因子行列と掛け合わせて、それらのフレームについてのDFT係数行列を演算するように適合された第1の演算ブロックを含む。その目的を達成するために、演算ブロック32は、乗算器34および加算器36を含む乗累算(MAC)ブロックを含む。演算ブロック32は、メモリ装置38およびマルチプレクサ40をさらに含む。装置30は、式(6)によって記述された演算を実行するために演算ブロック32に必要とされる回転因子を記憶するルックアップテーブル42をさらに含む。
動作中、第1のフレーム10の各入力信号サンプルは、乗算器34によって、ルックアップテーブル42からの実数の回転因子と掛け合わされ、その後、加算器36によって積算されて、その第1のフレーム10についての実数のDFT係数行列を演算する。サンプルのフレームの第2の半分と回転因子行列の右半分との乗算からもたらされる演算結果は、アドレスkでメモリ装置38に記憶され、ここで、kは実数のDFTのビンインデックスである。
離散時間信号のサンプルの第2のフレーム12および後続のフレームについて、この第2のフレーム12についての実数のDFTのための演算結果の半分はすでに利用可能であり、メモリ装置38内に前に記憶されている。したがって、前のフレームからの記憶された演算結果が抽出され、記憶された演算結果の符合が全ての第2のフレームについて反転される。サンプルの現在のフレーム12の第2の半分は、その後、ルックアップテーブル42に保持された回転因子行列の右半分と掛け合わされ、乗算の結果は、その後、加算器36によって、抽出された演算結果に加えられ、次のビンについてのDFT係数を生成する。
サンプルの現在のフレームの第2の半分と回転因子行列の右半分との乗算からもたらされる演算結果は、アドレスk+1でメモリ装置38に記憶される。このプロセスは、全てのビンについて実数のDFT係数が演算されるまで繰り返される。
この実施形態においては、装置30は、第2のメモリ装置およびマルチプレクサ52とともに、乗算器46および加算器48で形成されるMACブロックを含む第2の演算ブロック44をさらに含む。第1の演算ブロック32および第1のメモリ装置38は、離散時間入力信号のサンプルのフレームとルックアップテーブル42に保持された実数の回転因子値とを用いて、サンプルのフレームについての実数のDFT係数を演算するのに対し、第2の演算ブロック44および第2のメモリ装置42は、入力信号のサンプルのフレームとルックアップテーブル42に保持された虚数の回転因子値とを用いて、サンプルの様々なフレームについての虚数のDFT係数を演算する。
その目的を達成するために、第2の演算ブロック44は、サンプルの第1のフレーム10について、サンプルのフレームをルックアップテーブル42に保持された実数の回転因子値と掛け合わせて、第1のフレームについての虚数のDFT係数を演算する。サンプルのフレームの第2の半分と虚数の回転因子を含む回転因子行列の右半分との乗算からもたらされる演算結果は、第2のメモリ装置50に記憶される。
サンプルの第2のフレームおよび後続のフレームについて、前のフレームについて実行され、かつメモリ装置50に記憶された演算結果が抽出され、記憶された演算結果の符合が、全ての第2のフレームにおいて反転される。その後、各現在のフレームについて、サンプルに現在のフレームの第2の半分が、虚数の回転因子行列の右半分と掛け合わされ、そして、乗算の結果および抽出された演算結果が加算されて、特定のDFTビンについての虚数のDFT係数を生成する。プロセスは、全てのビンについて虚数のDFT係数が計算されるまで、再度繰り返される。サンプルの第2のおよび後続のフレームの各々について、サンプルの現在のフレームの第2の半分と虚数の回転因子行列の右半分との乗算からもたらされる演算結果は、後続フレームに関する演算における使用のために、メモリ装置50に記憶される。
メモリ装置38および50の各々は、単一のメモリ空間を共有することが可能な2つの独立したポートを有する、デュアルポートランダムアクセスメモリ(RAM)を含み得る。デュアルポートRAM空間は、2つの等しい部分に分割され得、その各々は、N/2のサイズを有する(Nは、DFFTのサイズ)。この場合において、デュアルポートRAMは、回転バッファのように動作し、一方の部分はDFTブロックによって占有されるが、他方は入力信号サンプルで満たされる。
DFT係数の演算におけるスペクトル漏れを低減するために、通常、時間領域入力信号に窓関数が適用される。しかしながら、時間領域において窓関数を適用することは、図3に示される装置30において利用される、非対称特性に支障をきたし、メモリ装置38および50に記憶された前のフレームからの演算結果はもはや有効ではなくなる。したがって、装置30は、周波数領域において実数および虚数のDFT係数に窓関数を適用する畳み込みブロック54をさらに含む。
様々な窓関数が畳み込みブロック54によって実行され得るが、生成することが簡単であるという利点を有する2つの例は、ハンウィンドウおよびハミングウィンドウである。ハミングウィンドウは、より多くのサイドローブキャンセレーション(side lobe cancellation)を達成する、修正したハンウィンドウとみなすことができる。ハミングウィンドウは、シーケンスの合計w(n)として記述され得る。
Figure 2012502379
ここで、Nはウィンドウのサイズ(通常は、DFTサイズと同じ)であり、aは通常は整数であり、Nは0からN−1までの値のインデックスである。
各シーケンスのDTFT(離散時間フーリェ変換)は、以下のように特定され得る。
Figure 2012502379
ここで、
Figure 2012502379
DFTの場合においては、ウィンドウは2π/Nの倍数においてサンプリングされる。したがって、3つの非ゼロサンプルのみが、サンプルプロセス中に取得される。これらのサンプルの位置は、−2π/N、0、および2π/Nであり、−(1−α)/2、α、および−(1−α)/2から得られるサンプルの対応する値を有する。αは、0.54の値を有し、したがって、ハミングウィンドウのDFTは、3つの非ゼロ値、−0.23、0.54、および−0.23のみを含む。
周波数領域における畳み込みを用いることによって、窓関数のサンプルを記憶するためのメモリ要件は省略され得る。さらに、第1のDFT係数が入力フレームの真のエネルギ値を示すように、元のフレームが保存される。これは、多くのデジタル処理アルゴリズムにおいて必要とされる重要な値であるので、時間領域ウィンドウ法を用いることが別個に計算されなくてはならない場合には、周波数領域における畳み込みを用いることは、図3に示されたハードウェア実行例におけるさらなる資源の低減を達成する。
図4は、畳み込みブロック54によって与えられる窓関数が提供することができる便利な事項について示す。このハードウェア実行例60は、ハミングウィンドウの3つの非ゼロDFT値の各々を記憶するための3つのメモリ要素64,66,68を含むシフトレジスタ62を含む。ハミングウィンドウの3つの非ゼロDFT値の各々は、乗算器72および加算器74で形成されるMACブロック70によって、実数または虚数のDFT係数に適用される。畳み込みブロック54が、図4に示された二組の要素、すなわち、加算器36の出力において生成された実数のDFT係数に窓関数を適用するための第1の組および加算器48の出力において生成された虚数のDFT係数に窓関数を適用するための第2の組を含むことが理解されるであろう。
図3および図4に示された本発明の実施形態は、回転因子行列の対称特性を利用して、演算の複雑さを低減する。しかしながら、さらなる時間遅れの低減が、これらと同様の対称特性に基づく最適化技術の使用を通して、少しのハードウェア追加だけで達成され得る。
Fが回転因子行列の場合、それは、複素数式
Figure 2012502379
を有し、ここでk値は0からN/2−1であり、nは0からN−1である。式(10)、式(11)および式(12)で示されたように、F1は行列Fの左半分であり、nは0からN/2−1まで変化し、F2は右半分であり、nはN/2からN−1まで変化する。
したがって、
Figure 2012502379
であり、ここでkおよびnは0からN/2−1まで変化する。L=N/2とすると、
Figure 2012502379
であり、ここでkおよびnは0からL−1まで変化する。図5に示されるように、F1は水平方向にF1aおよびF1bに分割される場合は、
Figure 2012502379
であり、kは0からL/2−1まで変化し、nは0からL−1まで変化し、
Figure 2012502379
であり、kはL/2からL−1まで変化し、nは0からL−1まで変化する。
kが0からL/2−1まで変化する場合、F1bは以下の式によって表わされ、
Figure 2012502379
ここで、
Figure 2012502379
である。
式(18)は、図6に示されるように、z平面における4つの対称点80から86までを表わす。
上記から、DFT基本式(6)および(7)は、以下のように書き換えられ得る。
Figure 2012502379
ここで、kは0からN/4−1まで変化し、
Figure 2012502379
ここで、kに依存して、A=±cos(2πkn/N)または±sin(2πkn/N)であり、
Figure 2012502379
ここで、kは0からN/4−1まで変化し、
Figure 2012502379
ここで、kに依存して、A=±cos(2πkn/N)または±sin(2πkn/N)である。
結果として、インデックスkにおけるDFT係数を演算する場合、2つの乗算の積は、インデックスkに依存する適当な符号ビットと交換されて、インデックスk+L/2におけるDFT係数を演算し得る。したがって、DFT係数の全てのビンを計算するためのN/2回のループの代わりに、図7に示されるように、2つ多くの加算器のみの追加によって、N/4回のループだけが必要とされる。
言い換えると、サンプルのフレームの第2の半分bを実数および虚数の回転因子行列の右半分F2と掛け合わせるために、実数および虚数の回転因子行列の右半分F2の上半分F2aまたは下半分F2bのうちの一方を形成する回転因子を含む乗算のみの演算が必要とされる。実数の回転因子行列の右半分F2の上半分F2aまたは下半分F2bのうちの他方を形成する実数の回転因子について、乗算の結果は、実数または虚数の回転因子行列の右半分F2の上半分F2aまたは下半分F2bのうちの上記一方における対応した乗算から推測され得る。
図7は、図5および図6に関連して説明される最適化技術を実行する、実数および虚数のDFT係数を演算するための装置100を示す。装置100は、乗算器104および加算器106で形成されるMACブロックを含む第1の演算ブロック102を含む。第1のメモリ装置108および関連するマルチプレクサ110も含まれる。装置100は、乗算器114および加算器116で形成されるMACブロックを含む第2の演算ブロック112をさらに含む。第2のメモリ装置118および関連するマルチプレクサ120も含まれる。さらに、装置100は、ルックアップテーブル122および畳み込みブロック124を含む。第1および第2の演算ブロック102および112、第1および第2のメモリ装置108および118ならびに関連するマルチプレクサ110および120、ルックアップテーブル130、ならびに畳み込みブロック124は、図3に示された装置30に関連して説明された、第1および第2の演算ブロック32および44、第1および第2のメモリ装置38および50ならびに関連するマルチプレクサ40および52、ルックアップテーブル42、ならびに畳み込みブロック54に関連して説明されたものと同様な態様で機能する。
装置100においては、第1の演算ブロック102は、実数の回転因子行列の右半分F2の上半分F2aまたは下半分F2bの一方を形成する実数の回転因子を含む乗算を実行するように構成される。同様に、第2の演算ブロック112は、虚数の回転因子行列の右半分F2の上半分F2aまたは下半分F2bの一方を形成する虚数の回転因子を含む乗算を実行するように構成される。
しかしながら、装置100は、さらなる加算器126および128、ならびにさらなるマルチプレクサ130および132をさらに含む。加算器126は、実数の回転因子行列の右半分F2の上半分F2aまたは下半分F2bの他方を形成する実数の回転因子について、第1のメモリ装置108に、マルチプレクサ130によって提供されるような実数または虚数の回転因子行列の右半分の上半分または下半分の一方における対応する乗算の結果を加算するように構成される。同様に、加算器128は、虚数の回転因子行列の右半分F2の上半分F2aまたは下半分F2bの他方を形成する虚数の回転因子について、第2のメモリ装置118に、マルチプレクサ132によって提供されるような実数または虚数の回転因子行列の右半分の上半分または下半分の一方における対応する乗算の結果を加算するように構成される。このようにして、必要とされる全てのDFT係数の計算のためのN/2回のループに代えて、装置100において、加算器126および128ならびに関連するマルチプレクサ130および132の追加によるN/4回だけのループが必要とされ、それによって、図3に示された装置30と比べて、さらなる時間遅れの低減を提供する。
上述の要素は、明細書中で開示された本発明の単なる例示にすぎず、本発明の精神から逸脱することなく、当業者によって多くの変形が考案されかつ創作され得ることが理解されるべきである。

Claims (14)

  1. 離散周波数離散フーリェ変換(Discrete Fourier Transform:DFT)係数行列の演算方法であって、
    前記方法は、
    (a)サンプルの第1のフレームについて、離散時間信号のサンプルのフレームを回転因子行列と乗算してその第1のフレームについてのDFT係数行列を演算し、サンプルの前記フレームの第2の半分と前記回転因子行列の右半分との乗算からもたらされる演算結果を記憶するステップと、
    (b)サンプルの後続の各フレームについて、各後続フレームは前のフレームと半分が重なり合っており、
    (i)前のフレームからの記憶された演算結果を抽出するとともに、すべての第2のフレームの記憶された前記演算結果の符合を反転させるステップと、
    (ii)サンプルの現在のフレームの第2の半分を前記回転因子行列の右半分と乗算し、その演算結果を記憶するステップと、
    (iii)ステップ(i)およびステップ(ii)の結果を加算するステップとを含む、方法。
  2. 前記DFT行列は、実数のDFT係数を含み、
    各回転因子行列は、実数の回転因子値を含む、請求項1に記載の方法。
  3. 前記DFT行列は、虚数のDFT係数を含み、
    各回転因子行列は、虚数の回転因子値を含む、請求項1に記載の方法。
  4. 窓関数の非ゼロ値を記憶し、
    前記DFT係数に前記非ゼロを適用することによって、
    畳み込みを用いて、周波数領域において前記DFT係数に対して窓関数を実行するステップをさらに含む、先行する請求項のいずれか1つに記載の方法。
  5. 前記窓関数は、ハミングウィンドウである、請求項4に記載の方法。
  6. 離散周波数離散フーリェ変換(DFT)係数行列の演算方法であって、
    前記方法は、
    請求項1のステップ(a)およびステップ(b)を実行して、実数の回転因子値を含む回転因子行列についての実数のDFT係数行列を演算するステップと、
    請求項1のステップ(a)およびステップ(b)を実行して、虚数の回転因子値を含む回転因子行列についての虚数のDFT係数行列を演算するステップと含む、方法。
  7. ステップ(b)(ii)は、
    前記実数の回転因子行列の右半分の上半分または下半分のうちの一方を形成する実数の回転因子を含む乗算を実行するステップと、
    前記虚数の回転因子行列の右半分の上半分または下半分のうちの一方を形成する虚数の回転因子を含む乗算を実行するステップと、
    前記実数の回転因子行列の右半分の上半分または下半分のうちの他方を形成する実数の回転因子について、前記実数または虚数の回転因子行列の右半分の上半分または下半分のうちの一方における対応する乗算から、乗算の結果を推測するステップと、
    前記虚数の回転因子行列の右半分の上半分または下半分のうちの他方を形成する虚数の回転因子について、前記実数または虚数の回転因子行列の右半分の上半分または下半分のうちの一方における対応する乗算から、乗算の結果を推測するステップとを含む、請求項6に記載の方法。
  8. 離散周波数離散フーリェ変換(DFT)係数行列を演算するための装置であって、
    前記装置は、
    サンプルの第1のフレームについて、離散時間信号のサンプルのフレームを回転因子行列と乗算してその第1のフレームについてのDFT係数行列を演算するように適合された演算ブロックと、
    サンプルの前記フレームの第2の半分と前記回転因子行列の右半分との乗算からもたらされる演算結果を記憶するためのメモリ装置とを含み、
    サンプルの後続の各フレームについて、各後続フレームは前のフレームと半分が重なり合っており、前記演算ブロックは、
    (i)前のフレームからの記憶された演算結果を抽出するとともに、すべての第2のフレームの記憶された前記演算結果の符合を反転させ、
    (ii)サンプルの現在のフレームの第2の半分を前記回転因子行列の右半分と乗算し、その演算結果を記憶し、
    (iii)ステップ(i)およびステップ(ii)の結果を加算するようにさらに適合される、装置。
  9. 前記演算ブロックは、行列乗算を実行するための乗累算(multiply-accumulate:MAC)ブロックを含む、請求項8に記載の装置。
  10. 周波数領域において前記DFT係数に対して窓関数を実行するための畳み込みブロックをさらに含み、
    前記畳み込みブロックは、
    前記窓関数の非ゼロ値を記憶するためのメモリユニットと、
    前記非ゼロ値を前記DFT係数に提供するための乗累算(MAC)ブロックとを含む、請求項8または9に記載の装置。
  11. 離散周波数離散フーリェ変換(DFT)係数行列を演算するための装置であって、
    前記装置は、
    サンプルの第1のフレームについて、離散時間信号のサンプルのフレームを、実数の回転因子値を含む第1の回転因子行列と乗算してその第1のフレームについての実数のDFT係数行列を演算するように適合された第1の演算ブロックと、
    サンプルの前記フレームの第2の半分と、実数の回転因子値を含む前記第1の回転因子行列の右半分との乗算からもたらされる第1の演算結果を記憶するための第1のメモリ装置とを含み、
    各後続フレームは前のフレームと半分が重なり合っており、
    前記第1の演算ブロックは、サンプルの各後続フレームについて、
    (i)前のフレームからの記憶された第1の演算結果を抽出するとともに、すべての第2のフレームの記憶された前記第1の演算結果の符合を反転させ、
    (ii)サンプルの現在のフレームの第2の半分を前記第1の回転因子行列の右半分と乗算し、その演算結果を記憶し、
    (iii)ステップ(i)およびステップ(ii)の結果を加算するようにさらに適合され、
    前記装置は、
    サンプルの前記第1のフレームについて、離散時間信号のサンプルのフレームを、虚数の回転因子値を含む第2の回転因子行列と乗算してその第1のフレームについての虚数のDFT係数行列を演算するように適合された第2の演算ブロックと、
    サンプルの前記フレームの第2の半分と、虚数の回転因子値を含む前記第2の回転因子行列の右半分との乗算からもたらされる第2の演算結果を記憶するための第2のメモリ装置とをさらに含み、
    前記第2の演算ブロックは、サンプルの各後続フレームについて、
    (iv)前のフレームからの記憶された第2の演算結果を抽出するとともに、すべての第2のフレームの記憶された前記第2の演算結果の符合を反転させ、
    (v)サンプルの現在のフレームの第2の半分を前記虚数の回転因子行列の右半分と乗算し、その演算結果を記憶し、
    (vi)ステップ(iv)およびステップ(v)の結果を加算するようにさらに適合される、装置。
  12. 各演算ブロックは、行列乗算を実行するための乗累算(MAC)ブロックを含む、
    請求項11に記載の装置。
  13. 周波数領域において、前記実数のDFT係数に窓関数を実行するための第1の畳み込みブロックと、
    周波数領域において、前記虚数のDFT係数に窓関数を実行するための第2の畳み込みブロックとをさらに含み、
    各畳み込みブロックは、
    前記窓関数の非ゼロ値を記憶するためのメモリユニットと、
    前記非ゼロ値を前記DFT係数に適用するための乗累算(MAC)ブロックを含む、請求項11または12に記載の装置。
  14. 前記第1の演算ブロックは、前記実数の回転因子行列の右半分の上半分または下半分のうちの一方を形成する実数の回転因子を含む乗算を実行するように構成され、
    前記第2の演算ブロックは、前記虚数の回転因子行列の右半分の上半分または下半分のうちの一方を形成する共数の回転因子を含む乗算を実行するように構成され、
    前記装置は、
    前記実数の回転因子行列の右半分の上半分または下半分の他方を形成する実数の回転因子について、前記第1のメモリ装置に、前記実数または虚数の回転因子行列の右半分の上半分または下半分の一方における対応する乗算からの乗算の結果を加算するように構成される第1の加算器と、
    前記虚数の回転因子行列の右半分の上半分または下半分の他方を形成する虚数の回転因子について、前記第2のメモリ装置に、前記実数または虚数の回転因子行列の右半分の上半分または下半分の一方における対応する乗算からの乗算の結果を加算するように構成される第2の加算器とをさらに含む、請求項11〜13のいずれか1項に記載の装置。
JP2011526354A 2008-09-10 2009-09-10 離散フーリェ変換(dft)係数についての行列を演算するための方法および装置 Withdrawn JP2012502379A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2008904721A AU2008904721A0 (en) 2008-09-10 Method and device for computing matrices for discrete fourier transform (DFT) coefficients
AU2008904721 2008-09-10
PCT/AU2009/001190 WO2010028440A1 (en) 2008-09-10 2009-09-10 Method and device for computing matrices for discrete fourier transform (dft) coefficients

Publications (1)

Publication Number Publication Date
JP2012502379A true JP2012502379A (ja) 2012-01-26

Family

ID=42004720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011526354A Withdrawn JP2012502379A (ja) 2008-09-10 2009-09-10 離散フーリェ変換(dft)係数についての行列を演算するための方法および装置

Country Status (7)

Country Link
US (1) US20120131079A1 (ja)
EP (1) EP2332072A1 (ja)
JP (1) JP2012502379A (ja)
KR (1) KR20110081971A (ja)
CN (1) CN102209962A (ja)
AU (1) AU2009291506A1 (ja)
WO (1) WO2010028440A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102592601B (zh) 2011-01-10 2014-09-17 华为技术有限公司 一种信号处理方法和装置
US9128885B2 (en) 2012-10-17 2015-09-08 The Mitre Corporation Computationally efficient finite impulse response comb filtering
US10515612B2 (en) * 2018-03-26 2019-12-24 Samsung Display Co., Ltd. Transformation based stress profile compression
US20200349217A1 (en) * 2019-05-03 2020-11-05 Micron Technology, Inc. Methods and apparatus for performing matrix transformations within a memory array
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
CN113379046B (zh) * 2020-03-09 2023-07-11 中国科学院深圳先进技术研究院 卷积神经网络的加速计算方法、存储介质和计算机设备
CN113569190A (zh) * 2021-07-02 2021-10-29 星思连接(上海)半导体有限公司 一种快速傅立叶变换旋转因子计算系统和方法
CN115168794B (zh) * 2022-06-20 2023-04-21 深圳英智科技有限公司 一种基于改进dft的频谱分析方法、系统及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3748451A (en) * 1970-08-21 1973-07-24 Control Data Corp General purpose matrix processor with convolution capabilities
US6839727B2 (en) * 2001-05-01 2005-01-04 Sun Microsystems, Inc. System and method for computing a discrete transform
US6704760B2 (en) * 2002-04-11 2004-03-09 Interdigital Technology Corporation Optimized discrete fourier transform method and apparatus using prime factor algorithm
US7236535B2 (en) * 2002-11-19 2007-06-26 Qualcomm Incorporated Reduced complexity channel estimation for wireless communication systems
US7702712B2 (en) * 2003-12-05 2010-04-20 Qualcomm Incorporated FFT architecture and method
US20050278404A1 (en) * 2004-04-05 2005-12-15 Jaber Associates, L.L.C. Method and apparatus for single iteration fast Fourier transform
US7296045B2 (en) * 2004-06-10 2007-11-13 Hasan Sehitoglu Matrix-valued methods and apparatus for signal processing

Also Published As

Publication number Publication date
EP2332072A1 (en) 2011-06-15
KR20110081971A (ko) 2011-07-15
US20120131079A1 (en) 2012-05-24
WO2010028440A1 (en) 2010-03-18
AU2009291506A1 (en) 2010-03-18
CN102209962A (zh) 2011-10-05

Similar Documents

Publication Publication Date Title
JP2012502379A (ja) 離散フーリェ変換(dft)係数についての行列を演算するための方法および装置
Massolino et al. A compact and scalable hardware/software co-design of SIKE
KR20060061796A (ko) 리코드 radix-2 파이프라인 FFT 프로세서
CN115344236B (zh) 多项式乘法运算方法、多项式乘法器、设备及介质
Tomar et al. Modified binary multiplier architecture to achieve reduced latency and hardware utilization
KR102376492B1 (ko) 실수값을 입력으로 하는 고속푸리에 변환장치 및 방법
Nguyen et al. Design of polynomial ntt and intt accelerator for post-quantum cryptography crystals-kyber
JP5310720B2 (ja) Cordicに基づいたfft及びifft装置並びに方法
US7493356B2 (en) Device and method for cryptoprocessor
Panda Performance Analysis and Design of a Discreet Cosine Transform processor Using CORDIC algorithm
Yu et al. Efficient modular reduction algorithm without correction phase
Fang et al. A pipelined algorithm and area-efficient architecture for serial real-valued FFT
Györfi et al. Implementing modular FFTs in FPGAs--A basic block for lattice-based cryptography
Hua et al. A novel unified method for the fast computation of discrete image moments on grayscale images
Wang et al. A novel fast modular multiplier architecture for 8,192-bit RSA cryposystem
TW201423438A (zh) 數位訊號處理裝置及其處理方法
TW201724089A (zh) 具有滑動式二階遞迴傅立葉轉換的頻域適應性濾波系統
Itabashi et al. Efficient modular polynomial multiplier for NTT accelerator of Crystals-Kyber
Becker et al. Efficient multiplication of somewhat small integers using number-theoretic transforms
Pazhani Computation unit architecture for satellite image processing systems
CN113467752B (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
US11528013B2 (en) Systems and method for a low power correlator architecture using distributed arithmetic
EP4258591A1 (en) Apparatus and method with homomorphic encryption operation
Du et al. A family of scalable polynomial multiplier architectures for ring-LWE based cryptosystems
Mellqvist et al. One million-point fft

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120510

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20131017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131017