JP4083387B2 - 離散フーリエ変換の計算 - Google Patents

離散フーリエ変換の計算 Download PDF

Info

Publication number
JP4083387B2
JP4083387B2 JP2000615917A JP2000615917A JP4083387B2 JP 4083387 B2 JP4083387 B2 JP 4083387B2 JP 2000615917 A JP2000615917 A JP 2000615917A JP 2000615917 A JP2000615917 A JP 2000615917A JP 4083387 B2 JP4083387 B2 JP 4083387B2
Authority
JP
Japan
Prior art keywords
coefficient
sample
memory element
coefficients
function
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
JP2000615917A
Other languages
English (en)
Other versions
JP2002543524A (ja
Inventor
ペルトン,ウォルター・イー
Original Assignee
ペルトン,ウォルター・イー
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 ペルトン,ウォルター・イー filed Critical ペルトン,ウォルター・イー
Publication of JP2002543524A publication Critical patent/JP2002543524A/ja
Application granted granted Critical
Publication of JP4083387B2 publication Critical patent/JP4083387B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Complex Calculations (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

【0001】
(発明の分野)
本発明は、概して、関数の係数を確定することに関する。さらに特定すると、本発明の装置、方法およびコンピュータプログラム製品は、信号の各サンプルが係数の確定における待ち時間を減少するために受信されるときに入力信号を表す関数の係数を確定することに関する。
【0002】
(発明の背景)
信号処理は、多くの電子システムの重要な機能である。特に、多くの電子システムにおいて、データは信号形式で伝送される。さらに、いくつかの電子システムは、機械システムまたは化学システムの動作を、振動信号およびその他の種類の信号などの、これらのシステムから出力される信号の特徴を観察することにより分析および監視する。これを考慮に入れて、信号の中の情報またはデータがデータ処理に使用できるように信号を特徴付けるために方法が開発されてきた。
【0003】
一例として、多くの電子システムにおいては、時間ドメイン信号は、典型的には、信号処理の前に周波数ドメインに変換される。信号を周波数ドメインに変換するための典型的な方法は、フーリエ変換を使用して実行される。信号のフーリエ変換は、ベース周波数として知られている選択された時間期間で採取される時間ドメイン信号の複数のサンプルに基づいている。信号のこれらのサンプルに基づき、フーリエ変換は複数の係数を提供し、係数はそれぞれベース周波数の倍数である周波数の振幅を表す。それから、周波数ドメインで信号を表すフーリエ変換のこれらの係数は、信号を処理する際に電子システムによって使用される。
【0004】
フーリエ変換は、信号を処理するための最も幅広く使用されている関数の内のいくつかの中にあるが、現在使用されている、あるいはその適用可能性のさらによい理解が認識されるにつれて将来使用されるだろうそれ以外の関数がある。これらの関数は、いくつか挙げるだけでも、ベッセル関数、ルジャンドルの多項式、第1種および第2種のチェバイシェフ(Tschebysheff)の多項式、ヤコビ(Jacoby)の多項式、一般化されたラゲールの多項式、エルミートの多項式、ベルヌーイの多項式、オイラーの多項式、および量子力学で使用される種々の行列、一次分析関数、ウェーブレットおよびフラクタルを含む。
【0005】
フーリエ変換およびその他の前述された関数は、データ処理で使用するための信号の特徴を決定する上で有効であるが、その使用にはいくつかの欠点がある。特に、これらの関数を信号に適用することは、典型的には演算上集約的である。これは、それがデータ処理を実行するために専門化したプロセッサの使用を必要とする可能性があるために不利である。さらに、およびなおさらに重要なことには、これらの関数を使用する演算の総数を実行するのに必要とされる時間は、多くのデータ処理用途に受け入れ難い遅延を引き起こす可能性がある。事実上、多くのデータ処理システムの目標とは、遅延なくリアルタイムでデータ信号を処理する能力である。
【0006】
例えば、フーリエ級数は、信号を表す係数の無限級数として定義される。フーリエ級数を使用して信号を変換するには、無限数の演算が必要になるだろう。この問題を矯正するために、多くの従来のデータ処理システムが、無限フーリエ級数と対照的に、離散フーリエ変換(DFT)を使用する。DFTはフーリエ級数に対するデジタル近似であり、デジタル化されたアナログ情報を処理するために使用される。重要なことに、DFTはフーリエ級数の無限級数を、有限期間で採取されるN個の均等に間隔をあけておかれるサンプルの有限集合と置換する。したがって、DFTの演算は、フーリエ級数によって必要とされる無限数のサンプルの代わりに、受け取られたサンプルと同数の係数を提供する。そのこと自体、DFTの使用は、信号を処理するための最も満足のいく現在の手段を提供する。
【0007】
しかしながら、信号を処理するのに必要とされる時間を短縮することの重要性のため、信号のDFTを実行するために必要とされる演算の数をさらに削減するために、方法が開発されてきた。特に、DFT手順は、類似するプロセスによってそれぞれの係数を計算する。一般的な係数のプロセスは、以下の通りである。独立した可変時間かける角度速度の正規化された値の正弦または余弦で各サンプルを乗算し、サンプルのすべてを総計する。この手順は、N個の係数のそれぞれに、N乗算−加算のステップを定義し、それは、その結果、N2乗算−DFTごとに演算加算に等しい。典型的には、信号の多くのサンプルが信号の適切な近似を実行するために必要とされるので、信号のDFTは、典型的には演算および時間集約的である。
【0008】
演算の数を削減するために開発された方法の1つがバタフライ方法であり、それは演算の数をN2からNかける対数(N)に削減する。バタフライ方法は、DFTの三角値の多くが関数の周期性のために同じであるという事実に基づいている。そのこと自体、バタフライ方法はDFTに関連付けられる行列をN/2 2点変換(つまり、各係数anとbnを表す変換)に削減する。バタフライ方法は、さらに、DFTの冗長な三角値を削減する。バタフライ方法はさらに伝統的なDFT方法に優先して演算数を削減するが、それは信号のフーリエ変換に複雑度も加える。特に、バタフライ方法は、信号のサンプルおよび関数を含む行列を処理するための複雑な方法を使用する。この複雑度が、専門化されたプロセッサの使用を必要とし、フーリエ変換の演算のための時間を増加することがある。その性質により、バタフライは、サンプルのすべてが受け取られた後まで係数の確定を開始しないバッチプロセスである。後述されるように、この方法が、関数の係数の確定で待ち時間を生じさせる。
【0009】
必要とされた演算数に加えて、DFTの追加の問題とは、DFTの各係数の値が、信号のすべてのサンプルの関数であるという点である。したがって、DFTの係数のどれも、サンプルのすべてが処理されるまで確定できない。いったん集合の最後のサンプルが受け取られると、係数のすべての値が定義できる。そのこと自体、最後のサンプルの到着と係数の可用性の間の時間が、システムの待ち時間と呼ばれる。係数を処理するための時間がサンプルの集合を収集するための時間を上回る場合、システムはリアルタイムで動作できない。
【0010】
サンプルのすべてが受け取られるまで係数は定義されないが、従来の技術ではこれまで認識されていなかったDFTの有利な特性がある。この特性とはサンプルの独立性である。DFTプロセスで変換されているサンプルの集合では、各サンプルが、適用可能な角度の正弦または余弦だけに基づいて、各係数に寄与する。これは付録1に図解される。特に、DFTの係数のそれぞれ(つまり、A0、A1、A2...およびB0、B1、B2...)は、各サンプルを、各係数に関連付けられる正弦関数と余弦関数に適用した総和である。例えば、係数A1は、各サンプルの、A1係数に関連付けられた余弦関数への適用である総和A11+A12+...A18である。サンプルのそれぞれが加算により各係数に関係するため、各サンプルは他のサンプルとは無関係であり、他のサンプルの受信前に係数を更新するために使用することができる。
【0011】
信号のフーリエ変換を確定するための多くの従来のシステムは、DFTのこのサンプルの独立性の態様を認識していない。特に、DFTを使用する従来のシステムは、典型的には、最初に信号の多くのサンプルNを受け取り、サンプルのすべてが受信された後にだけ、システムは係数のそれぞれを生成する。そのこと自体、これらの従来のシステムは、システムが、最後のサンプルが受け取られた後に、係数のそれぞれを計算するために必要とされる時間に等しい関連付けられた待ち時間を有する。この待ち時間が重要である場合がある。例えば、従来のシステムがN=64サンプルを使用してDFTを確定する場合に、演算の数はN2、つまり4096である。高速フーリエ変換(FFT)の場合、これはNかける対数(N)に削減され、つまり64(6)は364に等しい。
【0012】
付録1は、DFTの係数を確定する前に、サンプルのすべてが受け取られるまで待機するデータ処理システムの例を示す。分かるように、付録1に示されているデータ処理システムは、最初に、フーリエ変換の係数のどれかの処理を開始する前に、信号の8つのサンプルを受け取る。サンプルの受信後だけに、システムは係数の計算を開始する。待ち時間は、最後のサンプルの受信と、係数が使用できるようになるときの間の時間として定義されるため、このデータ処理システムは、係数のすべての演算を実行するために必要とされる時間に等しい待ち時間を有する。そのこと自体、このデータ処理システムは、リアルタイムデータ処理に使用することはできない。リアルタイムデータ処理、あるいはほぼリアルタイムのデータ処理は多くのデータ処理システムでの使用に有利であるため、信号の変換を実行するために必要とされる時間を短縮する装置および方法を提供することが望ましい。
IEEE Transactions on Signal Processing Vol. 42, No. 4, 998〜991ページ(1994年4月)に掲載された、 N. Rama Murthy M.N.S. Swamy の共著による、「シストリック・アーキテクチャを用いたDFTとDCTのリアルタイム計算について( On the Real-Time Computation of DFT and DCT through Systolic Architectures )」という題名の論文には、信号のDFTを求める計算システムが説明されている。この論文で提案されているアーキテクチャは一連のデータとして入力データを受け付け、一連の出力として出力する。これは、また、計算のための境界セル( boundary cell )を削減する。しかし、全てのサンプルが受け付けられるまで係数を求める計算を待機させるので、このアーキテクチャではDFT計算のための待ち時間の減少がもたらされない。
【0013】
バタフライなどの多くの従来のデータ処理システムの追加の問題とは、システムの複雑さのために、関数の係数が独立して観察できないという点である。さらに、バタフライは、リアルタイムと対照的に、バッチ方法で係数を確定するため、それぞれ新しいサンプルが受信されるときに個々の係数を観察し、追跡調査することはできない。分析のバッチ方法は待ち時間を加算するため、従来のシステムで経時的に係数を観察し、追跡調査するにはかなりの処理が利用されなければならない。遵守(Observance、監視)および信号の個々の係数の追跡調査は、徹底的な信号分析には有利である。
【0014】
多くの従来のデータ処理システムでの依然として追加の問題とは、これらのシステムが、典型的には、関数の個々の係数の分解能の変動に対処しないという点である。例えば、バタフライは、サンプルのと同じ数の係数を生じさせる各係数を計算するように構成される。バタフライは重要なそれらの係数と同じ分解能にとってあまり重要ではない係数を確定するのに時間と資源を費やすため、これは、ただ1つの係数、あるいは係数の部分集合に対する関心がある用途では不利である可能性がある。これを考慮に入れて、個々の係数の追跡調査および遵守(observance)および個々の係数を計算する分解能の変化に対処する装置および方法を提供することが望ましいだろう。
【0015】
(発明の要約)
以下に述べられるように、本発明の装置、方法およびコンピュータプログラム製品は、フーリエ変換などの関数を使用する信号の処理で特定される欠点の多くを克服する。特に、本発明は、待ち時間が短縮された入力信号を表す関数の係数を確定する装置、方法およびコンピュータプログラム製品を提供し、その結果、関数の係数は信号の最後のサンプルの受信から短縮された時間内で使用できるようになる。本発明は、関数の係数を確定するために記憶されなければならないデータ量を削減する装置、方法、およびコンピュータプログラム製品も提供し、その結果、あまり複雑ではないハードウェア設計が実現できる。さらに、本発明は、個々の係数を追跡調査、観察できるようにし、個々の係数または係数の部分集合も異なるレベルの分解能で確定できるようにする装置、方法、およびコンピュータプログラム製品を提供する。
【0016】
特に、1つの実施形態では、本発明は、信号の最後のサンプルの受取りの前に関数の係数の少なくとも1つを更新し、その結果、関数の係数が、待ち時間が短縮されて確定できる装置、方法、およびコンピュータプログラム製品を提供する。さらに、別の実施形態では、本発明の装置、方法、およびコンピュータプログラム製品が、信号のサンプルのそれぞれが受信されるにつれて関数の係数のそれぞれを更新する。前述されたように、信号のサンプルのそれぞれは、他のサンプルとは関係なく関数の係数に影響を及ぼす。サンプルの独立した性質は、各サンプルからの寄与のすべてを別々に分類するために、各係数の等式を配列し直すことを可能にする。その結果、各サンプルの寄与は、サンプルが受け取られ、その後に各係数に加算されるときに計算できるようになる。
【0017】
これを考慮に入れて、ある実施形態では、本発明は、入力信号の所定の複数のサンプルに基づいて入力信号を表す関数の係数を確定するための装置を含む。本発明の装置は、一度に1つずつサンプルのそれぞれを受け取り、最後のサンプルの受取りの前に関数の係数の少なくとも1つを更新する係数生成プログラムを含む。
【0018】
別の実施形態では、本発明の装置は、一度に1つずつサンプルのそれぞれを受け取り、すべてのサンプルの受取りを待機しなくてもサンプルが受け取られるにつれて、各サンプルに基づいて関数の係数を更新する係数生成プログラムを含む。このようにして係数は、次のサンプルの到着前に毎回更新される。そのこと自体、最後のサンプルが受け取られると、残りの演算は各係数に対する最後のサンプルの寄与の確定だけである。したがって、最後のサンプルの受取りから係数が使用できるようになるまでの待ち時間は短縮される。
【0019】
本発明のさらなる実施形態では、係数生成プログラムが、係数のそれぞれを、それが受け取られるとサンプルで更新する。そのこと自体、最後のサンプルが受け取られると、係数生成プログラムは、同時に係数のそれぞれを更新し、最後のサンプルの受取りと係数の可用性の間の待ち時間は大幅に短縮される。
【0020】
最後のサンプルの受取りと係数の可用性の間の待ち時間を短縮することに加えて、本発明の装置、方法、およびコンピュータプログラム製品は、実現に必要とされるハードウェアも削減する。特に、本発明の装置、方法、およびコンピュータプログラム製品は、係数のそれぞれを、サンプルが受け取られると各サンプルの寄与で更新する。そのこと自体、係数のそれぞれが更新された後にサンプルを保持することは必要とされず、それにより記憶域の量は削減される。
【0021】
さらに、本発明の装置、方法およびコンピュータプログラム製品は、各係数に関連付けられた関数の少なくとも一部を事前に計算し、これらの事前に計算した値を、指定された信号の係数を確定する上で使用するためにメモリに記憶することによって、演算を実行するための時間も短縮する。特に、前述され、付録1に示されるように、サンプルのそれぞれが、三角関数によって係数のそれぞれと関係し、三角関数の値は係数、およびサンプルが複数のサンプルの中で受け取られた順序に基づいている。係数およびサンプルが受け取られる順序が事前に既知であるため、本発明の装置、方法およびコンピュータプログラム製品は、サンプルおよび係数ごとに三角関数のこの部分を事前計算する。そのこと自体、各サンプルが受け取られると、本発明の係数生成プログラムは、サンプルおよび係数に関連付けられた事前に計算された値でサンプルを乗算するだけでよい。
【0022】
特に、1つの実施形態では、本発明は、メモリ素子を含む係数生成プログラムを有する装置を含む。メモリ素子に記憶されるのは、各サンプルおよび係数に関連付けられる数学関数を表す事前に計算された値である。本発明のこの実施形態では、サンプルが受け取られると、係数生成プログラムがメモリ素子にアクセスし、サンプルを、サンプルと係数に関連付けられる数学関数を表す値で乗算し、それにより係数の項を定義する。係数生成プログラムは、さらに、項を係数の過去の値に加算することにより係数を更新する。
【0023】
追加の実施形態では、装置、方法およびコンピュータプログラム製品は、複数のセルを有するアレイを含むメモリ素子に、事前に計算された値のそれぞれを記憶してよく、アレイの各セルは、それぞれのサンプルおよび係数と関連付けられる数学関数を表す値を記憶する。さらに、この実施形態では、アレイの各セルが、それぞれの係数およびサンプルで指定される一意のアドレスを有する。そのこと自体、各サンプルおよび係数ごとに、本発明のこの実施形態の係数生成プログラムが、サンプルと係数に関連付けられたアドレスを使用してメモリ素子のセルにアクセスし、記憶された値でサンプルを乗算し、それにより係数の項を定義し、それ以降、項を係数の過去の値に加算することによって係数を更新する。
【0024】
1つの実施形態において、各サンプルおよび係数と関連付けられる関数を事前に計算することによって、必要とされる計算の数を削減することに加え、本発明の装置、方法およびコンピュータプログラム製品は、サンプルの規模(大きさ)のすべての考えられる値も、各係数とサンプルに関連付けられる三角関数とともに事前に計算する。そのこと自体、サンプルが受け取られると、係数生成プログラムはサンプルの値を評価し、サンプルの値に関連付けられた事前に計算された値、およびサンプルと係数の数学関数を、メモリ素子から検索し、事前に計算された値を使用して係数を更新する。
【0025】
例えば、1つの実施形態においては、本発明は、第1メモリ素子および第2メモリ素子を備える係数生成プログラムを有する装置を含む。第1メモリ素子は、セルのアレイを含み、各セルはそれぞれのサンプルと係数と関連付けられている。各セルは、サンプルの有限数の考えられる値の1つと、それぞれの係数とサンプルに関連付けられている数学関数の組み合わせに一致する事前に計算された値を含む。第2メモリ素子は、トークンを記憶するためのセルのアレイも有する。トークンのそれぞれが、それぞれの係数およびサンプルを表す。
【0026】
動作中、サンプルが受け取られると、係数生成プログラムは、第2メモリ素子にアクセスし、係数ごとに、係数とサンプルに関連付けられているトークンを検索し、トークンを第1メモリ素子に供給する。さらに、係数生成プログラムはサンプルの値を受け取り、第2メモリ素子からのトークンおよびサンプルの値に基づき、トークンとサンプルの値から構成されるアドレスを有する第1メモリ素子のセルの中に記憶される事前に計算された値を検索する。係数生成プログラムは、さらに、第1メモリ素子からあ事前に計算された値を係数の過去の値に加算することによって係数を更新する。
【0027】
別の実施形態では、係数生成プログラムは、第2記憶装置よりむしろ、掛け算器、加算器、割り算器、あるいはそれ以外のゲート制御された関数を含む。この実施形態では、トークンは、第1メモリ素子のセルをアドレス指定するためにゲートによって第1メモリ素子に提供される。依然として別の実施形態では、カウンタが、第2メモリ素子をアドレス指定するためのトークンに、ゲートを使用して、あるいはゲートを使用しないで復号され、それはメモリ素子よりむしろ掛け算器、加算器、割り算器、またはその他のゲート制御されている関数を送る値への変換であってよい。
【0028】
事前に計算された値を記憶することによって各サンプルに基づいて係数を計算するための時間を短縮することに加え、本発明は、メモリ素子に記憶されなければならない値の数、および第1メモリ素子をアドレス指定するために必要とされるトークンのサイズを最小限に抑える、装置、方法およびコンピュータプログラム製品も提供する。特に、いくつかの関数の三角性質のため、いくつかのサンプルの係数のいくつかは、ゼロという数学的な値を有するだろう。三角関数は係数およびサンプル数に依存するので、これらのインスタンスは所定できる。さらに、これらのインスタンスの値はゼロであるため、第1メモリ素子内にこれらの値の記憶を提供し、それによってメモリ素子のアレイのサイズおよび第1記憶装置をアドレス指定するために必要とされるトークンのサイズを縮小する必要性はない。
【0029】
特に、本発明のこの実施形態では、トークンは、それぞれのサンプルおよび係数と関連付けられる数学関数の値がゼロであるかどうかも示す。サンプルの三角関数および係数がゼロであるサンプルが受け取られると、サンプルと係数に関連付けられたトークンはそのように示すだろう。そのこと自体、係数生成プログラムがサンプルと係数に関連付けられるトークンにアクセスすると、係数生成プログラムはトークンを観察し、ゼロを係数の過去の値に加算することによって係数を更新する。
【0030】
いくつかの実施形態においては、係数生成プログラムは、さらに、プルダウン回路などのヌルデバイスを含む。この実施形態では、トークンが数学関数がゼロであると示すと、ヌルデバイスが第1メモリ素子の出力を、係数への加算のためにゼロ値で置換する。
【0031】
さらに、記憶域を最小限に抑えるために、1つの実施形態では、本発明は、数学関数の正負符号を考慮せずに、それぞれのサンプルとそれぞれの数学関数の規模の組み合わせに対応する事前に計算された値だけを記憶する装置、方法およびコンピュータプログラム製品を提供する。特に、いくつかの関数の周期的な性質のため、それぞれのサンプルと係数に関連付けられる数学関数のいくつかは同じ規模を有するが、異なる正負符号を有する。本発明のこの実施形態においては、各値の規模のみメモリ素子に記憶される。さらに値の正負符号はトークンに示される。そのこと自体、値には、さらに少ない記憶域が必要とされる。
【0032】
本発明の1つの実施形態においては、係数生成プログラムは、さらに、第1メモリ素子の出力と電気的に接続する加算器を含む。トークンが、数学関数が負であることを示すと、2補数を使用する加算器は、第1メモリ素子によって出力される数学関数の規模の負を取る。
【0033】
前記に詳説されたように、本発明は、受取り時に各サンプルを、サンプルと係数に関連付けられた数学関数と結合することによって信号を表す関数の係数を確定する。さらに、前記に詳説されたように、サンプルおよび係数のさまざまな組み合わせが事前に計算され、アドレス指定可能なメモリ素子に記憶される。典型的には、メモリ素子のセルをアドレス指定するトークンは、係数を示すビットおよびサンプルを示すビットを有する。通常の動作の間、トークンおよびメモリ素子は、信号を表す関数の係数を画定するために使用される。これらのトークンおよびメモリ素子は、信号の逆関数の係数を確定するためにも使用されてよい。特に、1つの実施形態においては、係数生成プログラムは、さらに、ゲート、カウンタ、第1メモリ素子をアドレス指定するためのトークンを生成するために使用される第2メモリ素子のどれかと電気的に接続するセレクタを含む。信号の逆関数の係数が所望される場合、セレクタは、トークンが信号の逆数学関数を表す事前に計算された値を含む第1メモリ素子のセルをアドレス指定するように、トークンによって示されるアドレスを改変する。
【0034】
前記に詳説されたように、本発明は、受取り時に各サンプルを、サンプルと係数に関連付けられる数学関数と結合することによって、信号を表す関数の係数を確定する。さらに、前記に詳説されたように、サンプルと係数のさまざまな組み合わせは、事前に計算され、アドレス指定可能なメモリ素子に記憶されてよいか、あるいはトークンと関連付けられている値に関してゲート制御された関数によって計算されてよい。典型的には、メモリ素子のセルをアドレス指定するトークンは、係数とサンプルを示すカウンタから得られる状態情報から引き出される。通常の動作中、トークンおよびメモリ素子は、信号を表す関数の係数を確定するために使用され、これらのトークンおよびメモリ素子は、適切な場所にあるカウンタにビットを追加することによって繰り返し使用され、非常に多数のチャネルにサービスを提供してもよい。この実施形態では、追加係数メモリセルは追加係数を維持し、チャネル番号はユーザに対する便宜として出力されてよい。順方向係数を確定するため、あるいは入力の逆関数を確定するために電気信号を利用することも可能である。
【0035】
さらに、通常の動作中、トークンおよびメモリ素子は、信号を表す関数の係数を確定するために使用され、これらのトークンおよびメモリ素子は、適切な場所にあるカウンタにビットを追加することによって繰り返し使用され、非常に多数のチャネルにサービスを提供してもよい。この実施形態では、追加係数メモリセルが追加係数を維持し、チャネル番号はユーザに対する便宜として出力されてよい。連続サンプルを異なるチャネルとして処理させることによって、このようにしてインタリーブされた変換を生じさせることが可能である。インタリーブされた変換は、第2の類似したプロセスに送られ、一例として、2次元変換を作成してよい。
【0036】
さらなる実施形態では、係数生成プログラムが、さまざまなチャネルで複数の異なる信号からサンプルを受け取る。この実施形態では、係数生成プログラムは、別の信号の逆関数の係数も提供しつつ、セレクタを介して、1つの信号を表す関数の係数を提供してよい。
【0037】
前記に詳説されたように、本発明の装置、方法およびコンピュータプログラム製品は、複数のサンプルを処理し、サンプルに基づいて関数の係数を生成する。本発明のいくつかの実施形態では、複数のサンプルが受け取られた後で、本発明の装置、方法およびコンピュータプログラム製品は、生成された係数を出力し、係数をリセットし、再び信号のサンプルを採取する。しかしながら、いくつかの実施形態では、それぞれの新しいサンプルが受け取られ、処理されるときに、係数の完全な集合を生成し、出力することが有利であってよい。これがすべりアパーチャフーリエ変換(SAFT)と呼ばれる。
【0038】
この実施形態では、本発明の装置、方法、およびコンピュータプログラム製品は、複数のサンプルの最後のサンプルが受け取られ、係数が出力された後に、係数のそれぞれをゼロにリセットしない。代わりに、本発明の装置、方法およびコンピュータプログラム製品は、過去の複数のサンプルの最初のサンプルを、次に受け取られたサンプルで置換する。この新しいサンプルを使用して、本発明の装置、方法およびコンピュータプログラム製品は、係数の次の集合を出力する。そのこと自体、サンプルの「バッチ」ごとに係数の集合を生成する代わりに、本発明の装置、方法およびコンピュータプログラム製品は、新しいサンプルが受け取られるたびに、係数の集合を生成し、それにより毎回新しいサンプルが受け取られるたびに係数の新しい集合を提供する。
【0039】
本発明は、新しいサンプルが受け取られるたびに、係数の集合を生成するための複数の装置、方法、およびコンピュータプログラム製品を提供する。これらの実施形態のそれぞれでは、本発明の装置、方法およびコンピュータプログラム製品が、過去の複数のサンプルの最初のサンプルを、受け取られた次のサンプルで置換してから、新しい係数を出力する。例えば、1つの実施形態では、本発明の装置、方法およびコンピュータプログラム製品は、最初に、サンプルのそれぞれを、それらが受け取られるときに記憶し、複数のサンプルの最後のサンプルが受け取られると、係数の第1集合を生成する。さらに、所定の複数のサンプルがすでに受け取られた後に、入力信号の新しいサンプルが受け取られると、本発明の装置、方法およびコンピュータプログラム製品が、係数に関連付けられた数学関数をサンプルに適用し、係数ごとに新しいサンプルに基づいた項を生成する。新しいサンプルを複数のサンプルの第1サンプルで置換するために、新しいサンプルの生成された項が、過去にメモリ素子に記憶されていた所定の複数のサンプルの第1サンプルに関連付けられた項から差し引かれる。この減算に続いて、係数は、新しいサンプルに基づいた項と所定の複数のサンプルの第1サンプルの間の差異によって更新される。
【0040】
本発明の別の実施形態では、新しいサンプルを複数のサンプルの第1サンプルで置換するために、本発明の装置、方法、およびコンピュータプログラム製品は、所定の複数のサンプルの第1サンプルに基づいた項を、係数のそれぞれから差し引き、新しいサンプルに基づいた項を係数のそれぞれに加算する。
【0041】
また、受け取られた新しいサンプルごとに係数を出力することに加えて、本発明の装置、方法、およびコンピュータプログラムは、係数の部分集合の個々を、経時的に観察、追跡調査できるようにする。特に、前述されたように、1つの実施形態の係数生成プログラムは、新しいサンプルごとに係数を出力する。これは、ユーザに、遵守(observance)のために、リアルタイムまたはほぼリアルタイムで係数の新しい集合を与える。
【0042】
さらに、説明されたように、本発明の装置、方法、およびコンピュータプログラム製品は、各サンプルが受け取られると、関数の係数のそれぞれを更新する。係数は個別に更新されるので、それらは、遵守(observance)のために、さらに容易に個別に使用できる。さらに、各係数は個別に更新されるため、それぞれの個別の係数に加えられる更新数は変化してよい。そのこと自体、1つの実施形態では、本発明の装置、方法、およびコンピュータプログラム製品は、係数の1つまたは部分集合のどちらかが、他の係数を基準にしてそれらが更新されるサンプル数を変えることによって確定される分解能を変えることができる。
【0043】
さらに、本発明は、ある関数の考えられる数学項を表すために記憶されなければならない値の数を削減するための方法およびコンピュータプログラム製品も提供する。特に、前記に示されたように、演算を実行するための時間は、システムに関連付けられた値の一部またはすべての値を事前に計算し、記憶することによって節約することができる。しかしながら、多くの場合、記憶域を必要とする量値を最小に削減し、その結果標準メモリ素子が使用できることが望ましい。
【0044】
1つの実施形態では、本発明は、初期に、関数のすべての考えられる数学項の第1リストを作成する方法およびコンピュータプログラム製品を提供する。数学項ごとに、方法およびコンピュータプログラム製品は、組織的に、リスト中の各数学項を、リスト中の他のすべての数学項に比較し、数学項のどれが冗長であるのかを判断する。さらに、関数の一意の数学項が、関数の一意の数学項のすべての第2リストに記憶され、その結果、第2リスト中には関数の冗長な数学項はない。
【0045】
本発明の1つの実施形態では、関数は、関数の数学項のいくつかが同じ規模および異なる正負符号を有するように少なくとも周期的であるか、逆になる。この実施形態では、本発明の方法およびコンピュータプログラム製品は、リスト中の各数学項の規模を、リスト中のそれ以外の数学項のそれぞれの規模に比較し、数学項の内のどれが同じ規模を有するのかを決定する。さらに、一意の規模を有する数学項は、第2リスト中に記憶される。本発明の方法およびコンピュータプログラム製品は、さらに、各数学項に関連付けられたトークンを作成することを含み、トークンは数学項に関連付けられた第2リストに記憶されている規模、および数学項に関連付けられる正負符号を示す。
【0046】
本発明の別の実施形態では、数学項の少なくとも1つがゼロという規模を有する。この実施形態では、方法およびコンピュータプログラム製品は、数学項が第2リストに記憶されないように、数学項がゼロであることを示す数学項に関連付けられたトークンを作成する。
【0047】
別の実施形態では、関数は信号を表し、信号のサンプルによって定義され、信号のサンプルは有限数の考えられる値の内の1つである。この実施形態では、方法およびコンピュータプログラム製品は、サンプルの考えられる値と関数の数学項のすべての考えられる組み合わせの第1リストを作成する。さらに、リスト中の各組み合わせは、規則正しくリスト中の他のすべての組み合わせに比較され、組み合わせの内のどれが冗長なのかを判断する。この比較に基づき、一意の組み合わせのすべては第2リストに記憶され、その結果、第2リスト中には冗長な組み合わせはない。
【0048】
(発明の詳細な説明)
ここで、本発明は、本発明の好ましい実施形態が添付図面に関して、以下により完全に示される。類似する番号は、全体を通じて類似する要素を示している。
【0049】
前述されたように、データ処理システムは、信号を表す関数の係数を確定するために開発された。しかしながら、これらのシステムの多くは複雑であり、信号のすべてのサンプルが受け取られるまで係数を計算しないため、これらのシステムは信号の即時の分析を提供しない。さらに、これらの従来のシステムは複雑であるため、個々の係数は、、遵守(observance)および追跡調査のために容易にアクセスできない。さらに、これらのシステムは、個々の係数または係数の選択された部分集合の分解能の変動を許さない。
【0050】
本発明は、他方、信号を表す関数の係数が確定される待ち時間を短縮できる装置、方法およびコンピュータプログラム製品を提供する。特に、サンプルの独立性を利用する本発明の装置、方法およびコンピュータプログラム製品は、最後のサンプルの受取り前に係数の少なくとも1つを更新し、その結果、係数を確定する上での待ち時間が短縮される。
【0051】
さらに、別の実施形態では、本発明の装置、方法およびコンピュータプログラム製品は、各サンプルが受け取られると、関数の係数のそれぞれを更新する。そのこと自体、最後のサンプルが受け取られると、本発明の装置、方法およびコンピュータプログラム製品は、係数を出力する前に、最後のサンプルの寄与で各係数を更新さえすればよい。そのこと自体、最後のサンプルが受け取られるとき係数の可用性からの待ち時間は短縮される。
【0052】
さらに、待ち時間を短縮するために、1つの実施形態では、本発明の装置、方法、およびコンピュータプログラム製品は、各係数に対するサンプルの寄与の考えられる値のすべてまたは部分のどちらかを事前に記憶する。そのこと自体、サンプル、特に最後のサンプルが受け取られると、本発明の装置、方法およびコンピュータプログラム製品は、サンプルの値を評価し、係数、サンプルおよびサンプルの値に一致する事前に記憶された値から適切な値を検索し、それにより係数を確定するために必要とされる時間を短縮する。依然としてさらに、別の実施形態では、本発明の装置、方法およびコンピュータプログラム製品が、係数のそれぞれを同時に更新する。そのこと自体、最後のサンプルが受け取られると、係数は、最後のサンプルの寄与と同時に更新され、係数のすべてが出力される。
【0053】
また、本発明の装置、方法およびコンピュータプログラム製品は、個々の係数または係数の部分集合を観察できるようにし、個々の係数または係数の部分集合を変化する分解能で確定できるようにする。特に、述べられたように、本発明の装置、方法およびコンピュータプログラム製品は、各サンプルが受け取られると、係数のそれぞれを更新する。そのこと自体、各サンプルは、所望されるときに出力のために使用できる。さらに、本発明の装置、方法、およびコンピュータプログラム製品は他の係数と無関係に各係数を更新するため、各係数は異なる分解能まで更新できる。例えば、重要な1つの係数は、あらゆるサンプルで更新されてよいが、別の係数はあらゆる第3サンプルだけと更新される。
【0054】
本発明の装置、方法およびコンピュータプログラム製品は、処理システムを実現するために必要とされるハードウェアの量およびサイズも削減してよい。特に、述べられたように、信号のサンプルが受け取られると、本発明の装置、方法およびコンピュータプログラム製品は、サンプルの寄与で即座に係数のそれぞれを更新する。サンプルは互いに無関係であるので、係数がその寄与で更新された後にはサンプルはもはや必要とされず、そのこと自体、サンプルは破棄されてよい。使用後にサンプルを破棄することにより、処理システムは、サンプルを処理するための追加メモリ記憶域またはデータを検索するための追加処理を必要としない。
【0055】
本発明は、関数の考えられる数学項を表すために記憶されなければならない値の数を削減するための方法およびコンピュータプログラム製品も提供する。特に、本発明のこの実施形態の方法およびコンピュータプログラム製品は、関数の考えられる数学項のそれぞれを他の数学項に比較する。この比較から、方法およびコンピュータプログラム製品は、記憶されなければならない値の数を削減する。例えば、1つの実施形態では、数学関数は周期的でよく、その結果、関数のさまざまな値が同じ規模であるが異なる正負符号を有する。この例では、本発明の方法およびコンピュータプログラム製品は、項の規模だけを記憶し、正負符号を表すためにはトークンを使用するだろう。別の実施形態では、ゼロ(例えば、cos(π/2)およびsinπ=0)である関数の値がある可能性がある。この実施形態では、方法およびコンピュータプログラム製品は、値ゼロを記憶しないが、代わりに値がゼロであることを表すトークンを使用する。
【0056】
例示的な目的のため、本発明の多様な装置、方法およびコンピュータプログラム製品は、フーリエ級数の特徴とともに示され、記述される。しかしながら、本発明の装置、方法およびコンピュータプログラム製品が、多くの異なる種類の関数とともに使用できることが明らかでなければならない。例えば、装置、方法およびコンピュータプログラム製品は、ベッセル関数、ルジャンドルの多項式、第1種および第2種のチェバイシェフ(Tschebysheff)の多項式、ヤコビ(Jacoby)の多項式、一般化されたラゲールの多項式、エルミートの多項式、ベルヌーイの多項式、オイラーの多項式、および量子力学で使用される種々の行列、一次分析関数、ウェーブレットおよびフラクタルなどの関数と使用されてよい。このリストは、決して網羅的ではなく、単なる例として提供されている。アプローチは、値のシーケンスとして表すことができる任意の関数に適用されてよい。これらの関数および前記に一覧表示されていないそれ以外の関数の適用の実用性は、きわめて一般的である。この方法は、並列計算のための装置および方法を開発し、機械の実行と互換性のある機械的な方法で冗長性を削除する。本発明の1つの実現は、問題の各クラスを調べ、最小の実行プログラムを作成するか、あるいは同じ関数用の装置を設計するための汎用コンピュータプログラムにあるだろう。この用途では、それはプログラミングの補助器具だろう。
【0057】
付録1に関して前述されたように、本発明の重要な概念は、関数の係数を確定するために使用されるサンプルの独立性である。サンプルの独立性は、フーリエ変換という文脈で説明することができる。フーリエ変換は、直交性の原則に基づく。フーリエ変換がDFTで適用されるので、それは信号の各周波数の成分の振幅を完全に独立して計算する手段を提供する。演算で使用される周波数はベース周波数の連続整数倍数である。ベース周波数は、サンプルの1つの集合を採取するために必要とされる時間期間である。信号のサンプルは直交関数の集合のそれぞれの構成要素によって乗算され、ベース周波数の1つのまたは複数のサイクルの間総計される。それぞれの結果として生じる係数は、1つの試験周波数の実数部または虚数部の振幅である。重要なことに、係数の演算は、他の係数の演算とは無関係である。DFTによって変換されるサンプルの集合Nでは、各サンプルが適用可能な角度および正規化定数の正弦または余弦のどちらかに基づいて、関数の各係数に寄与する。離散フーリエ変換の一般的な等式が以下に示される。
【数1】
Figure 0004083387
【0058】
付録1に関して、従来のDFTを使用した関数の係数の確定が図解される。最初に、DFTは信号の事前に選択された集合(この例ではN=8)を受け取る。次に、DFTは係数のすべて(A0、A1、A2、A3、A4、B1、B2、B3およびB4)を一度に1つずつ計算する。各サンプルの値は、係数の演算の中で一度使用される。各サンプルは、各係数かける正規化速度に関連付けられる独立した変数の正弦と余弦の両方で乗算される。例えば、係数A1は、A1係数に関連付けられる余弦関数に対する各サンプルの適用であるA11+A12...A18の総和である。サンプルのそれぞれが加算によって各係数に関係するので、各サンプルは他のサンプルとは無関係であり、他のサンプルの受取りの前に係数を更新するために使用できる。
【0059】
サンプルのこの独立性を考慮に入れて、本発明の装置、方法およびコンピュータプログラム製品は、付録2に示されるように項を並べ直し、その結果、係数のそれぞれが、信号のサンプルのそれぞれが受け取られると更新される。これは、係数を計算する前に、すべてのサンプルが受信されるまで待機するバッチ方法である付録1の従来の方法とは異なる。前述され、以下に詳説されるように、各サンプルが受け取られると、係数のそれぞれを更新することによって、本発明の装置、方法およびコンピュータプログラム製品は、係数の生成での待ち時間を短縮し、個々の係数の追跡調査または観察を可能にし、異なる分解能で係数を確定できる。
【0060】
ここで図1を参照すると、付録2に示される方法に従って、入力信号のサンプルに基づく入力信号を表す関数の係数を確定するための1つの実施形態が図示されている。本発明のこの実施形態の装置は、係数生成プログラム10を含む。該係数生成プログラムは、入信信号のサンプルを受信するために受信機12を含む。係数生成プログラムは、受信機と電気的に通信している第1ゲート14および第1ゲートと電気的に通信している第2ゲート16も含む。
【0061】
図2および付録2に関して、係数生成プログラムの動作が示される。この図では、係数生成プログラムは、信号のN=8サンプルに基づいて係数を生成する。サンプルごとに、受信機は、信号のサンプルを受け取り、該サンプルを第1ゲート12に入力する(ステップ100を参照すること)。係数ごとに、第2ゲートは2つの値、つまり係数の数を表す一方18とサンプル番号を表す他方20を受け取る。係数の数およびサンプル番号に基づき、第2ゲートは、信号の直交関数部分を生成する(ステップ110を参照すること)。
【0062】
例えば、付録2に示されているように、ゼロ番目の係数A0の場合、サンプル値は係数に加算される(つまり、A0+A01)。第1サンプルおよび係数A11の場合、直交関数は、以下の通りであり、
【数2】
Figure 0004083387
ここでは、
n=係数の数、
n=サンプル番号、
N=サンプルの数
第1係数および第1サンプルの項を計算するため、第2ゲートは、係数の数18およびサンプル番号20を受け取る。これに基づき、第1サンプルSnおよび第1係数Cnに関して、第2ゲートがcos(2π・1・1/8)またはcos(2π/8)を生成し、この値を第1ゲートに出力する(ステップ110を参照すること)。
【0063】
その結果、第1ゲートは第2ゲートからの値および受信機からのサンプルの値を受け取る。これらの値に基づき、第1ゲートは、係数のサンプルの寄与を表す項を生成する(つまり、S1cos(2π/8))(ステップ120を参照すること)。それから、項は係数A1に加算される(つまり、A1+A11)(ステップ130を参照すること)。これがそれぞれの係数に繰り返される(ステップ140と150を参照すること)。
【0064】
前記説明は、各サンプルを用いた一度に1つずつの各係数の更新を図解する。しかしながら、係数生成プログラムが、最後の係数の受取りの前に、係数の1つだけを更新し、それによって係数を確定する上での待ち時間を減少するだろうことが理解されなければならない。さらに、係数生成プログラムが、各サンプルで同時に係数のすべてを更新できるだろうことが理解されなければならない。例えば、係数生成プログラムは、すべて受信機に接続されている複数の第1ゲートと第2ゲートを含むだろう。この実施形態では、サンプルは、同時にゲートの各集合に供給され、ゲートの各集合が、その結果、各係数へのサンプルの寄与を表す各係数の項を同時に生成し、各係数は同時に更新される。これが並行と呼ばれ、それはすべての係数を同時に更新できるようにするために有利である。並行は係数生成プログラムの典型的な適用である。特に、係数生成プログラムは、典型的には、すべての係数を同時に更新するために実現される。さらに、なんらかの例では、係数生成プログラムは、係数生成プログラムがチャネルごとに係数の集合を生成する複数のチャネルから入力を受け取るように構成される。しかしながら、以下の実施形態の多くでは、係数生成プログラムは、各係数を連続して更新し、明快さのために、ただ1つのチャネルを用いるとして示されている。
【0065】
図1は、掛け算器、加算器、割り算器、またはその他のゲート制御される関数などのゲートの使用に基づいた係数の確定を図解する。図3は、少なくとも1つのメモリ素子を使用する係数の確定を図解する。ゲートと対照的に、メモリ素子の使用は、係数を確定するために計算されなければならない値の多くがメモリ素子に事前に記憶されてよいので、有利である可能性がある。これは、その結果、係数を確定する上で時間を節約できる。
【0066】
図3に関して、この実施形態の係数生成プログラムは、信号のサンプルを受け取るための受信機12を含む。係数生成プログラムは、受信機と電気的に通信する第1メモリ素子22、および第1メモリ素子と電気的に通信する第2メモリ素子24も含む。本発明の1つの実施形態では、第2メモリ素子はセルのアレイを含み、各セルは、サンプルと係数ごとの信号の直交関数部分を表す事前に計算された値を含む。例えば、第2メモリ素子は、cos(2πCnn/N)またはcos(2π/8)に等しい第1サンプルと係数の直交関数部分用のセルを含む。本実施形態では、第1メモリ素子は、掛け算器であってよい。
【0067】
図2および付録2に関して、本実施形態の動作では、サンプルごとに、受信機が信号のサンプルを受け取り、該サンプルを第1メモリ素子22に入力する(ステップ100を参照すること)。係数ごとに、第2メモリ素子は、サンプルと係数の信号の直行関数部分を含むセルのアドレスを表すトークンを受け取る。このトークンは、入力18と20によって提供され、トークンの一部は係数の数Cnであり、他の部分はサンプル番号Snである。トークンに基づき、第2メモリ素子は、係数とサンプルに関連付けられる値を検索し、値を第1メモリ素子に出力する(ステップ110を参照すること)。第1メモリ素子は、その結果、第2メモリ素子から値を、受信機からサンプルの値を検索する。これらの値に基づき、第1メモリ素子は、係数に対するサンプルの寄与を表す項を生成する(つまり、第1サンプルと係数の場合、S1cos(2π/8))(ステップ120を参照すること)。それから、項は係数に加算される(つまり、A1+A11)(ステップ130を参照すること)。これが、係数ごとに繰り返される(ステップ140と150を参照すること)。
【0068】
本発明のいくつかの実施形態では、受信機から受け取られるサンプルは、多くの有限値の内の1つである。サンプルと係数の直交関数部分は過去に知られており(つまり、2πCnn/N)、サンプルは有限数の値の1つにすぎないため、各サンプル値、サンプル番号、および係数の数を表す値は、事前に計算し、事前に記憶することができる。そのこと自体、サンプルが受け取られると、サンプルの各係数に対する寄与を表す項は、サンプルの値、サンプル番号、および係数の数に基づいたメモリ素子内の値を調べることによって確定できる。
【0069】
これを考慮に入れて、1つのさらなる実施形態では、第1メモリ素子は、セルのアレイを含むメモリ素子である。第1メモリ素子の各セルは、各サンプル値、サンプル番号、および係数の数を表す事前に計算された値を含む。係数とサンプルごとに、メモリ素子は、セルのグループを含み、それぞれがサンプルに考えられる値で乗算された係数とサンプルに関連付けられた直交関数を有する。例えば、第1サンプルと係数の場合、S1cos(2π/8)という値を有するセルのグループがあり、各セルはS1の別の考えられる値の値を表す。さらに、第2メモリ素子は、それぞれが各サンプルと係数の直交関数部分を表すトークンを有するセルのアレイを有する。
【0070】
動作中、図2に関して、サンプルごとに、受信機は信号のサンプルを受信し、該サンプルを第1メモリ素子22に入力する(ステップ100を参照すること)。係数ごとに、第2メモリ素子が、入力18と20から、サンプルと係数の信号の直交関数部分を表すトークンを含むセルのアドレスを表す値を受け取る。第2メモリ素子は、係数とサンプルに関連付けられたトークンを検索し、第1メモリ素子にトークンを出力する(ステップ110を参照すること)。第1メモリ素子は、その結果、第2メモリ素子からトークンを、受信機からサンプルの値を受け取る。トークンおよびサンプルの値に基づき、第1メモリ素子は、これらの値に対応するアレイ内のセルを調べ、係数に対するサンプルの寄与を表す項を出力する(つまり、第1サンプルと係数の場合、S1cos(2π/8))(ステップ120を参照すること)。それから、この項は、係数に加算される(つまり、A1+A11)(ステップ130を参照すること)。これが、各係数に繰り返される(ステップ140と150を参照すること)。
【0071】
再び、本実施形態の装置が、すべて受信機に接続される各係数のための複数の第1メモリ素子と第2メモリ素子を提供することによって、各係数を同時に更新するために並列構成で動作してよいことが理解されなければならない。この実施形態では、各第1メモリ素子と第2メモリ素子は、同時にサンプルを受け取り、第1メモリ素子と第2メモリ素子のそれぞれの集合が異なる係数の値をアドレス指定するように適切にアドレス指定される。このようにして、各係数に対するサンプルの寄与は、並列で同時に確定される。
【0072】
図3を参照すると、1つの追加の実施形態では、係数生成プログラムは、第2メモリ素子24と電気的に通信するカウンタ26を含んでよい。該カウンタは、計算を行うことができるように時間を計られる図示されていないクロックによって増分されてよい。カウンタは、第2メモリ素子をアドレス指定するために係数の数およびサンプル番号を表す2つの出力18と20を含んでよい。動作中、サンプルごとに、サンプル番号は一定に保持されるが、クロックの各サイクルまたは複数のサイクルの間、カウンタは係数の数を増分する。これが、その結果、各係数に対するサンプルの寄与を決定するために、第2メモリ素子をアドレス指定する。係数のすべてがそのサンプルに関して計算された後、カウンタのサンプル番号は増分され、係数の数はリセットされ、その結果、次のサンプルがいま各係数のために評価される。
【0073】
前述されたように、計算の時間を短縮するために、本発明の1つの実施形態は、事前に計算された値とトークンを記憶し、メモリ素子をアドレス指定するためにメモリ素子を使用する。多くの電子部品設計での重要な関心は、回路を操作するために必要とされる構成部品の数を最小限に抑えたいという希望と、可能な箇所では既製の構成部品を使用する必要性である。これを考慮に入れて、設計の必要性の態様を評価し、構成部品数を最小限に抑え、標準構成部品の使用に対処する設計解決策を決定する方法が必要とされている。
【0074】
そのこと自体、本発明は、関数の考えられる数学項を表すために記憶されなければならない値の数を削減するための方法およびコンピュータプログラム製品を提供する。この方法は、図4に関して図解され、係数生成プログラムのメモリ素子に記憶されなければならない値の数を削減する方法は、図3に示されている。
【0075】
図4に関して、最初に、空のリストが作成され(ステップ200を参照すること)、関数のすべての考えられる数学項が行列に記憶される(ステップ210を参照すること)。例えば、フーリエ級数などの多くの数学関数では、値の特定のアレイが、データの集合によって乗算されなければならない。データがNビット2進数であり、アレイ内にM個の数がある場合、形成される可能性がある考えられる製品の数は、2のN乗かけるM(2NxM)である。例えば、フーリエ級数が64個の係数を生成するために64個のサンプルに基づいている場合、評価され、サンプルで乗算される4096個の三角関数がある。サンプルの長さがそれぞれ12ビットである場合、4906個の考えられるサンプル値がる。すべての4096個の考えられるサンプル値に関して、考えられるサンプル値のそれぞれかける三角関数の積を事前に計算し、記憶するためには、かなり大きなメモリ素子を必要とするだろう16,777,216個の記憶された積が必要となるだろう。
【0076】
図4に関して、記憶された値の数を削減するために、本発明の方法およびコンピュータプログラム製品は、すべての考えられる値を行列に格納し(ステップ210を参照すること)、リスト中の各数学項を、リスト中のそれ以外のすべての数学項と規則正しく比較し、数学項のどれが冗長であるのかを判断する(ステップ220と240を参照すること)。値が一意である場合、それは作成されたリストの中に記憶される(ステップ250を参照すること)。これは、すべての値に繰り返され(ステップ260を参照すること)、値の総数が出力される(ステップ270を参照すること)。
【0077】
例えば、フーリエ級数の場合、正弦と余弦の特性のため、記憶される必要のあるのは32の異なる実際の値だけである。この分析は、典型的にはフーリエ変換に使用される制限関数と余弦関数の計算に基づいている。特に、図5は、64個のサンプルおよび64個の係数を使用するフーリエ変換の係数の正弦と余弦の4096の計算結果をプロットする2つのグラフを示す。これらのグラフは、値の有限の集合だけがあることを示す。この分析は、各値が、極性、つまりプラスまたはマイナスに関係するという事実に基づいている。値のプラスまたはマイナスがトークンで表わされる場合、関数の絶対値は記憶される必要のあるすべてである。これを行う際、メモリの要件は256Kから128Kに削減できる。
【0078】
1つの正負符号ビットがあり、残りの11のビットが12ビット入力の絶対値となるように、記憶される値の数は、サンプルの値を表す入信サンプル値コードが正負符号付きの形式(つまり、正または負)、ほぼゼロである場合にも削減することができる。11ビット数は12個のビットと同じ数のメモリロケーションの半分だけを必要とする。そのこと自体、メモリのサイズは、12ビット値を11ビット値と1ビット正負符号に変換し、正負符号ビットを、同様にトークンをサポートできるなんらかの論理で処理することによって64Kに削減できる。
【0079】
説明されるように、記憶されなければならない32の異なるトークンを必要とする32の異なる値がある。トークンの数が16に削減できる場合には、32Kである16個の値かける2046の考えられるサンプル値があるだろう。これは、値の1つがゼロであり、それに関連付けられるすべての4096個の値がゼロになることを観察することによって達成できる。トークンにゼロ値を与える代わりに、トークン自体がゼロ専用のビットを含むことがある。そのこと自体、16個のトークンの集合が使用でき、4ビットがアドレス、値の正負符号を表すための正負符号ビット、および値がゼロであるのかを表すゼロビットである。
【0080】
示されているように、本発明の方法およびコンピュータプログラム製品は、記憶されなければならない値の数を削減するために使用できる。これが、その結果、最小且つ標準のハードウェアの使用に対処する。例えば、信号の64のサンプルが、12ビットサンプルコードを使用して採取される前記例では、事前に計算された値のすべてを記憶するためノ第1メモリ素子は、128Kメモリに削減でき、トークンを記憶するための第2メモリは8Kメモリに削減することができる。
【0081】
記憶される値の数を削減するための本発明の方法およびコンピュータプログラム製品は、所定のサンプルの数およびサンプルビットサイズと、フーリエ級数の文脈で示されるが、記憶されなければならない必要とされる値の数を削減するための方法およびコンピュータプログラム製品が任意の関数、所定サンプルの数、および/またはサンプルビットサイズとともに使用できることが理解されなければならない。
【0082】
記憶される値の数が確定された後に、値は、第2メモリ素子に記憶さえるトークンでアドレス指定される必要がある。図6に関して、記憶のためにアドレス/トークンを作成するために、方法は、当初、アドレスを値に適用する(ステップ300と310を参照すること)。それから、アドレスに関係するトークンが選択される(ステップ320を参照すること)。次に、方法は、すべての値がアドレス指定されているかどうかを確かめるためにチェックする(ステップ330を参照すること)。されていない場合、方法は任意の順序でアドレスを増分する(ステップ340を参照すること)。いったんすべての値がアドレス指定されると、それらはメモリの中にロードされる(ステップ350を参照すること)。同様に、いったん値の集合がトークンにとって既知であると、加算器またはテーブルを各アドレスに対する同じ応答で置換するその他のゲート制御の機構、およびトランジスタ数の節約、あるいは実現されている技術でどのような最も有意義な基準も見つけることが一般的である。これは、テーブルよりむしろゲート制御関数と呼ばれる。
【0083】
図7に関して、トークンを作成し、記憶することに加え、事前に計算された値も第1メモリ素子にロードされなければならない。特に、考えられるサンプル値ごとに、本発明の方法およびコンピュータプログラム製品は、第1トークンを取り、トークンの値およびサンプルの考えられる値を関数に適用し、サンプル値の関数の事前に計算された値を作成する(ステップ400と410を参照すること)。それから、事前に計算された値は、メモリに記憶される(ステップ420を参照すること)。次に、方法は、すべての値がアドレス指定されているかどうかを確かめるためにチェックする(ステップ430を参照すること)。されていない場合、方法は任意の順序でアドレスを増分する(ステップ440を参照すること)。いったんすべての値がアドレス指定されると、それらはメモリにロードされる(ステップ450を参照すること)。同様に、いったん値の集合がトークンに関して既知であると、掛け算器または各アドレスに対する同じ応答でテーブルを置換するその他のゲート制御の機構、およびトランジスタ数の節約、あるいは実現されている技術でどのような最も有意義な基準も見つけることが一般的である。これは、テーブルよりむしろゲート制御関数と呼ばれる。
【0084】
前述された図3は、関数の係数を確定するためのメモリ素子およびトークンの使用を示す。しかしながら、図8は、図4、および図6から図7で前記に開発されたメモリ素子およびトークンのより一般的な使用を示す。特に、値を特定するためにメモリ素子およびトークンを使用するには、所望のトークンを表すアドレスが第2メモリ素子に適用され(ステップ500を参照すること)、トークンが検索される(ステップ510を参照すること)。それから、トークンは第1メモリ素子にアクセスするためのアドレスを作成するためのサンプルの値とともに第1メモリ素子に適用される(ステップ520と530を参照すること)。トークンが、設定される正負符号ビットまたはゼロビットを含む場合、第1メモリ素子内のトークンと関連付けられた値が適切に改変される(ステップ540を参照すること)。最後に、値が出力される(ステップ550を参照すること)。
【0085】
前述されたように、関数の係数を計算するために記憶されなければならない値の数は、冗長な値を削除し、値の規模だけを記憶し、値がゼロであるとき、または値の正負符号を表すトークンビットを使用することによって削減することができる。図9は、記憶される値の最小数を有する第1メモリ素子、正負符号およびゼロを示すためのビットを含むトークンを備える第2メモリ素子、および正負符号付きの入力値を使用して関数の係数を確定するための例示的な実施形態を提供する。前記実施形態と同様に、本実施形態の係数生成プログラム10は、第1メモリ素子と第2メモリ素子22と24を含む。メモリ素子の両方とも、値を記憶するためのセルのアレイを含む。第2メモリ素子は係数とサンプル番号を表すトークンを含み、第1メモリ素子は各サンプルと係数の直交関数部分と結合されるサンプルの考えられる一意の値のすべてを含む。例えば、第1サンプルS1および第2係数C1の場合、第2メモリ素子に記憶されるトークンはサンプル番号および係数の数、S1とC1を指定する。第1メモリ素子に記憶されるのは、それぞれが等式(S1cos(2πCnn/N))または(S1cos(2π/N))によって定義される値を有する数多くのセルであり、それぞれのセルが等式へのサンプルS1の考えられる値の適用を記憶する。
【0086】
さらに、本実施形態の係数生成プログラムは、受信機12と電気的に通信する第1論理積ゲート28、第2メモリ素子の出力、および第1メモリ素子の入力も含む。係数生成プログラムは、第1論理積ゲート28の出力に接続される第2論理積ゲート30、およびXORゲート32も含む。第2論理積ゲート30の出力に接続されているのは、典型的には信号の2の補数を取るために実現される加算器36である。XORゲート32は、第2メモリ素子の出力、および後述されるゲート組み合わせ40と電気的に通信する。本実施形態の係数生成プログラムは、第1メモリ素子の出力と電気的に通信するヌルデバイスまたはプルダウン34も含む。
【0087】
重要なことに、記憶されなければならない値の数を削減するために、受信機によって受け取られるサンプルは12ビットコードとなり、ビットの1つは正負符号ビットである。説明されるように、サンプルのビット表記を11ビットに縮小し、正負符号に1ビットを使用することによって、記憶空間は削減される。この目的のため、いくつかの実施形態では、係数生成プログラムは、受信機12と電気的に通信するコード変換器38も含む。受信機によって出力されるサンプルが適切な12ビットフォーマットではない場合、コード変換器はサンプルを、値を表す11ビットおよび正負符号の1ビットを含む12ビットに変換するだろう。
【0088】
本実施形態の係数生成プログラムは、第1メモリ素子に記憶される値をアドレス指定するために、第2メモリ素子に記憶される6ビットトークンも使用する。重要なことに、記憶されなければならない値の数を削減するために、ビットの内の1つは数の正負符号を表し、ビットの内の1つは値がゼロであるかどうかを表す。トークンは第2論理積ゲート30および加算器36とともに動作し、トークンの正負符号ビットが値の負を示す場合には、第1メモリ素子の出力の負を取る。さらに、ヌルデバイスまたはプルダウンデバイス34、トークンのゼロビット、および論理積ゲート28は、トークンが、値がゼロでなければならないことを示す場合に第1メモリ素子の出力を負にする、あるいはゼロにするために動作する。
【0089】
図10に関して、本実施形態の動作中、サンプルごとに、受信機は信号のサンプルを受け取り、該サンプルを第1メモリ素子22に入力する(ステップ600を参照すること)。係数ごとに、入力18と20が、サンプル番号および係数の数を表す第2メモリ素子に与えられる(ステップ610を参照すること)。入力に基づき、第2メモリ素子は、サンプルおよび係数の数を表す4ビット、値が負であるかどうかを示す1ビット、および値がゼロであるかどうかを表す1ビットを出力する(ステップ620を参照すること)。第1メモリ素子は、その結果、第2メモリ素子からトークンを、受信機からサンプルの値を受け取る。それらの値に基づき、第1メモリ素子は、係数にアイするサンプルの寄与を表す項を生成する(つまり、第1サンプルと係数の場合、S1cos(2π/8))(ステップ630を参照すること)。
【0090】
さらに、サンプルの正負符号ビットおよびトークンの正負符号ビットの出力が、第2論理積ゲート30に供給される。信号の正負符号が負であるか、あるいはトークンの正負符号ビットが設定されているかのどちらかの場合、第2論理積ゲートは加算器36に桁上げビットを出力する。加算器は、第1メモリ素子の出力を負にする(ステップ640と650を参照すること)。
【0091】
同様に、トークンおよび信号はともに第1論理積ゲート28に提供される。信号またはトークンのどちらかがゼロ値を示す場合、ゼロ値は、第1論理積ゲート28によって出力される。ゼロ値が第2論理積ゲート30に送信され、それが第2論理積ゲート30が信号を負にするのを禁止する。さらに、ゼロ値は第1メモリ素子に出力され、それが第1メモリ素子をディスエーブルする。第1メモリ素子がディスエーブルされるため、ヌルデバイスまたはプルダウンデバイス34が、係数の値を表すゼロ値を出力する(ステップ660と670を参照すること)。それから、係数の項が出力される(ステップ680を参照すること)。
【0092】
図9に示されるように、1つの実施形態では、係数生成プログアムは、さらに、第2メモリ素子と電気的に通信するカウンタ26を含む。該カウンタは、計算を行うことができるように時間が計られる、図示されていないクロックによって増分されてよい。カウンタは、第2メモリ素子をアドレス指定するための係数の数およびサンプル番号を表す2つの出力18と20を含んでよい。動作中、サンプルごとに、サンプル番号は一定に保たれるが、クロックの各サイクルまたは複数のサイクルの間、カウンタは係数の数を増分する。これが、その結果、各係数に対するサンプルの寄与を確定するための第2メモリ素子をアドレス指定する。係数のすべてがそのサンプルに関して計算された後、カウンタのサンプル番号は増分され、係数の数はリセットされ、その結果、いま係数ごとに次のサンプルが評価される。
【0093】
さらに、および重要なことに、図9は、本発明の別の態様も示す。前述されたように、本発明の装置、方法およびコンピュータプログラム製品は、入力信号の所定の複数のサンプルに基づく入力信号を表す関数の係数を特定する。しかしながら、装置、方法およびコンピュータプログラム製品は、信号の逆関数を表す係数も特定してよい。例えば、多くのデータ処理システムが、信号のDFTと逆DFTの両方を実行するために具備される。
【0094】
逆DFTは、本来、逆の意味でDFTを実行している。第1メモリ素子はDFTの考えられる値のすべてを含むので、逆DFTは、逆DFTの値に一致する第1メモリ素子内の値を単にアドレス指定するだけで特定することができる。図9に関して、逆DFTを実現するために、係数生成プログラムは、さらにXORおよびNOTゲートを有する第3ゲート40を含む。第3ゲートは、12ビット信号の正負符号ビットに結合される入力、および逆関数44をいつ実行すべきかを示すための入力を有する。第3ゲートの出力は、第2メモリ素子の出力とともに、XORゲート32に接続される。さらに、係数生成プログラムは、第2メモリ素子への入力18と20と電気的に通信するセレクタまたはクロスバー42も含む。該クロスバーも、逆関数を実行するかどうかを示す入力44に接続される。
【0095】
動作中、逆関数(例えば、逆DFT)は、図10に説明されるように、関数(例えば、DFT)を特定するための動作と同様に動作する。セレクタまたはクロスバーが、アドレス入力行を第1メモリ素子に切り替える以外。特に、信号の逆関数の係数が所望される場合、セレクタは、トークンが信号の逆数学関数を表す事前に計算された値を含む第1メモリ素子のセルをアドレス指定するように、トークンによって示されるアドレスを改変する。さらに、第3ゲート40は、第2論理積ゲート30とともに動作し、数学関数または入力信号のどちらかが負であるときに信号を負にする。そのこと自体、本発明の装置、方法およびコンピュータプログラム製品は、単に逆関数を実行するためにアドレス指定される値を切り替えるだけで、同じ構成要素および記憶される値を使用し関数または逆関数を特定することができる。
【0096】
前述されたように、本発明の装置、方法およびコンピュータプログラム製品は、各サンプルが受け取られると、各係数を更新することによって信号を表す関数の係数を特定する。図1、図3、および図9は、サンプルの係数の更新を図解する。後述される図11は、複数のサンプルに基づく係数の特定を図解し、特に受け取られる各サンプルの各係数の更新を示す。
【0097】
前記実施形態と同様に、本実施形態の係数生成プログラム10は、第1メモリ素子と第2メモリ素子、22と24を含む。メモリ素子の両方とも、値を記憶するためのセルのアレイを含む。第2メモリ素子は、係数とサンプル番号を表すトークンを含み、第1メモリ素子はサンプルと係数の直交関数部分と結合されるサンプルの考えられる一意の値のすべてを含む。どのシステムまたはデバイスが第2メモリ素子をアドレス指定するのに使用されてもよいが、本実施形態は、第2メモリ素子をアドレス指定するためにカウンタ26を示す。
【0098】
本実施形態の係数生成プログラムは、さらに、第1メモリ素子の出力と電気的に通信する加算器44を含む。加算器44に接続されるのは、クロスバー46および第3メモリ素子48である。係数生成プログラムは、カウンタの出力と接続しているクロスバーおよび論理積ゲート52と54と電気的に通信するヌルデバイスまたはプルダウンデバイス50も含む。
【0099】
図11に関して、本実施形態での動作中、サンプルごとに、受信機は信号のサンプルを受け取り、該サンプルを第1メモリ素子22に入力する(ステップ700を参照すること)。係数ごとに、入力18と20が、カウンタからのサンプル番号および係数の数を表す第2メモリ素子に与えられる(ステップ710を参照すること)。入力に基づき、第2メモリ素子は、トークンを出力する(ステップ720を参照すること)。第1メモリ素子は、その結果、第2メモリ素子からトークンを、受信機からサンプルの値を受け取る。これらの値に基づき、第1メモリ素子は、係数に対するサンプルの寄与を表す項を生成する(ステップ730を参照すること)。項は次に、やはり第3メモリ素子48から係数の過去の値を受け取る加算器44に提供される。また、第3メモリ素子は、第2メモリ素子に接続される。第2メモリ素子からのトークンが、その結果、項に追加するために出力される第3メモリ素子に記憶される係数をアドレス指定する。項は、加算器によって既存の係数に加算される(ステップ740を参照すること)。
【0100】
係数が更新された後、係数生成プログラムは、次に、最後のサンプルが処理されたかどうかを判断する(ステップ750を参照すること)。特に、論理積ゲート52は、サンプル番号を示す、カウンタの6個の最上位ビットに接続される。サンプル番号が集合の最後のサンプル番号である場合(このケースでは64番目のサンプル)、カウンタの6個の最上位ビットはすべて1だろう。すべての1が論理積ゲート52に入力されると、論理席ゲートは、最後のサンプルが受け取られたことを示す1を出力する。
【0101】
最後のサンプルが受け取られていない場合、クロスバー46が、加算器44から、更新された係数が記憶される第3メモリ素子48に更新された係数を向ける(ステップ760を参照すること)。ヌルデバイスまたはプルダウンデバイス50は、係数が計算されていないことを示す出力でゼロを出力する。
【0102】
他方、最後のサンプルが受け取られている場合、クロスバー46が、更新された係数を加算器44から出力に向ける(ステップ770を参照すること)。さらに、ヌルデバイスまたはプルダウンデバイス50は、クロスバーによってゼロに向けられるか、あるいはリセットとして第3メモリ素子に記憶される値をゼロまたは無にする。さらに、論理積ゲート54は、ゼロの代わりに、係数値出力は有効な値であることを示す。
【0103】
前記ステップは、係数のすべてがサンプルで更新されるまで係数ごとに繰り返される(ステップ780と790を参照すること)。さらに、すべてのサンプルが受け取られ、各係数が更新されるまで、プロセスは各サンプルに繰り返される(ステップ795を参照すること)。
【0104】
図11は、本発明の別の態様も示す。特に、1つの実施形態では、本発明の係数生成プログラムは複数の信号チャネルに接続され、その結果、係数生成プログラムは、各チャネルに位置する信号を表す関数に関して係数を特定する。この実施形態では、カウンタは係数生成プログラムが現在信号を処理しているチャネルを示すカウント値も出力する。チャネル番号および係数の数が、行56と58で出力される。係数生成プログラムは、前記実施形態と同様に動作する。特に、係数生成プログラムは最初に、それがサンプルを受取り、第1チャネルと関連付けられる係数を更新する第1チャネルに接続される。係数生成プログラムは、各チャネルに移動し、サンプルを受け取り、そのチャネル乗の信号と関連付けられる係数を更新する。これは、すべてのチャネルのサンプルのすべてが受け取られ、各チャネル上の信号の係数が更新されるまで繰り返される。別の実施形態では、係数生成プログラムは、次のチャネルに切り替わる前に、1つのチャネルに関してすべてのサンプルを受取り、処理してよい。
【0105】
前述されたように、冗長な値を排除し、値の規模だけを記録し、正負符号または値がゼロであるかどうかを指定するためにトークンを使用することによって、記憶されなければならないデータの量を削減することが有利な場合がある。そのこと自体、図13は、記憶されなければならない値の量を削減するためにゲートが増設される図11の係数生成プログラムを示す。特に、前記実施形態に類似して、本実施形態の係数生成プログラム10は、第1メモリ素子と第2メモリ素子22と24を含む。メモリ素子の両方とも、値を記憶するためのセルのアレイを含む。第2メモリ素子は、係数とサンプル番号を表すトークンを含み、第1メモリ素子は、各サンプルと係数の直交関数部分と結合されるサンプルの考えられる一意の値のすべてを含む。任意のシステムまたはデバイスが第2メモリ素子をアドレス指定するために使用されてよいが、本実施形態は、第2メモリ素子をアドレス指定するためのカウンタ26を示す。
【0106】
本実施形態の係数生成プログラムは、さらに、第1メモリ素子の出力と電気的に通信する加算器44を含む。加算器44に接続されるのは、クロスバーまたはセレクタ46、および第3メモリ素子48である。係数生成プログラムは、クロスバー、およびカウンタの出力に接続されている否定積ゲート52と論理積ゲート54と電気的に通信するヌルデバイスまたはプルダウンデバイス50も含む。
【0107】
さらに、本実施形態の係数生成プログラムは、第1論理積ゲート28、第2論理積ゲート30、およびXORゲート32も含む。第2論理積ゲート30の出力に接続されるのは、典型的には信号の2の補数を取るために実現される加算器36である。XORゲート32は、第2メモリ素子の出力およびゲート組み合わせ40と電気的に通信する。本実施形態の係数生成プログラムは、第1メモリ素子の出力と電気的に通信するヌルデバイスまたはプルダウン34も含む。
【0108】
係数生成プログラムは、必要な場合に入力信号を、値を表す11ビットおよび正負符号の1ビットを有する12ビット値に変換するために受信機12と電気的に通信するコード変換器38も含む。本実施形態の係数生成プログラムは、第1メモリ素子に記憶される値をアドレス指定するために第2メモリ素子に記憶される6ビットトークンも使用する。前記実施形態でのように、トークンは、第2論理積ゲート30および加算器36とともに動作し、トークンの正負符号ビットが値の負を示す場合、第1メモリ素子の出力の負を取る。さらに、ヌルデバイスまたはプルダウンデバイス34、およびトークンのゼロビットは、トークンが、値がゼロでなければならないことを示す場合に、第1メモリデバイスの出力をゼロまたは無にするために動作する。
【0109】
依然としてさらに、係数生成プログラムは、入力信号をラッチするための第1の60ラッチおよび出力係数値をラッチして外すための第2ラッチ62を含む。係数生成プログラムは、信号の逆関数の係数を特定するために係数生成プログラムを使用するための入力44およびゲートの組み合わせ40も含む。さらに、係数生成プログラムは、メモリをリセットするためのリセットデバイス64を含み、係数およびチャネル番号を出力するために56と58を出力する。
【0110】
図14に関して、本実施形態の動作中、サンプルごとに、受信機は信号のサンプルを受け取り、該サンプルを第1メモリ素子22に入力する(ステップ800を参照すること)。係数ごとに、入力18と20は、サンプル番号および係数の数を表す第2メモリ素子に提供される(ステップ810を参照すること)。入力に基づき、第2メモリ素子は、サンプルと係数の数を表す4ビット、値が負であるかどうかを表す1ビット、および値がゼロであるかどうかを表す1ビットを有するトークンを出力する(ステップ820を参照すること)。第1メモリ素子は、その結果、第2メモリ素子からトークンを、受信機からサンプルの値を受け取る。これらの値に基づき、第1メモリ素子は、係数に対するサンプルの寄与を表す項を生成する(ステップ830を参照すること)。
【0111】
さらに、サンプルの正負符号ビットおよびトークンの正負符号ビットの出力は、第2論理積ゲート30に供給される。信号の正負符号が負であるか、あるいはトークンの正負符号ビットが設定されているかのどちらかの場合、第2論理積ゲートは桁上げビットを加算器36に出力する。加算器は、第1メモリ素子の出力を負にするだろう(ステップ840と850を参照すること)。
【0112】
同様に、トークンおよび信号は、ともに第1論理積ゲート28に提供される。信号またはトークンのどちらかがゼロ値を示す場合、ゼロ値は第1論理積ゲート28によって出力されるだろう。ゼロ値が第2論理積ゲート30に送信され、それが第2論理積ゲート30が信号を負にするのを禁止する。さらに、ゼロ値は第1メモリ素子に出力され、それが第1メモリ素子をディスエーブルする。第1メモリ素子がディスエーブルされるため、ヌルデバイスまたはプルダウンデバイス34が、係数の値を表すゼロ値を出力する(ステップ860と870を参照すること)。それから、係数の項が出力される。
【0113】
次に項は、やはり第3メモリ素子48から係数の過去の値を受け取る加算器44に提供される。第3メモリ素子は第2メモリ素子にも接続される。第2メモリ素子からのトークンは、その結果、項を追加するための加算器に出力される第3メモリ素子に記憶される係数をアドレス指定する。項は、加算器によって既存の係数に追加される(ステップ880を参照すること)。
【0114】
係数が更新された後、係数生成プログラムは、次に、最後のサンプルが処理されたかどうかを判断する(ステップ900を参照すること)。特に、論理積ゲート52は、サンプル番号を示すカウンタの6個の最上位ビットに接続される。サンプル番号が集合の最後のサンプル番号である場合(このケースでは64番目のサンプル)、カウンタの6個の最上位ビットはすべて1だろう。すべての1が論理積ゲート52に入力されると、論理席ゲートは、最後のサンプルが受け取られたことを示す1を出力する。
【0115】
最後のサンプルが受け取られていない場合、クロスバーまたはセレクタ46が、更新された係数を加算器44から、更新された係数が記憶される第3メモリ素子48に向ける(ステップ900を参照すること)。ヌルデバイスまたはプルダウンデバイス50も、係数が計算されていないことを示す出力でゼロを出力する。
【0116】
他方、最後のサンプルが受け取られている場合、クロスバー46は更新された係数を加算器44から出力に向ける(ステップ910を参照すること)。さらに、ヌルデバイスまたはプルダウンデバイス50は、クロスバーによってゼロに向けられるか、あるいは第3メモリ素子に記憶される値をリセットとしてゼロまたは無にする。さらに、論理積ゲート54は、出力された係数値が、ゼロの代わりに係数値であることを示す。
【0117】
前記ステップは、係数のすべてがサンプルで更新されるまで、係数ごとに繰り返される(ステップ920と930を参照すること)。さらに、プロセスは、すべてのサンプルが受け取られ、各係数が更新されるまでサンプルごとに繰り返される(ステップ940を参照すること)。
【0118】
さらに、第1ラッチと第2ラッチ、60と62は、クロックサイクルに基づいて係数を出力し、新しいサンプルを受け取るように、カウンタと同期される。さらに、リセットデバイス64はメモリをリセットする。
【0119】
前記に詳説されたように、本発明の装置、方法およびコンピュータプログラム製品は、複数のサンプルを処理し、サンプルに基づいて関数の係数を生成する。本発明のいくつかの実施形態では、複数のサンプルが受け取られた後、本発明の装置、方法およびコンピュータプログラム製品は、生成された係数を出力し、係数をリセットし、再び信号のサンプルを採取する。しかしながら、それぞれの新しいサンプルが受け取られ、処理されるときに係数の完全な集合を生成し、出力することが有利である実施形態もある。これが、スライド式アパーチャフーリエ変数(SAFT)と呼ばれる。
【0120】
この実施形態では、本発明の装置、方法およびコンピュータプログラム製品は、複数のサンプルの最後のサンプルが受け取られ、係数が出力された後に、係数のそれぞれをゼロにリセットしない。代わりに、本発明の装置、方法、およびコンピュータプログラム製品は、過去の複数のサンプルの第1サンプルを次に受け取られるサンプルで置換する。この新しいサンプルを使用すると、本発明の装置、方法およびコンピュータプログラム製品は係数の次の集合を出力する。そのこと自体、サンプルの各「バッチ」に係数の集合を生成する代わりに、本発明の装置、方法、およびコンピュータプログラム製品は、新しいサンプルが受け取られるたびに係数の集合を生成し、それによってサンプルが受け取られるたびに係数の新しい集合を提供する。
【0121】
本発明は、新しいサンプルが受け取られるたびに、係数の集合を生成するための装置、方法、およびコンピュータプログラム製品を提供する。これらの実施形態のそれぞれで、本発明の装置、方法およびコンピュータプログラム製品は、過去の複数のサンプルの第1サンプルの寄与を、次に受け取られるサンプルの寄与で置換してから、新しい係数を出力する。例えば、1つの実施形態では、本発明の装置、方法およびコンピュータプログラム製品は、最初に、それらが受け取られるときにサンプルのそれぞれを記憶し、複数のサンプルの最後のサンプルが受け取られると、係数の第1集合を生成する。さらに、入力信号の新しいサンプルが受け取られると、(所定の複数のサンプルがすでに受信された後に)、本発明の装置、方法およびコンピュータプログラム製品は、係数と関連付けられた数学関数を新しいサンプルに適用し、係数ごとに新しいサンプルに基づいた項を生成する。新しいサンプルを複数のサンプルの第1サンプルで置換するために、新しいサンプルの生成された項が、メモリデバイスに過去に記憶されていた所定の複数のサンプルの第1サンプルと関連付けられる項から差し引かれる。この減算に続き、係数は、新しいサンプルに基づいた項と、所定の複数のサンプルの第1サンプルの間の差異によって更新される。
【0122】
本発明の別の実施形態では、新しいサンプルを複数のサンプルの第1サンプルで置換するために、本発明の装置、方法およびコンピュータプログラム製品は、所定の複数のサンプルの第1サンプルに基づいた項を係数のそれぞれから差し引き、新しいサンプルに基づいた項を係数のそれぞれに加算する。そのこと自体、1つの実施形態では、新しいサンプルおよび最も旧いサンプルの項が最初に互いから差し引かれ、残りが係数に追加されるが、別の実施形態では、最も旧いサンプルと関連付けられる項は各係数から差し引かれ、新しいサンプルに関連付けられた項が係数に加算される。この第2実施形態は、典型的には、さらに少ない演算上のドリフトを経験し、図15に示される。
【0123】
特に、図15の係数生成プログラム10は、図13に示され、記述されている係数生成プログラムの構成要素のすべてを含む。しかしながら、図15の係数生成プログラムは、さらに、複数のサンプルの各サンプルと関連付けられる項を記憶するための第3メモリ素子48と電気的に通信する第4メモリ素子66を含む。係数生成プログラムは、さらに、新規に受け取られたサンプルに関連付けられた項から、過去の複数のサンプルの第1サンプルと関連付けられた項を差し引くための第3メモリ素子と第4メモリ素子と電気的に通信する加算機68を含む。
【0124】
図16に関して、本実施形態での動作中、過去の実施形態と同様に、サンプルごとに、受信機は信号のサンプルを受け取り、該サンプルを第1メモリ素子22に入力する(ステップ1000を参照すること)。係数ごとに、入力18と20が、サンプル番号および係数の数を表す第2メモリ素子に提供され(ステップ1010を参照すること)、入力に基づき、第2メモリ素子がトークンを出力する(ステップ1020を参照すること)。トークンおよびサンプルに基づき、第1メモリ素子は、係数に対するサンプルの寄与を表す項を生成する(ステップ1030を参照すること)。
【0125】
信号の正負符号が負であるか、あるいはトークンの正負符号ビットが設定されるどちらかの場合、第2論理積ゲートは桁上げビットを加算器36に出力する。加算器は、第1メモリ素子の出力を負にするだろう(ステップ1040と1050を参照すること)。同様に、信号またはトークンのどちらかがゼロ値を示す場合、ゼロ値は、第1論理積ゲート28によって出力される。ゼロ値が第1メモリ素子に出力されると、それは第1メモリ素子をディスエーブルする。第1メモリ素子のディスエーブルのため、ヌルデバイスまたはプルダウンデバイス34が、係数の値を表すゼロ値を出力する(ステップ1060と1070を参照すること)。ゼロのケースでは、符号は無視される。それから、係数の項が出力される。
【0126】
項は、次に、第3メモリ素子48から係数の過去の値も受け取る加算器44に提供される。第3メモリ素子は第2メモリ素子にも接続される。第2メモリ素子からのトークンは、その結果、項に加算するために加算器に出力される第3メモリ素子に記憶される係数をアドレス指定する。項は、加算器によって既存の係数に加算される(ステップ1080を参照すること)。
【0127】
第4メモリ素子も第2メモリ素子に接続される。第2メモリ素子からのトークンは、複数のサンプル(つまり、最も旧いサンプル)の第1サンプルと関連付けられた項を表す、第4メモリ素子に記憶される項をアドレス指定する。項は、項が更新された係数から差し引かれる加算器68に提供される(ステップ1090を参照すること)。新しいサンプルに関連付けられる項は、第4メモリ素子に記憶され(ステップ1100を参照すること)更新された係数は第3メモリ素子に記憶され(ステップ1110を参照すること)、出力もされる(ステップ1120を参照すること)。前記ステップは、係数のすべてがサンプルで更新されるまで、係数ごとに繰り返される(ステップ1130と1140を参照すること)。
【0128】
前記の実施形態のいくつかに示されるように、本発明の装置、方法、およびコンピュータプログラム製品は、本発明がチャネル上で信号を表す関数のチャネル係数ごとに生成するチャネルの級数のために並列で使用されてよい。前記に詳説されたように、本発明は、受取り時に各サンプルを、サンプルと係数に関連付けられる数学関数と結合することにより、信号を表す関数の係数を特定する。さらに、前記に詳説されたように、サンプルと係数の異なる組み合わせは、事前に計算され、アドレス指定可能メモリ素子に記憶されてよいか、あるいはトークンに関連付けられた値に関してゲート制御関数によって計算されてよい。典型的には、メモリ素子のセルをアドレス指定するトークンは、係数とサンプルを示すカウンタから得られる状態情報から引き出される。通常の動作中、トークンおよびメモリ素子は、信号を表す関数の係数を特定するために使用されるが、これらのトークンおよびメモリ素子は、適切な場所にあるビットをカウンタに追加することによって繰り返し使用されてよく、このようにして非常に多数のチャネルにサービスを提供する。この実施形態では、追加係数メモリセルが追加係数を維持し、チャネル番号がユーザに対する便宜として出力されてよい。順方向係数を確定するため、あるいは入力の逆関数を確定するために電気信号を利用することは依然として可能である。
【0129】
さらに、通常の動作中、トークンおよびメモリ素子は、信号を表す関数の係数を確定するために使用され、これらのトークンおよびメモリ素子は、適切な場所にあるカウンタにビットを追加することにより繰り返し使用されてよく、このようにして非常に多数のチャネルにサービスを提供する。本実施形態では、追加の係数メモリセルが追加係数を維持し、チャネル番号はユーザにとっての便宜として出力されてよい。異なるチャネルとして連続サンプルを処理させることによって、このようにしてインタリーブされた変換を生じさせることが可能である。インタリーブされた変換は、例えば、2次元変換を作成するために第2の類似するプロセスに送信されてよい。
【0130】
前記に詳説されたように、本発明の装置、方法およびコンピュータプログラム製品は、関数の係数を確定するだけではなく、逆関数の係数も確定することができる。これは、トークンのアドレスを切り替えることによって多くの例で達成され、その結果トークンは、逆関数を表す値をアドレス指定する。係数生成プログラムが複数のチャネルとともに使用される例では。係数生成プログラムは、別個のチャネル用の別の信号の逆関数の係数も提供しつつ、あるチャネルのために、それが1つの信号を表す関数の係数を提供するように有利に制御されてよい。
【0131】
前記に示された多様な実施形態に詳説されたように、本発明の装置、方法およびコンピュータプログラム製品は、各サンプルが受け取られると各係数を更新する。さらに、いくつかの実施形態では、本発明の装置、方法およびコンピュータプログラム製品は、新しいサンプルが受け取られるたびに、係数を出力する。これは、それが重要な個々の係数を観察、および追跡調査できるようにするために有利である。重要な個々の係数は、これらの係数を出力するために係数生成プログラムを制御することによって追跡調査されてよい。これは、ユーザに、遵守(observance)のためにリアルタイムまたはほぼリアルタイムで係数の新しい集合を与える。
【0132】
追加の優位点とは、係数がさまざまな分解能で更新することもできるという点である。特に、すべての係数が適切に処理、記憶できるわけではないように、係数のいくつかはさらに重要であるか、あるいは限られたハードウェアリソースがある。これらの例では、係数生成プログラムは、一定の係数を更新するため、あるいは各サンプルでいくつかの係数を更新するためだけに制御することができるが、あまり重要ではない係数は少ない数のサンプルで更新される。
【0133】
装置および方法を提供することに加え、本発明は、入力信号の所定の複数のサンプルに基づき、入力信号を表す関数の係数を特定するためのコンピュータプログラム製品も提供する。コンピュータプログラム製品は、媒体内に実現されるコンピュータ読取り可能プログラムコード手段を有するコンピュータ読取り可能記憶媒体を有する。コンピュータ読取り可能記憶媒体は、係数生成プログラムを置換し、係数生成プログラムの機能をソフトウェアを通して実行してよい。さらに、コンピュータ読取り可能媒体は、係数を特定するためのアドレスを提供することにより係数生成プログラムを制御してよい。
【0134】
コンピュータ読取り可能プログラムコード手段は、一度に1つずつサンプルのそれぞれを受け取るための第1コンピュータ命令手段を含む。さらに、コンピュータ読取り可能プログラムコード手段は、すべてのサンプルの受取りを待機せずに、サンプルが受け取られると、各サンプルに基づく関数の係数を更新するための第2コンピュータ命令手段を含み、それによって関数の係数を特定するために必要とされる待ち時間を短縮する。さらなる実施形態では、各係数は、サンプルと数学関数の組み合わせに少なくとも部分的に基づく少なくとも1つの項から構成される。本実施形態では、コンピュータ読取り可能プログラムコード手段は、さらに、受取り時に各サンプルを、サンプルと係数に関連付けられた数学関数と結合することにより、各係数のそれぞれの項を特定するための第3コンピュータ命令手段を含む。依然として別の実施形態では、各サンプルは各係数の1つの項に寄与するだけである。本実施形態では、第2コンピュータ命令手段は、サンプルがそれ以降記憶されるのを必要とせずに、受取り時に各サンプルに基づき係数のそれぞれの更新する。
【0135】
本発明は、関数の考えられる数学項を表すために記憶されなければならない値の数を削減するためのコンピュータプログラム製品も提供する。この実施形態では、コンピュータプログラム製品は、媒体内で実現されるコンピュータ読取り可能プログラムコード手段を有するコンピュータ読取り可能記憶装置媒体を含む。コンピュータ読取り可能プログラムコード手段は、関数のすべての考えられる数学項の第1リストを作成するための第1コンピュータ命令手段を含む。第2コンピュータ命令手段は、リスト中の各数学項を、リスト中のその他のすべての数学項に規則正しく比較し、数学項の内のどれが冗長であるのかを判断する。コンピュータ読取り可能プログラムコードは、関数の一意の数学項のすべてを第2リストの中に記憶するための第3コンピュータ命令手段も含み、その結果、第2リストの中には関数の冗長な数学項はない。
【0136】
本発明の1つの実施形態では、関数は周期的で、ゼロの回りで対称的であり、その結果、関数の数学項のいくつかは同じ規模および異なる正負符号を有する。本実施形態では、第2コンピュータ命令手段は、リスト中の各数学項の規模を、リスト中の他の数学項のそれぞれの規模に比較し、数学項の内のどれが同じ規模を有するのかを判断する。さらに、第3コンピュータ命令手段は、一意の規模を有する数学項のすべてを第2リストの中に記憶する。本実施形態のコンピュータ読取り可能プログラムコード手段は、さらに、各数学項と関連付けられたトークンを作成するための第4コンピュータ命令手段を含み、トークンは数学項に関連付けられる第2リストの中に記憶される規模および数学項に関連付けられる正負符号を示す。
【0137】
別の実施形態では、数学項の少なくとも1つはゼロという規模を有する。本実施形態では、コンピュータ読取り可能プログラムコード手段は、さらに、前記記憶ステップが第2リストに数学項を記憶しないように、数学項がゼロであることを示す数学項に関連付けられるトークンを作成するための第4コンピュータ命令手段を含む。
【0138】
いくつかの実施形態では、コンピュータ読取り可能プログラムコード手段は、さらに、第2リスト中の数学項のそれぞれをアドレス指定する第4コンピュータ命令手段を含み、その結果、数学項は検索されてよい。さらなる実施形態では、関数は、信号を表し、信号のサンプルによって定義され、信号のサンプルは有限数の考えられる値の内の1つである。本実施形態では、第1コンピュータ命令手段が、サンプルの考えられる値と関数の数学項のすべての考えられる組み合わせの第1リストを作成する。さらに、第2コンピュータ命令手段は、リスト中の各組み合わせを、リスト中の他のすべての組み合わせに規則正しく比較し、組み合わせのどれが冗長であるのかを判断し、第3コンピュータ命令手段は、一意の組み合わせのすべてを第2リストに記憶し、その結果、第2リスト中に冗長な組み合わせはない。
【0139】
関数の係数を生成するコンピュータプログラム製品、および記憶される値の数を削減するコンピュータプログラム製品を提供することに加え、本発明は、回路設計を生成するコンピュータプログラム製品、または最後のサンプルの受取り前に、係数の少なくとも1つを更新することによって関数の係数を確定するコンピュータプログラムも提供する。特に、技術で既知であるように、パラメータによって定義される関数を実現するために指定されたパラメータの入力に対処し、回路設計またはコンピュータソフトウェアを出力するコンピュータプログラムがある。本発明は、システムによって実行される関数に関するパラメータを受け取るコンピュータプログラム製品を提供し、関数を実現するための回路設計またはコンピュータプログラムのどちらかを生成する。例えば、1つの実施形態では、コンピュータプログラム製品は、関数のすべての考えられる数学項を受け取り、縮小されたハードウェアまたは削減されたデータ記憶域で、関数の係数を生成するためにすべての考えられる数学項を使用する回路またはコンピュータプログラムのどちらかを生成する。
【0140】
この点で、図1から図16は、本発明に従った方法、システムおよびプログラム製品のブロック図、フローチャートおよび制御フロー図である。ブロック図、フローチャートおよび制御フロー図の各ブロックまたはステップ、およびブロック図、フローチャートおよび制御フロー図のブロックの組み合わせは、コンピュータプログラム命令によって実現できる。これらのコンピュータプログラム命令は、コンピュータまたは機械を生産するためのその他のプログラム可能装置にロードされてよく、その結果コンピュータまたはその他のプログラム可能装置で実行する命令が、ブロック図、フローチャート、または制御フローブロック(複数の場合がある)またはステップ(複数の場合がある)に指定される関数を実現するための手段を作成する。また、これらのコンピュータプログラム命令は、特定の方法でコンピュータまたはその他のプログラム可能装置に機能するように命令することができるコンピュータ読取り可能目盛りに記憶されてよく、その結果、コンピュータ読取り可能メモリに記憶される命令は、ブロック図、フローチャート、または制御フローブロック(複数の場合がある)またはステップ(複数の場合がある)に指定される関数を実現する命令手段を含む製造の製品を生産する。コンピュータプログラム命令は、コンピュータまたはその他のプログラム可能装置の上にもロードされてよく、一連の操作ステップをコンピュータまたはその他のプログラム可能装置上で実行させ、コンピュータまたはその他のプログラム可能装置上で実行する命令が、ブロック図、フローチャートまたは制御フローブロック(複数の場合がある)またはステップ(複数の場合がある)に指定される関数を実現するためのステップを提供するように、コンピュータによって実現されるプロセスを作成する。
【0141】
その結果、ブロック図、フローチャート、または制御フロー図のブロックまたはステップは、指定された機能を実行するための手段の組み合わせ、指定された機能を実行するためのステップの組み合わせ、および指定された機能を実行するためのプログラム命令手段をサポートする。また、ブロック図、フローチャート、または制御フロー図の各ブロックまたはステップ、およびブロック図、フローチャート、または制御フロー図のブロックまたはステップの組み合わせは、指定された機能またはステップ、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせを実行する特殊目的ハードウェアベースのコンピュータシステムによって実現できることも理解されるだろう。
【0143】
付録1
標準フーリエ級数を計算するプログラムの例
【数3】
Figure 0004083387
【0144】
【数4】
Figure 0004083387
【0145】
付録2
本発明の1つの実施形態に従って高速フーリエ級数を計算するプログラムの例
すべての計算はサンプル単位で実行され、1つのレジスタが各係数専用とされ、各連続サンプルで更新される。
【数5】
Figure 0004083387
【0146】
【数6】
Figure 0004083387
【0147】
【数7】
Figure 0004083387
【0148】
【数8】
Figure 0004083387

【図面の簡単な説明】
【図1】 図1は、本発明の1つの実施形態に従って、ゲートデバイスを使用して入力信号のサンプルに基づいた入力信号を表す関数の係数を確定するための装置のブロック図である。
【図2】 図2は、本発明の1つの実施形態に従って、入力信号のサンプルに基づく入力信号を表す関数の係数を確定するために実行される動作のブロック図である。
【図3】 図3は、本発明の1つの実施形態に従って、少なくとも1つのメモリ素子を使用して入力信号のサンプルに基づく入力信号を表す関数の係数を確定するための装置のブロック図である。
【図4】 図4は、本発明の1つの実施形態に従って、関数の考えられる数学項を表すために記憶されなければならない値の数を削減するために実行される動作のブロック図である。
【図5】 図5は、フーリエ変換を使用して確定される係数のプロットの図表記である。
【図6】 図6は、各トークンが本発明の1つの実施形態に従って関数な対を表す、トークンのテーブルを作成するために実行される動作のブロック図である。
【図7】 図7は、本発明の1つの実施形態に従ってアドレス指定可能な値のテーブルを作成するために実行される動作のブロック図である。
【図8】 図8は、本発明の1つの実施形態に従ってトークンに基づくテーブルから値を検索するために実行される動作のブロック図である。
【図9】 図9は、本発明の1つの実施形態に従ってメモリ素子およびゲートを使用して入力信号のサンプルに基づく入力信号を表す関数の係数を確定するための装置のブロック図である。
【図10】 図10は、本発明の1つの実施形態に従って、メモリ素子およびゲートを使用して、入力信号のサンプルに基づく入力信号を表す関数の係数を確定するために実行される動作のブロック図である。
【図11】 図11は、本発明の1つの実施形態に従って、入力信号の複数のサンプルに基づく入力信号を表す関数の係数を確定するための装置のブロック図である。
【図12】 図12は、本発明の1つの実施形態に従って、入力信号の複数のサンプルに基づく入力信号を表す関数の係数を確定するために実行される動作のブロック図である。
【図13】 図13は、本発明の1つの実施形態に従って、メモリ素子およびゲートを使用して入力信号の複数のサンプルに基づく入力信号を表す関数の係数を確定するための装置のブロック図である。
【図14】 図14は、本発明の1つの実施形態に従って、メモリ素子およびゲートを使用して入力信号の複数のサンプルに基づく入力信号を表す関数の係数を確定するために実行される動作のブロック図である。
【図15】 図15は、受け取られたサンプルごとに、本発明の1つの実施形態に従って、係数の集合が出力される、メモリ素子およびゲートを使用して入力信号の複数のサンプルに基づく入力信号を表す関数の係数を確定するための装置のブロック図である。
【図16】 図16は、受け取られたサンプルごとに、本発明の1つの実施形態に従って、係数の集合が出力される、メモリ素子およびゲートを使用して入力信号の複数のサンプルに基づく入力信号を表す関数の係数を確定するために実行される動作のブロック図である。

Claims (41)

  1. 入力信号の複数のサンプル値(S1〜Sn)を順次受け取って、離散フーリエ変換により入力信号を近似する、関数の係数(A0、A1、A2、...およびB0、B1、B2、...)を決定する装置であって、
    前記入力信号の複数のサンプル値を受取る受信部と、
    サンプル番号および係数の数に基づいて直交関数の値を生成する第2デバイスと、
    前記受信部および前記第2デバイスに接続され、前記受信部からの前記サンプル値と、前記第2デバイスから受取った前記直交関数の値とに基づいて、前記関数の各係数に加算されるべきそれぞれの項を生成する第1デバイスと
    を有する係数生成手段を備え、
    さらに、前記係数生成手段が前記関数の係数を記憶するためのメモリ素子を備え、
    前記係数生成手段が、前記関数の各係数に加算されるべきそれぞれの項を、前記メモリ素子から読み出した係数に加算することによって前記関数の各係数を更新して前記メモリ素子の読み出した部分に書き込み、前記サンプル値を破棄する装置。
  2. 前記サンプルは、外部クロックに基づいて前記受信部に提供され、前記第1デバイスおよび前記第2デバイスは前記係数を更新するために外部クロックを使用する請求項1に記載の装置。
  3. 前記係数生成手段の第1デバイスが、各係数を複数のサンプルの最後(Sn)を用いて更新して係数を出力する請求項1に記載の装置。
  4. 前記係数生成手段の第1デバイスが、各サンプル番号および係数の数に関連付けられた関数を記憶するためのメモリ素子を含み、前記第1デバイスが前記メモリにアクセスし、サンプルを、各サンプル番号および係数の数に関連付けられる関数によって乗算し、それにより項を定義し、それ以降、項を係数の過去の値に追加することによって係数を更新する請求項1に記載の装置。
  5. 前記第1デバイスの前記メモリ素子が、複数のセルを有するアレイを含み、アレイの各セルが、それぞれのサンプル番号および係数の数に関連付けられる関数を表す値を記憶し、関連付けられたサンプル番号および係数の数によって定義された一意のアドレスを有し、各サンプル番号および係数の数に、前記係数生成手段の前記第1デバイスが、サンプル番号および係数の数に関連付けられるアドレスを使用して前記メモリのセルにアクセスし、記憶される関数でサンプルを乗算し、それにより前記係数の項を定義し、それ以降、項を係数の過去の値に加算することにより係数を更新する、請求項1に記載の装置。
  6. 信号の各サンプルが、有限数の考えられる値の内の1つである値を有し、前記係数生成手段の前記第1デバイスが、各セルがそれぞれのサンプル番号および係数の数と関連付けられるセルのアレイを有する第1メモリ素子であり、各セルが有限数のサンプルの考えられる値の内の1つとそれぞれのサンプル番号および係数の数に関連付けられた関数の組み合わせに一致する事前に計算された値を含み、各セルが、前記セルを認識する単一のメモリアドレスを有し、前記単一のメモリアドレスが前記メモリ内においてセルをアドレスするトークンを示す請求項1に記載の装置。
  7. 前記係数生成手段の前記第2のデバイスが、それぞれが前記第1メモリ素子のセルを表すトークンを記憶するためのセルのアレイを有する第2メモリ素子を備え、それぞれのサンプル番号および係数の数が前記第1メモリ素子のセルに格納され、サンプル番号および係数の数ごとに、前記第2メモリ素子がサンプル番号および係数の数に関連付けられたトークンを検索し、トークンを前記第1メモリ素子に供給し、それ以降、前記第1メモリ素子がトークンに対応する前記第1メモリ素子のセルに記憶される事前に計算された値を計算し、前記係数生成手段は、さらに、前記第1メモリ素子から係数の過去の値に事前に計算された値を追加することによって係数を更新する加算手段を有する請求項1に記載の装置。
  8. 前記第2デバイスは、前記第1メモリ素子のセルをアドレス指定するための論理積ゲートであり、サンプルごとに、前記ゲートがサンプル番号および係数の数に関連付けられた前記第1メモリ素子においてセルを同定するトークンを前記第1メモリ素子に出力し、前記第1メモリ素子が、トークンおよびサンプルの値から構成されるアドレスを有する前記第1メモリ素子のセルに記憶される事前に計算された値を検索し、前記係数生成手段が、前記第1メモリ素子から係数の過去の値に事前に計算された値を加算することによって係数を更新する加算器をさらに有する請求項1に記載の装置。
  9. さらに、前記第1メモリ素子のセルをアドレス指定するために前記係数生成手段の前記第2のデバイスと電気的に通信するカウンタを備え、サンプルごとに、前記カウンタが係数とサンプルに関連付けられるトークンを前記第1メモリ素子に出力し、前記第1メモリ素子が、トークンおよびサンプルの値から構成されるアドレスを有する前記第1メモリ素子のセルに記憶される事前に計算された値を検索し、前記係数生成手段が、前記第1メモリ素子から係数の過去の値に事前に計算された値を加算することにより係数を更新する加算器をさらに有する請求項1に記載の装置。
  10. 前記係数生成手段が、さらにヌルデバイスを含み、それぞれのサンプル番号および係数の数に関連付けられた関数の値がゼロであり、前記係数生成手段は前記ヌルデバイスから、係数の過去の値にゼロを加算することによって係数を更新する請求項1に記載の装置。
  11. 前記第1メモリ素子が、それぞれのサンプルとそれぞれの関数の規模の組み合わせに一致する事前に計算された関数だけを含み、前記トークンがさらに関数の正負符号を示し、それにより前記第1メモリ素子によって記憶される事前に計算された値の数を削減する請求項1に記載の装置。
  12. 前記係数生成手段は、さらに、前記第1メモリ素子と電気的に通信する加算器を含み、前記トークンが、関数の正負符号が負であることを示すと、前記第1メモリ素子が関数の規模を出力し、前記加算器が出力を受け取り、関数の負を生成する、請求項1に記載の装置。
  13. 各トークンがそれぞれサンプル番号および係数の数を記憶する前記第1メモリ素子においてセルを表し、前記係数生成手段が、さらに、前記第1メモリ素子のゲートに接続したセレクタを含み、正負符号の逆関数を表す係数を生成するために、前記セレクタが、前記ゲートによって生成されるトークンが、それぞれサンプル番号および係数の数に関連付けられた逆関数を表す事前に計算された値を含む第1メモリ素子内でセルをアドレス指定するように、前記ゲートの出力を切り替え、前記係数生成手段が、前記第1メモリ素子から係数の過去の値に事前に計算された値を加算することによって係数を更新する請求項1に記載の装置。
  14. 前記係数生成手段が、それぞれ別個のチャネルに存在する複数の信号からサンプルを受取り、前記係数生成手段が、サンプルが受け取られるときに信号と関連付けられる各信号に基づき各サンプルと関連付けられた関数の係数を更新し、前記セレクタがチャネルの少なくとも1つから受け取られるサンプルに関して前記ゲートの出力を切り替え、その結果、前記係数生成手段が少なくとも1つのチャネルの信号の逆関数を表す係数を生成する請求項1に記載の装置。
  15. 前記係数生成手段が、さらに、第3メモリ素子を備え、前記係数生成手段が、さらに、それらが受け取られるとサンプルのそれぞれを前記メモリ素子に記憶する請求項1に記載の装置。
  16. 前記係数生成手段が、さらに、加算器を有し、前記係数生成手段がサンプル(S1〜Sn)のN数を受取り、処理した後に、前記係数生成手段が係数を出力し、入力信号の新しいサンプル(Sn+1)が受け取られると、前記加算器が、前記第3メモリ素子に過去に記憶されていたサンプルのN数の第1サンプル(S1)に基づいた項を、新しいサンプル(Sn+1)に基づいた項から差し引き、前記加算器が、新しいサンプル(Sn+1)に基づいた項と、第1サンプル(S1)の間の差異によって係数を更新する請求項1に記載の装置。
  17. 前記係数生成手段がN数のサンプル(S1〜Sn)を受け取り、処理した後に、前記係数生成手段が係数を出力し、入力信号の新しいサンプル(Sn+1)が受け取られると、前記加算器が、前記第3メモリ素子(66)に過去に記憶されていたサンプルのN個の第1サンプル(S1)に基づいた項を、係数のそれぞれから差し引き、前記加算器が新しいサンプル(Sn+1)に基づいた項を係数のそれぞれに加算する請求項1に記載の装置。
  18. 入力信号の関数がフーリエ変換である請求項1に記載の装置。
  19. 少なくとも1つの係数があり、前記係数生成手段の前記第1デバイスがサンプルのそれぞれを受取り、サンプルに基づいて残りの係数を更新せずに、各サンプルに基づいた関数の係数を更新する請求項1に記載の装置。
  20. 前記係数生成手段の前記第1デバイスが、係数が更新されるたびに係数を出力する請求項1に記載の装置。
  21. 少なくとも1つの第1および第2の係数があり、前記係数生成手段の前記第1デバイスが第2の係数とは異なるサンプルの数で第1の係数を更新し、その結果、それぞれの係数の分解能が異なる請求項1に記載の装置。
  22. 入力信号の複数のサンプル値(S1〜Sn)を順次受け取って、離散フーリエ変換により入力信号を近似する、関数の係数(A0、A1、A2、...およびB0、B1、B2、...)を決定する方法であって、
    係数生成手段の受信部が、前記入力信号の複数のサンプル値を受取るステップと、
    前記係数生成手段の第2デバイスが、サンプル番号および係数の数に基づいて直交関数の値を生成するステップと、
    前記受信部および前記第2デバイスに接続された、前記係数生成手段の第1デバイスが、前記受信部からの前記サンプル値と、前記第2デバイスから受取った前記直交関数の値とに基づいて、前記関数の各係数に加算されるべきそれぞれの項を生成するステップと、
    前記係数生成手段のメモリ素子が、前記関数の係数を記憶するステップと、
    前記係数生成手段が、前記関数の各係数に加算されるべきそれぞれの項を、前記メモリ素子から読み出した係数に加算することによって前記関数の各係数を更新して前記メモリ素子の読み出した部分に書き込み、前記サンプル値を破棄するステップと
    を含む、方法。
  23. 前記サンプルは、外部クロックに基づいて前記受信部に提供され、前記第1デバイスおよび前記第2デバイスは前記係数を更新するために外部クロックを使用する請求項22に記載の方法。
  24. 前記更新するステップにおいて、各サンプルが受け取られると、前記第1デバイスが複数のサンプルのそれぞれで係数のそれぞれを更新し、各係数が複数のサンプルの最後で更新されると、前記第1デバイスが係数を出力する請求項22に記載の方法。
  25. 前記更新するステップにおいて、各サンプルが受け取られると、前記第1デバイスが、複数のサンプルのそれぞれに基づき係数のそれぞれを同時に更新し、係数が複数のサンプルの最後に基づき更新されると、前記更新するステップにおいて、前記第1デバイスが係数を出力する請求項22に記載の方法。
  26. 前記第1デバイスがメモリ素子を有し、前記方法が、さらに、最初に、サンプル番号及び係数の数に関連付けられる関数をメモリ素子の中に記憶するステップと備え、サンプル番号及び係数の数ごとに、前記確定するステップにおいて、前記第1デバイスがメモリ素子にアクセスし、サンプル番号及び係数の数に関連付けられる値でサンプルを乗算し、それにより項を定義し、前記更新するステップにおいて、前記第1デバイスが係数の過去の値に項を加算することによって係数を更新する請求項22に記載の方法。
  27. 前記第1デバイスのメモリ素子が複数のセルを有するアレイを含み、前記記憶するステップがアレイの各セルの中に、それぞれのサンプル番号及び係数の数に関連付けられる関数を表す値を記憶し、アレイの各セルが、関連付けられたサンプル番号及び係数の数によって定義された一意のアドレスを有し、サンプル番号及び係数の数ごとに、前記確定するステップにおける前記第1デバイスが、サンプル番号及び係数の数に関連付けられるアドレスを使用してメモリ素子のセルにアクセスし、記憶される関数でサンプルを乗算し、それにより項を定義し、それ以降前記更新するステップがそれらを係数の過去の値に加算することにより係数を更新する請求項22に記載の方法。
  28. 前記第1デバイスがメモリ素子を有し、信号の各サンプルが、有限数の考えられる値の1つである値を有し、前記方法が、さらに、各セルがそれぞれのサンプル番号及び係数の数の有限値と関連付けられるように、セルのアレイを有する前記第1メモリ素子の中に、有限数のサンプルの考えられる値の1つと、各サンプル番号及び係数の数に関連付けられる関数の組み合わせに一致する事前に計算された値を記憶するステップとを備え、各セルがトークンアドレスで表される請求項22に記載の方法。
  29. 前記第2のデバイスが第2のメモリ素子を有し、前記方法が、さらに、セルのアレイを有する前記第2メモリ素子の中に、それぞれがそれぞれのサンプル番号及び係数の数を表すトークンを記憶するステップを備え、サンプルごとに、前記確定するステップが第2メモリ素子にアクセスし、係数ごとに、係数とサンプルに関連付けられたトークンを検索し、トークンを第1メモリ素子に供給し、それ以降、トークンとサンプルの値から構成されるアドレスを有する第1メモリ素子のセルに記憶される事前に計算された値を検索し、前記更新するステップが、第1メモリ素子から係数の過去の値に事前に計算された値を加算することによって係数を更新する請求項22に記載の方法。
  30. さらに、前記第1デバイスが第1メモリ素子のセルをアドレス指定し、サンプルごとに前記アドレス指定するステップが係数とサンプルに関連付けられるトークンを第1メモリ素子に出力し、前記確定するステップにおいて、前記第1デバイスがトークンとサンプルの値から構成されるアドレスを有する第1メモリ素子のセルの中に記憶される事前に計算される値を検索し、前記更新するステップにおいて、前記第1デバイスが第1メモリ素子から係数の過去の値に事前に計算された値を加算することによって係数を更新する請求項22に記載の方法。
  31. 各トークンが、それぞれのサンプル番号及び係数の数に関連付けられる関数の値がゼロであるかどうかも示し、前記更新するステップにおいて、前記第1デバイスが、トークンが関数がゼロであることを示した場合に係数の過去の値にゼロを加算することによって係数を更新する請求項22に記載の方法。
  32. 各トークンが、それぞれのサンプル番号及び係数の数に関連付けられる関数の正負符号が、正であるのか、負であるのかも示し、第1メモリ素子に記憶するステップが、関数の正負符号を考慮せずに、それぞれのサンプルとそれぞれの関数の規模の組み合わせに一致する事前に計算された値だけを記憶し、それにより第1メモリ素子によって記憶される事前に計算される値の数を削減することを備える請求項22に記載の方法。
  33. 各トークンがそれぞれのサンプル番号及び係数の数を表し、前記方法が、さらに、トークンを選択するステップと、信号の逆関数を表す係数を生成するために、前記選択するステップにおいて、前記第1デバイスが、トークンがそれぞれのサンプル番号及び係数の数に関連付けられる逆関数を表す事前に計算された値を含む第1メモリ素子の中でセルをアドレス指定するように、トークンの内容を切り替え、前記更新するステップにおいて、前記第1デバイスが第1メモリ素子から係数の過去の値に事前に計算された値を加算することによって係数を更新する請求項22に記載の方法。
  34. 前記受け取るステップが、それぞれ別個のチャネルに存在する複数の信号からサンプルを受け取り、前記確定するステップにおいて、前記第1デバイスが信号のそれぞれに関してサンプルのそれぞれを受取り、前記選択するステップからのトークンに基づき、サンプルが受け取られるときに、信号に関連付けられる各サンプルに基づく各サンプルに関連付けられる関数の係数を更新し、前記選択するステップにおいて、前記第1デバイスがチャネルの少なくとも1つから受け取られるサンプルに関してトークンを切り替え、その結果前記確定するステップにおいて、前記第1デバイスが少なくとも1つのチャネルに関して信号の逆関数を表す係数を生成する請求項22に記載の方法。
  35. さらに、サンプルのそれぞれを、それらがメモリ素子に受け取られると記憶するステップを備える請求項22に記載の方法。
  36. 前記受け取るステップが受け取り、前記更新するステップにおいて、前記第1デバイスがN個のサンプル(S1〜SN)を処理した後に、前記更新するステップにおいて、前記第1デバイスが係数を出力し、N個のサンプル(S1〜SN)がすでに受け取られた後に、入力信号の新しいサンプル(SN+1)が前記受け取るステップによって受け取られると、前記方法は、さらに、前記記憶するステップに過去に記憶されていた所定の複数のサンプルの第1サンプルに基づく項を、新しいサンプルに基づいた項から差し引くステップを備え、前記更新するステップが、新しいサンプルに基づいた項と所定の複数のサンプルの第1サンプルの間の差異によって係数を更新する請求項22に記載の方法。
  37. 前記受け取るステップが受け取り、前記更新するステップにおいて、前記第1デバイスがN個のサンプルを処理した後に、前記更新するステップにおける前記第1デバイスが係数を出力し、入力信号の新しいサンプル(Sn+1)が、N個のサンプルがすでに受け取られた後に前記受け取るステップによって受け取られると、前記方法は、さらに、前記記憶するステップで過去に記憶されたN個のサンプルの第1サンプルに基づく項を、係数のそれぞれから差し引くステップを備え、前記更新するステップにおいて前記第1デバイスが新しいサンプルに基づく項を係数のそれぞれに加算する請求項22に記載の方法。
  38. 入力信号の関数がフーリエ変換である請求項22に記載の方法。
  39. 少なくとも1つの係数があり、前記受け取るステップが、サンプルのそれぞれを受取り、前記更新するステップにおける前記第1デバイスが、各サンプルに基づき関数の係数を更新し、サンプルに基づいた残りの係数を更新しない請求項22に記載の方法。
  40. 前記更新するステップが、係数が更新されるたびに係数を出力する請求項22に記載の方法。
  41. 少なくとも1つの第1および第2の係数があり、前記更新するステップにおける前記第1デバイスが、第2の係数とは異なるサンプルの数で第1の係数を更新し、その結果それぞれの係数の分解能が異なる請求項22に記載の方法。
JP2000615917A 1999-04-29 2000-04-28 離散フーリエ変換の計算 Expired - Fee Related JP4083387B2 (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US13166799P 1999-04-29 1999-04-29
US13185899P 1999-04-29 1999-04-29
US13165699P 1999-04-29 1999-04-29
US13166199P 1999-04-29 1999-04-29
US13182599P 1999-04-29 1999-04-29
US60/131,661 1999-04-29
US60/131,667 1999-04-29
US60/131,858 1999-04-29
US60/131,825 1999-04-29
US60/131,656 1999-04-29
PCT/US2000/011366 WO2000067146A1 (en) 1999-04-29 2000-04-28 Computation of discrete fourier transform

Publications (2)

Publication Number Publication Date
JP2002543524A JP2002543524A (ja) 2002-12-17
JP4083387B2 true JP4083387B2 (ja) 2008-04-30

Family

ID=27537901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000615917A Expired - Fee Related JP4083387B2 (ja) 1999-04-29 2000-04-28 離散フーリエ変換の計算

Country Status (8)

Country Link
EP (1) EP1203308A1 (ja)
JP (1) JP4083387B2 (ja)
KR (1) KR100701648B1 (ja)
CN (1) CN1218262C (ja)
AU (1) AU4976000A (ja)
IL (2) IL146183A0 (ja)
TW (1) TW472199B (ja)
WO (1) WO2000067146A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735610B1 (en) 1999-04-29 2004-05-11 Walter E. Pelton Apparatus, methods, and computer program products for determining the coefficients of a function with decreased latency
US6922712B2 (en) 2000-02-26 2005-07-26 Walter E. Pelton Apparatus, methods, and computer program products for accurately determining the coefficients of a function
EP1259900A2 (en) * 2000-02-26 2002-11-27 Walter E. Pelton Computation of discrete fourier transform
WO2001095142A2 (en) 2000-06-09 2001-12-13 Pelton Walter E Methods for reducing the number of computations in a discrete fourier transform
US6952710B2 (en) 2000-06-09 2005-10-04 Walter Eugene Pelton Apparatus, methods and computer program products for performing high speed division calculations
US7725516B2 (en) 2005-10-05 2010-05-25 Qualcomm Incorporated Fast DCT algorithm for DSP with VLIW architecture
CN113263960B (zh) * 2021-06-28 2022-08-19 太原理工大学 一种氢燃料电池汽车自适应能量管理方法

Also Published As

Publication number Publication date
CN1218262C (zh) 2005-09-07
KR100701648B1 (ko) 2007-04-02
TW472199B (en) 2002-01-11
IL146183A0 (en) 2002-07-25
JP2002543524A (ja) 2002-12-17
IL146183A (en) 2007-09-20
KR20020016777A (ko) 2002-03-06
CN1353839A (zh) 2002-06-12
WO2000067146A1 (en) 2000-11-09
EP1203308A1 (en) 2002-05-08
AU4976000A (en) 2000-11-17

Similar Documents

Publication Publication Date Title
US8005883B2 (en) Apparatus, methods, and computer program products for determining the coefficients of a function with decreased latency
CA1255394A (en) Method and circuit for performing discrete transforms
Goey et al. Accelerating number theoretic transform in GPU platform for fully homomorphic encryption
US6317770B1 (en) High speed digital signal processor
US3920978A (en) Spectrum analyzer
JP4083387B2 (ja) 離散フーリエ変換の計算
JP2005174077A (ja) 関数演算方法及び関数演算回路
US6728742B1 (en) Data storage patterns for fast fourier transforms
JPH0644290A (ja) 高速フーリエ変換を行うための方法および装置
US6460061B1 (en) 2-dimensional discrete cosine transform using a polynomial transform
EP1447752A2 (en) Method and system for multi-processor FFT/IFFT with minimum inter-processor data communication
EP1426872A2 (en) Linear scalable FFT/IFFT computation in a multi-processor system
US6907439B1 (en) FFT address generation method and apparatus
EP1538533A2 (en) Improved FFT/IFFT processor
US6976047B1 (en) Skipped carry incrementer for FFT address generation
Muqri et al. A Taste of Java: Discrete and Fast Fourier Transforms
RU2239867C2 (ru) Устройство, способы и компьютерные программные продукты для определения коэффициентов функции с уменьшенной задержкой
Du Pont et al. Hardware Acceleration of the Prime-Factor and Rader NTT for BGV Fully Homomorphic Encryption
Potts et al. Numerical stability of fast trigonometric transforms-a worst case study
JP4248027B2 (ja) データ要素の系列を変換する装置
WO2018170400A1 (en) Apparatus and methods of providing an efficient radix-r fast fourier transform
TW201423438A (zh) 數位訊號處理裝置及其處理方法
JP2002504250A (ja) データ要素の系列を変換する装置
Muniappan et al. Walsh spectrum measurement in natural, dyadic, and sequency ordering
JPH0535773A (ja) ベクトル除算方式とその装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060123

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060912

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061211

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071226

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: 20080125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140222

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees