JP3821316B2 - 演算装置および方法 - Google Patents
演算装置および方法 Download PDFInfo
- Publication number
- JP3821316B2 JP3821316B2 JP20696696A JP20696696A JP3821316B2 JP 3821316 B2 JP3821316 B2 JP 3821316B2 JP 20696696 A JP20696696 A JP 20696696A JP 20696696 A JP20696696 A JP 20696696A JP 3821316 B2 JP3821316 B2 JP 3821316B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- calculation
- calculated
- read
- temporarily stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Description
【発明の属する技術分野】
本発明は、演算装置および方法に関し、特に、所定の順番で入力されたデータを、所定の順番に対するディジット逆順に並べ換えた後、バタフライ演算を行う、あるいは、バタフライ演算を行った後に、演算結果をディジット逆順に並べ換える演算装置および方法に関する。
【0002】
【従来の技術】
最近、放送技術においてもデジタル化が普及しつつある。図18は、オーディオ信号をデジタル化して放送するデジタルラジオ放送の1つであるDAB(Digital Audio Broadcasting)の受信装置の構成例を示している。
【0003】
チューナ92は、アンテナ91を介して受信した信号から、所定の放送局(チャンネル)の信号を選択し、その信号をA/D変換器93に出力する。A/D変換器93は、供給された信号をA/D変換し、変換後のデジタルデータをメモリ100に記憶させる。
【0004】
メモリ100は、そのデータを、ディジット逆順に並べ換えた後、FFT(Fast Fourier Transform)回路94に出力する。なお、ディジット逆順とは、所定の順番の第N番目のデータを、Nを所定の基数rに対応するr進数で表現した角ディジットの上位と下位の関係を反転させた番号に並べ換えたときの順番である。
【0005】
例えば、8個のデータを処理する場合(即ち、8点のFFT演算を行う場合)、8個のデータの順番(0乃至7)は3ビットの2進数(r=2)で表すことできる。従って、第3(011B)番目のデータは、ディジット逆順においては、第6(110B)番目のデータとなる(Bは2進数を表している)。同様にして、8個のデータf(0)乃至f(7)は、f(0),f(4),f(2),f(6),f(1),f(5),f(3),f(7)という順番(ディジット逆順)に並べ換えられる。
【0006】
FFT回路94は、FFT演算を行い、供給された時間軸上のデータを、複数の副搬送波の周波数軸上のデータに変換することにより、例えばOFDM(Orthogonal Frequency Division Multiplexing)方式で送信されたデータを復調する。なお、このFFT回路94には、時間軸上において隣接するシンボル(所定の量のデータを含む所定の期間の変調信号)との間に設けられているガード・インタバル成分が除去された後のシンボル成分が供給される。
【0007】
デインタリーブ回路および誤り訂正回路95は、FFT回路94より供給されたデータに対してデインタリーブ処理を行うとともに、誤り訂正処理を実行する。デインタリーブ回路および誤り訂正回路95により処理された信号は、その一部が復号化回路96に供給される。復号化回路96は、供給された信号を、DQPSK(Differential Quadrature Phase Shift Keying)復調し、復調したデータを、アナログのオーディオ信号に変換した後、左チャンネルのオーディオ信号と、右チャンネルのオーディオ信号を、スピーカ97,98にそれぞれ出力し、それらの信号に対応する音声を出力させる。
【0008】
また、付加データ出力回路99は、デインタリーブ回路および誤り訂正回路95より供給された信号から、番組内容、交通情報などの付加データを分離して出力する。
【0009】
図19は、FFT回路94の一構成例を示している。入力バッファ102は、低速のクロック(この受信装置のシステムクロック)で、図20に示すように、メモリ100においてディジット逆順に並び換えられたデータf(0),f(4),f(2),f(6),f(1),f(5),f(3),f(7)を記憶する。そして、入力バッファ102は、供給されたデータを、そのままの順番で、FFT回路94の高速な内部クロックに同期してセレクタ103に出力するようになされている。即ち、入力バッファ102は、受信装置の低速なシステムクロックとFFT回路94の高速な内部クロックとの間の速度の調節を行っている。
【0010】
そして、セレクタ103は、入力バッファ102からのデータを、図20のメモリ104の最も左側に示すように記憶させる。
【0011】
次に、セレクタ105は、まず、メモリ104の第0番目のデータf(0)と第1番目のデータf(4)をバタフライ演算器106に出力する。バタフライ演算器106は、それらのデータに対して第1段目のバタフライ演算を行い、演算結果をセレクタ103を介して、メモリ104に第0番目のデータR1(0)および第1番目のデータR1(1)として記憶させる。
【0012】
なお、これらの動作は、高速な内部クロックに同期して行われる。
【0013】
同様にして、メモリ104の第2番目のデータf(2)と第3番目のデータf(6)、第4番目のデータf(1)と第5番目のデータf(5)、並びに、第6番目のデータf(3)と第7番目のデータf(7)に対してバタフライ演算を行い、それらの演算結果をメモリ104の第2番目のデータR1(2)乃至第7番目のデータR1(7)としてそれぞれ記憶させる。
【0014】
次に、セレクタ105は、メモリ104の第0番目のデータR1(0)および第2番目のデータR1(2)を読み出し、バタフライ演算器106に出力する。バタフライ演算器106は、それらのデータに対して第2段目のバタフライ演算を行い、演算結果をセレクタ103を介して、メモリ104に第0番目のデータR2(0)および第2番目のデータR2(2)として記憶させる。
【0015】
さらに、セレクタ105は、メモリ104の第1番目のデータR1(1)および第3番目のデータR1(3)を読み出し、バタフライ演算器106に出力する。バタフライ演算器106は、それらのデータに対して第2段目のバタフライ演算を行い、演算結果をセレクタ103を介して、メモリ104に第1番目のデータR2(1)および第3番目のデータR2(3)として記憶させる。
【0016】
同様にして、メモリ104の第4番目のデータR1(4)および第6番目のデータR1(6)に対してバタフライ演算を行い、演算結果をメモリ104の第4番目のデータR2(4)および第6番目のデータR2(6)として記憶させ、メモリ104の第5番目のデータR1(5)および第7番目のデータR1(7)に対してバタフライ演算を行い、演算結果をメモリ104の第5番目のデータR2(5)および第7番目のデータR2(7)として記憶させる。
【0017】
次に、セレクタ105は、メモリ104の第0番目のデータR2(0)および第4番目のデータR2(4)を読み出し、バタフライ演算器106に出力する。バタフライ演算器106は、それらのデータに対して第3段目のバタフライ演算を行い、演算結果をセレクタ103を介して、メモリ104に第0番目のデータF(0)および第4番目のデータF(4)として記憶させる。
【0018】
同様にして、メモリ104の第1番目のデータR2(1)および第5番目のデータR2(5)に対して第3段目のバタフライ演算を行い、演算結果をメモリ104の第1番目のデータF(1)および第5番目のデータF(5)として記憶させる。さらに、メモリ104の第2番目のデータR2(2)および第6番目のデータR2(6)に対してバタフライ演算を行い、演算結果をメモリ104の第2番目のデータF(2)および第6番目のデータF(6)として記憶させ、メモリ104の第3番目のデータR2(3)および第7番目のデータR2(7)に対してバタフライ演算を行い、演算結果をメモリ104の第3番目のデータF(3)および第7番目のデータF(7)として記憶させる。
【0019】
次に、セレクタ105は、メモリ104に記憶されているデータF(0)乃至F(7)を高速な内部クロックに同期して出力バッファ107に出力する。
【0020】
そして、出力バッファ107は、FFT演算されたデータF(0)乃至F(7)を、低速なシステムクロックに同期してデインタリーブ回路および誤り訂正回路95に出力する。即ち、出力バッファ107は、FFT回路94の高速な内部クロックと受信装置の低速なシステムクロックとの間の速度の調節を行っている。
【0021】
【発明が解決しようとする課題】
しかしながら、上述の装置においては、メモリ100を利用して、データをディジット逆順に並べ換えた後、FFT回路94でFFT演算を行うので、メモリ100が必要となり、装置のコストが高くなるという問題を有している。
【0022】
本発明は、このような状況に鑑みてなされたもので、所定の順番で入力されたデータを、所定の順番に対するディジット逆順に並べ換えた後、バタフライ演算を行うことで、予めデータの順番をディジット逆順に並べ換えるための回路を不要とし、コストを低減することができる。
【0023】
【課題を解決するための手段】
請求項1に記載の演算装置は、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出される第1の記憶手段であって、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力される第1の記憶手段と、第1の記憶手段からのディジット逆順に出力されたデータまたは演算途中のデータが記憶される第2の記憶手段と、 第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶手段のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させる演算手段と、演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される第3の記憶手段を備えることを特徴とする。
請求項2に記載の演算装置は、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出される第1の記憶手段であって、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力される第1の記憶手段と、演算途中のデータが記憶される第2の記憶手段と、第1の記憶手段または第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶手段のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させる演算手段と、演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される第3の記憶手段を備えることを特徴とする。
【0024】
請求項5に記載の演算方法は、第1の記憶部において、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力され、第2の記憶部において、第1の記憶部からのディジット逆順に出力されたデータまたは演算途中のデータが記憶され、演算部において、第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、第3の記憶部において、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出されるステップを含むことを特徴とする。
請求項6に記載の演算方法は、第1の記憶部において、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力され、第2の記憶部において、演算途中のデータが記憶され、演算部において、第1の記憶部または第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、第3の記憶部において、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出されるステップを含むことを特徴とする。
【0025】
請求項7に記載の演算装置は、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出される第1の記憶手段と、第1の記憶手段から出力されたデータまたは演算途中のデータが記憶される第2の記憶手段と、第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶手段のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させる演算手段と、演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される第3の記憶手段であって、第2の記憶手段から入力された演算結果がディジット逆順に記憶される第3の記憶手段を備えることを特徴とする。
請求項8に記載の演算装置は、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出される第1の記憶手段と、演算途中のデータが記憶される第2の記憶手段と、第1の記憶手段または第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶手段のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させる演算手段と、演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される第3の記憶手段であって、演算手段から入力された演算結果がディジット逆順に記憶される第3の記憶手段を備えることを特徴とする。
【0026】
請求項11に記載の演算方法は、第1の記憶部において、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、第2の記憶部において、第1の記憶部から出力されたデータまたは演算途中のデータが記憶され、演算部において、第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、第3の記憶部において、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、第2の記憶部から入力された演算結果がディジット逆順に記憶されるステップを含むことを特徴とする。
請求項12に記載の演算方法は、第1の記憶部において、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、第2の記憶部において、演算途中のデータが記憶され、演算部において、第1の記憶部または第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、第3の記憶部において、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、演算部から入力された演算結果がディジット逆順に記憶されるステップを含むことを特徴とする。
【0027】
請求項1に記載の演算装置においては、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力され、第1の記憶手段からのディジット逆順に出力されたデータまたは演算途中のデータが記憶され、第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶手段のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される。
請求項2に記載の演算装置においては、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力され、演算途中のデータが記憶され、第1の記憶手段または第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶手段のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される。
【0028】
請求項5に記載の演算方法においては、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力され、第1の記憶部からのディジット逆順に出力されたデータまたは演算途中のデータが記憶され、第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される。
請求項6に記載の演算方法おいては、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力され、演算途中のデータが記憶され、第1の記憶部または第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される。
【0029】
請求項7に記載の演算装置においては、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、第1の記憶手段から出力されたデータまたは演算途中のデータが記憶され、第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶手段のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、第2の記憶手段から入力された演算結果がディジット逆順に記憶される。
請求項8に記載の演算装置においては、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、演算途中のデータが記憶され、第1の記憶手段または第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶手段のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、演算部から入力された演算結果がディジット逆順に記憶される。
【0030】
請求項11に記載の演算方法においては、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、第1の記憶部から出力されたデータまたは演算途中のデータが記憶され、第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、第2の記憶部から入力された演算結果がディジット逆順に記憶される。
請求項12に記載の演算方法においては、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、演算途中のデータが記憶され、第1の記憶部または第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、演算部から入力された演算結果がディジット逆順に記憶される。
【0031】
【発明の実施の形態】
図1は、本発明の演算装置の第1の実施例の構成を示している。本実施例は、例えば、図18の受信装置におけるメモリ100およびFFT回路94の代わりに利用されるFFT演算装置である。
【0032】
入力バッファ1(第1の記憶手段、第1の記憶部)は、所定の回路(例えば、図18のA/D変換器93)より、低速のクロック(例えば、図18の受信装置のシステムクロック)で供給されたデータ(ディジット逆順に並べ換えられていないデータ)を一時的に記憶し、本実施例の装置における高速な内部クロックに同期して、そのデータをディジット逆順にセレクタ2に出力するようになされている。即ち、入力バッファ1は、外部装置(例えば、図18の受信装置)の低速なシステムクロックと、本装置の高速な内部クロックとの間の速度の調節を行うようになされている。
【0033】
セレクタ2は、入力バッファ1より供給されたデータをメモリ4(第2の記憶手段、第2の記憶部)に記憶させるようになされている。
【0034】
また、セレクタ2は、バタフライ演算器3(演算手段)によりバタフライ演算された2つのデータ(演算結果)を、メモリ4における、演算前のデータが格納されていたアドレスにそれぞれ記憶させるようになされている。
【0035】
バタフライ演算器3は、高速な内部クロックで動作し、内蔵するROMに記憶されている回転演算子データを適宜読み出し、そのデータを利用して、セレクタ5より供給された2つのデータに対してバタフライ演算を行い、2つの演算結果をセレクタ2に出力するようになされている。
【0036】
メモリ4は、処理途中のデータを記憶するようになされている。
【0037】
セレクタ5は、メモリ4より2つのデータを読み出し、それらのデータをバタフライ演算器3に供給するようになされている。
【0038】
また、セレクタ5は、メモリ4よりデータを読み出し、そのデータを(並べ換えないで)、高速な内部クロックに同期して出力バッファ6(第3の記憶手段、第3の記憶部)に出力するようになされている。
【0039】
出力バッファ6は、高速な内部クロックに同期してセレクタ5より供給されたデータを一時的に記憶し、所定の回路(例えば、図18のデインタリーブ回路および誤り訂正回路95)に、低速のクロックに同期して出力するようになされている。即ち、出力バッファ6は、本装置の高速な内部クロックと、外部装置(例えば、図18の受信装置)の低速なシステムクロックとの間の速度の調節を行うようになされている。
【0040】
次に、図2のフローチャートおよび図3を参照して、第1の実施例の動作について説明する。
【0041】
最初に、ステップS1において、入力バッファ1は、低速のクロックで供給されたデータ(図3の最も左側に示すように、ディジット逆順に並べ換えられていないもの)を記憶し、そのデータを、ディジット逆順に、高速な内部クロックに同期してセレクタ2に出力する。
【0042】
次に、ステップS2において、セレクタ2は、図4に示すように、入力バッファ1より供給されたディジット逆順のデータを、メモリ4に記憶させる。
【0043】
そして、ステップS3においては、バタフライ演算器3は、メモリ4に記憶されているデータに対して、図3に示すように3段のバタフライ演算を、高速な内部クロックに同期して順次行っていく。
【0044】
図5は、バタフライ演算におけるデータの流れの一例を示している。セレクタ5は、メモリ4からデータを2つずつ順次読み出し、それらのデータをバタフライ演算器3に出力する。
【0045】
バタフライ演算器3は、それらのデータに対してバタフライ演算を行い、演算結果をセレクタ2に出力する。そして、セレクタ2は、セレクタ5により読み出されたデータが格納されていたメモリ4のアドレスに、演算結果を記憶させる。即ち、本実施例においては、インプレイス方式(データが格納されていたアドレスに、そのデータに対応する演算結果を上書きする方式)で、メモリ4に対してデータ(演算結果)の読み出しおよび書き込みが行われる。
【0046】
このようなバタフライ演算を、図3に示すように、3段に渡って順次行っていく。第1段目のバタフライ演算においては、第0番目のデータf(0)と第1番目のデータf(4)、第2番目のデータf(2)と第3番目のデータf(6)、第4番目のデータf(1)と第5番目のデータf(5)、並びに、第6番目のデータf(3)と第7番目のデータf(7)に対して、バタフライ演算が行われる。
【0047】
第2段目のバタフライ演算においては、第0番目のデータR1(0)と第2番目のデータR1(2)、第1番目のデータR1(1)と第3番目のデータR1(3)、第4番目のデータR1(4)と第6番目のデータR1(6)、並びに、第5番目のデータR1(5)と第7番目のデータR1(7)に対して、バタフライ演算が行われる。
【0048】
第3段目のバタフライ演算においては、第0番目のデータR2(0)と第4番目のデータR2(4)、第1番目のデータR2(1)と第5番目のデータR2(5)、第2番目のデータR2(2)と第6番目のデータR2(6)、並びに、第3番目のデータR2(3)と第7番目のデータR2(7)に対して、バタフライ演算が行われる。
【0049】
次に、ステップS4において、セレクタ5は、メモリ4より、第3段目のバタフライ演算の演算結果であるデータF(0)乃至F(7)を読み出し、そのデータを同じ順番で出力バッファ6に高速のクロックに同期して記憶させる。
【0050】
そして、ステップS5において、出力バッファ6は、そのデータを所定の回路に低速のクロックに同期して出力する。
【0051】
このようにして、速度緩衝用の入力バッファ1からメモリ4にデータを移動するときに、データをディジット逆順に並べ換え、そのデータに対してバタフライ演算を行うことによりFFTの処理を行う。なお、上述の実施例のおいては、入力バッファ1からメモリ4にデータを移動させるときに、データをディジット逆順に並べ換えるようにしているが、メモリ4から出力バッファ6にデータを移動させるときに、データをディジット逆順に並べ換えるようにしてもよい。
【0052】
なお、上述の動作は、時間間引き型のアルゴリズムに従った場合のものであり、次に、周波数間引き型のアルゴリズムに従った場合の動作について、図6を参照して説明する。
【0053】
セレクタ2は、入力バッファ1からデータを読み出し、ディジット逆順にせずに、そのままの順番でメモリ4に記憶させる。
【0054】
そして、3段のバタフライ演算のうちの第1段目のバタフライ演算においては、第0番目のデータf(0)と第4番目のデータf(4)、第1番目のデータf(1)と第5番目のデータf(5)、第2番目のデータf(2)と第6番目のデータf(6)、並びに、第3番目のデータf(3)と第7番目のデータf(7)に対して、バタフライ演算が行われる。
【0055】
第2段目のバタフライ演算においては、第0番目のデータR1(0)と第2番目のデータR1(2)、第1番目のデータR1(1)と第3番目のデータR1(3)、第4番目のデータR1(4)と第6番目のデータR1(6)、並びに、第5番目のデータR1(5)と第7番目のデータR1(7)に対して、バタフライ演算が行われる。
【0056】
第3段目のバタフライ演算においては、第0番目のデータR2(0)と第1番目のデータR2(1)、第2番目のデータR2(2)と第3番目のデータR2(3)、第4番目のデータR2(4)と第5番目のデータR2(5)、並びに、第6番目のデータR2(6)と第7番目のデータR2(7)に対して、バタフライ演算が行われる。
【0057】
3段のバタフライ演算が終了した後、セレクタ5は、図7に示すように、メモリ4より、第3段目のバタフライ演算の演算結果であるデータF(0),F(4),F(2),F(6),F(1),F(5),F(3),F(7)を読み出し、そのデータをディジット逆順で(即ち、F(0),F(1),・・・,F(7)の順番で)出力バッファ6に記憶させる。
【0058】
以上のように、3段のバタフライ演算の終了した後、メモリ4から出力バッファ6にデータを移動させるとき、データをディジット逆順に並べ換える。なお、上述の実施例のおいては、メモリ4から出力バッファ6にデータを移動させるとき、データをディジット逆順に並べ換えるようにしているが、入力バッファ1からメモリ4にデータを移動させるときに、データをディジット逆順に並べ換えるようにしてもよい。
【0059】
図8は、本発明の演算装置の第2の実施例の構成を示している。本実施例は、第1の実施例と同様に、例えば、図18の受信装置におけるメモリ100およびFFT回路94の代わりに利用されるFFT演算装置である。
【0060】
入力バッファ21(第1の記憶手段、第1の記憶部)は、所定の回路(例えば、図18のA/D変換器93)より、低速のクロック(例えば、図18の受信装置のシステムクロック)で供給されたデータ(ディジット逆順に並べ換えられていないデータ)を一時的に記憶し、本実施例の装置における高速な内部クロックに同期して、そのデータをセレクタ22に出力するようになされている。即ち、入力バッファ21は、外部装置(例えば、図18の受信装置)の低速なシステムクロックと、本装置の高速な内部クロックとの間の速度の調節を行うようになされている。
【0061】
セレクタ22は、バタフライ演算を行うデータとして、そのデータの順番に対応するディジット逆順における順番のデータを入力バッファ21から読み出し、バタフライ演算器24(演算手段)に出力するようになされている。
【0062】
また、セレクタ22は、メモリ23(第2の記憶手段)より2つのデータを読み出し、それらのデータをバタフライ演算器24に供給するようになされている。
【0063】
メモリ23は、処理途中のデータを記憶するようになされている。
【0064】
バタフライ演算器24は、高速な内部クロックで動作し、内蔵するROMに記憶されている回転演算子データを適宜読み出し、そのデータを利用して、供給された2つのデータに対してバタフライ演算を行うようになされている。
【0065】
セレクタ25は、バタフライ演算器24により演算された2つのデータ(演算結果)を、演算前の2つのデータが格納されていたメモリ23のアドレスにそれぞれ記憶させるようになされている。
【0066】
また、セレクタ25は、バタフライ演算器24により演算されたデータを(並べ換えないで)、高速な内部クロックに同期して出力バッファ26(第3の記憶手段、第2の記憶部)に出力するようになされている。
【0067】
出力バッファ26は、セレクタ25より高速な内部クロックに同期して供給されたデータを一時的に記憶し、所定の回路(例えば、図18のデインタリーブ回路および誤り訂正回路95)に、低速のクロックに同期して出力するようになされている。即ち、出力バッファ26は、本装置の高速な内部クロックと、外部装置(例えば、図18の受信装置)の低速なシステムクロックとの間の速度の調節を行うようになされている。
【0068】
次に、図9のフローチャートおよび図10を参照して、第2の実施例の動作について説明する。
【0069】
最初に、ステップS21において、入力バッファ21は、図10の最も左側に示すように、低速のクロックで供給されたデータ(ディジット逆順に並べ換えられていないもの)を記憶し、バタフライ演算を行う2つのデータとして、そのデータの順番に対応するディジット逆順における順番のデータを、高速な内部クロックに同期してセレクタ22に出力する。例えば、第0番目のデータと第1番目のデータに対してバタフライ演算を行う場合、入力バッファ21は、第0番目のデータf(0)と第4番目のデータf(4)を出力する。
【0070】
次に、ステップS22においては、供給されたデータに対して第1段目のバタフライ演算が行われる。セレクタ22は、図10および図11に示すように、入力バッファ21より供給されたデータを、バタフライ演算器24に出力する。そして、バタフライ演算器24により処理されたデータ(演算結果)は、セレクタ25を介してメモリ23に記憶される。
【0071】
即ち、図10に示すように、入力バッファ21の第0番目のデータf(0)と第4番目のデータf(4)が読み出され、バタフライ演算が行われ、演算結果がメモリ23の第0番目のデータR1(0)と第1番目のデータR1(1)として記憶される。
【0072】
なお、これらの動作は、高速な内部クロックに同期して行われる。
【0073】
次に、図10および図11に示すように、入力バッファ21の第2番目のデータf(2)と第6番目のデータf(6)が読み出され、バタフライ演算が行われ、演算結果がメモリ23の第2番目のデータR1(2)と第3番目のデータR1(3)として記憶される。
【0074】
そして、入力バッファ21の第1番目のデータf(1)と第5番目のデータf(5)が読み出され、バタフライ演算が行われ、演算結果がメモリ23の第4番目のデータR1(4)と第5番目のデータR1(5)として記憶される。
【0075】
最後に、入力バッファ21の第3番目のデータf(3)と第7番目のデータf(7)が読み出され、バタフライ演算が行われ、演算結果がメモリ23の第6番目のデータR1(6)と第7番目のデータR1(7)として記憶される。
【0076】
次に、ステップS23においては、第2段目のバタフライ演算が行われる。セレクタ22は、メモリ23の2つのデータを読み出し、それらのデータをバタフライ演算器24に供給する。そして、バタフライ演算器24は、それらのデータに対してバタフライ演算を行い、演算結果をセレクタ25に出力する。セレクタ25は、演算結果を、演算前のデータが記憶されていたメモリ23のアドレスに記憶させる。
【0077】
第2段目のバタフライ演算においては、第0番目のデータR1(0)と第2番目のデータR1(2)、第1番目のデータR1(1)と第3番目のデータR1(3)、第4番目のデータR1(4)と第6番目のデータR1(6)、並びに、第5番目のデータR1(5)と第7番目のデータR1(7)に対して、バタフライ演算が行われる。
【0078】
そして、ステップS24においては、第3段目のバタフライ演算が行われる。セレクタ22は、メモリ23の2つのデータを読み出し、それらのデータをバタフライ演算器24に供給する。そして、バタフライ演算器24は、それらのデータに対してバタフライ演算を行い、演算結果をセレクタ25に出力する。セレクタ25は、演算結果を、演算前のデータと同じ順番で、出力バッファ26に記憶させる。
【0079】
第3段目のバタフライ演算においては、第0番目のデータR2(0)と第4番目のデータR2(4)に対してバタフライ演算を行い、演算結果F(0),F(4)を出力バッファ26に記憶させ、第1番目のデータR2(1)と第5番目のデータR2(5)に対してバタフライ演算を行い、演算結果F(1),F(5)を出力バッファ26に記憶させる。さらに、第2番目のデータR2(2)と第6番目のデータR2(6)に対してバタフライ演算を行い、演算結果F(2),F(6)を出力バッファ26に記憶させ、第3番目のデータR2(3)と第7番目のデータR2(7)に対してバタフライ演算を行い、演算結果F(3),F(7)を出力バッファ26に記憶させる。
【0080】
そして、ステップS25において、出力バッファ26は、そのデータを所定の回路に低速のクロックに同期して出力する。
【0081】
このようにして、入力バッファ21が、バタフライ演算を行うデータとして、そのデータの順番に対応するディジット逆順における順番のデータを、セレクタ22を介してバタフライ演算器24に出力し、そのデータに対してFFTの処理を行う。なお、上述の実施例のおいては、入力バッファ21がディジット逆順における順番のデータをバタフライ演算器24に出力するようにしているが、その代わりに、バタフライ演算器24が、出力バッファ26にデータを出力するときに、データをディジット逆順に並べ換えるようにしてもよい。
【0082】
なお、上述の動作は、時間間引き型のアルゴリズムに従った場合のものであり、次に、周波数間引き型のアルゴリズムに従った場合の動作について、図12を参照して説明する。
【0083】
セレクタ22は、入力バッファ21から、第1段目のバタフライ演算を行う2つのデータを(ディジット逆順ではなく、そのままの順番で)読み出し、バタフライ演算器24に出力する。
【0084】
周波数間引き型のアルゴリズムにおける、第1段目のバタフライ演算においては、第0番目のデータf(0)と第4番目のデータf(4)、第1番目のデータf(1)と第5番目のデータf(5)、第2番目のデータf(2)と第6番目のデータf(6)、並びに、第3番目のデータf(3)と第7番目のデータf(7)に対して、バタフライ演算が行われる。
【0085】
第2段目のバタフライ演算においては、第0番目のデータR1(0)と第2番目のデータR1(2)、第1番目のデータR1(1)と第3番目のデータR1(3)、第4番目のデータR1(4)と第6番目のデータR1(6)、並びに、第5番目のデータR1(5)と第7番目のデータR1(7)に対して、バタフライ演算が行われる。
【0086】
第3段目のバタフライ演算においては、図13に示すように、第0番目のデータR2(0)と第1番目のデータR2(1)に対してバタフライ演算を行い、演算結果を、ディジット逆順にして出力バッファ26に第0番目のデータF(0)と第4番目のデータF(4)として記憶させ、第2番目のデータR2(2)と第3番目のデータR2(3)に対してバタフライ演算を行い、演算結果を、ディジット逆順にして出力バッファ26に第2番目のデータF(2)と第6番目のデータF(6)として出力バッファ26に記憶させる。
【0087】
さらに、第4番目のデータR2(4)と第5番目のデータR2(5)に対してバタフライ演算を行い、演算結果を、ディジット逆順にして出力バッファ26に第1番目のデータF(1)と第5番目のデータF(5)として出力バッファ26に記憶させ、第6番目のデータR2(6)と第7番目のデータR2(7)に対してバタフライ演算を行い、演算結果を、ディジット逆順にして出力バッファ26に第3番目のデータF(3)と第7番目のデータF(7)として出力バッファ26に記憶させる。
【0088】
このように、第3段目のバタフライ演算が終了し、出力バッファ26に演算結果を記憶させるとき、データをディジット逆順に並べ換える。なお、上述の実施例のおいては、出力バッファ26に演算結果を記憶させるとき、データをディジット逆順に並べ換えるようにしているが、その代わりに、入力バッファ21がディジット逆順における順番のデータをバタフライ演算器24に出力するようにしてもよい。
【0089】
以上のように、第2の実施例においては、入力バッファ21からバタフライ演算器24にデータが供給されるとき、または、第3段目のバタフライ演算が終了し、バタフライ演算器24から出力バッファ26に演算結果が出力されるときに、データがディジット逆順に変換されるので、FFTの処理を、より速く行うことができる。
【0090】
次に、本発明の第3の実施例について説明する。第3の実施例の構成は、第2の実施例の構成と同一であるので、その説明を省略する。
【0091】
次に、図14を参照して、第3の実施例の動作について説明する。
【0092】
入力バッファ21は、全データの半分より多くのデータ(今の場合、f(0)乃至f(4))が供給されると、バタフライ演算を行う2つのデータの出力を開始する(今の場合、最初に、f(0)とf(4)が出力される)。
【0093】
セレクタ22は、入力バッファ21より供給された2つのデータをバタフライ演算器24に出力する。
【0094】
そして、バタフライ演算器24は、供給されたデータに対して第1段目のバタフライ演算を行う。入力バッファ21は、図15に示すように、バタフライ演算を行う2つのデータとして、そのデータの順番に対応するディジット逆順における順番のデータを、セレクタ22を介してバタフライ演算器24に出力する。このとき、入力バッファ21は、バタフライ演算を行う2つのデータとして、より小さい順番のデータを含む2つのデータから順次出力していく。即ち、本実施例においては、入力バッファ21は、f(0)とf(4),f(1)とf(5),f(2)とf(6),f(3)とf(7)の順番で、データf(0)乃至f(7)を出力する。
【0095】
そして、バタフライ演算器24により処理されたデータは、セレクタ25を介してメモリ23に記憶される。
【0096】
最初に、入力バッファ21の第0番目のデータf(0)と第4番目のデータf(4)が読み出され、バタフライ演算が行われ、演算結果がメモリ23の第0番目のデータR1(0)と第1番目のデータR1(1)として記憶される。
【0097】
次に、第3の実施例においては、図14に示すように、入力バッファ21の第1番目のデータf(1)と第5番目のデータf(5)が読み出され、バタフライ演算が行われ、演算結果がメモリ23の第4番目のデータR1(4)と第5番目のデータR1(5)として記憶される。
【0098】
そして、入力バッファ21の第2番目のデータf(2)と第6番目のデータf(6)が読み出され、バタフライ演算が行われ、演算結果がメモリ23の第2番目のデータR1(2)と第3番目のデータR1(3)として記憶される。
【0099】
最後に、入力バッファ21の第3番目のデータf(3)と第7番目のデータf(7)が読み出され、バタフライ演算が行われ、演算結果がメモリ23の第6番目のデータR1(6)と第7番目のデータR1(7)として記憶される。
【0100】
第2段目のバタフライ演算、第3段目のバタフライ演算、および、出力バッファ26へのデータの出力は、第2の実施例と同様であるので、その説明を省略する。
【0101】
このようにすることにより、入力バッファ21に全データの半分より多くのデータが供給されたとき処理を開始し、処理を順次進めることができるので、データの入力時の待ち時間(システムディレイ)を減少させることができ、FFTの処理を高速に行うことができる。なお、第2の実施例と同様に、入力バッファ21がディジット逆順における順番のデータをバタフライ演算器24に出力する代わりに、バタフライ演算器24が、出力バッファ26にデータを出力するときに、データをディジット逆順に並べ換えるようにしてもよい。
【0102】
なお、上述の動作は、時間間引き型のアルゴリズムに従った場合のものであり、次に、周波数間引き型のアルゴリズムに従った場合の動作について、図16を参照して説明する。
【0103】
入力バッファ21からバタフライ演算器24へのデータの入力、第1段目のバタフライ演算、および、第2段目のバタフライ演算は、第2の実施例と同様であるので、その説明を省略する。
【0104】
そして、第3段目のバタフライ演算においては、図17に示すように、最初に、第0番目のデータR2(0)と第1番目のデータR2(1)に対してバタフライ演算を行い、演算結果を、ディジット逆順にして出力バッファ26に第0番目のデータF(0)と第4番目のデータF(4)として記憶させ、次に、第4番目のデータR2(4)と第5番目のデータR2(5)に対してバタフライ演算を行い、演算結果を、ディジット逆順にして出力バッファ26に第1番目のデータF(1)と第5番目のデータF(5)として出力バッファ26に記憶させる。
【0105】
そして、第2番目のデータR2(2)と第3番目のデータR2(3)に対してバタフライ演算を行い、演算結果を、ディジット逆順にして出力バッファ26に第2番目のデータF(2)と第6番目のデータF(6)として出力バッファ26に記憶させ、最後に、第3番目のデータR2(3)と第7番目のデータR2(7)に対してバタフライ演算を行い、演算結果を、ディジット逆順にして出力バッファ26に第3番目のデータF(3)と第7番目のデータF(7)として出力バッファ26に記憶させる。
【0106】
このように、第3段目のバタフライ演算が終了し、出力バッファ26に演算結果を記憶させるとき、データをディジット逆順に並べ換える。
【0107】
以上のようにすることにより、演算結果F(0)乃至F(3)が、出力バッファ26に順次記憶され、同時に、演算結果F(4)乃至F(7)が、出力バッファ26に順次記憶されるので、第0番目の演算結果F(0)が記憶されたとき、出力バッファ26からのデータの出力を開始し、データの出力を順次行うことができ、データ(演算結果)の出力時における待ち時間を減少させることができ、FFTの処理を速く行うことができる。なお、第2の実施例と同様に、バタフライ演算器24が、出力バッファ26にデータを出力するときにデータをディジット逆順に並べ換える代わりに、入力バッファ21がディジット逆順における順番のデータをバタフライ演算器24に出力するようにしてもよい。
【0108】
なお、上記実施例においては、8個のデータ(f(0)乃至f(7))に対してFFTを行っているが、勿論、他の数のデータに対してFFTを行うようにすることもできる。
【0109】
また、上記実施例においては、基数N(即ち、バタフライ演算器3,24が1回の演算で処理するデータの数)を2(N=2)としているが、基数Nを2に限定するものではない。
【0110】
【発明の効果】
以上のごとく、請求項1に記載の演算装置および請求項5に記載の演算方法によれば、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力され、第1の記憶部からのディジット逆順に出力されたデータまたは演算途中のデータが記憶され、第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出されるようにしたので、データを入力する前に、そのデータをディジット逆順に並べ換える必要がなく、ディジット逆順に並べ換えるためのメモリなどが不要となり、装置のコストを低減することができる。
請求項2に記載の演算装置および請求項6に記載の演算方法によれば、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、所定の順番に対するディジット逆順に出力され、演算途中のデータが記憶され、第1の記憶部または第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出されるようにしたので、データを入力する前に、そのデータをディジット逆順に並べ換える必要がなく、ディジット逆順に並べ換えるためのメモリなどが不要となり、装置のコストを低減することができる。
【0111】
請求項7に記載の演算装置および請求項11に記載の演算方法によれば、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、第1の記憶部から出力されたデータまたは演算途中のデータが記憶され、第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、第2の記憶部から入力された演算結果がディジット逆順に記憶されるようにしたので、データを出力した後に、そのデータをディジット逆順に並べ換えるためのメモリなどが不要となり、装置のコストを低減することができる。
請求項8に記載の演算装置および請求項12に記載の演算方法によれば、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、演算途中のデータが記憶され、第1の記憶部または第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、第2の記憶部のN個のデータを読み出したアドレスにN個の演算結果をそれぞれ記憶させ、演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、演算部から入力された演算結果がディジット逆順に記憶されるようにしたので、データを出力した後に、そのデータをディジット逆順に並べ換えるためのメモリなどが不要となり、装置のコストを低減することができる。
【図面の簡単な説明】
【図1】本発明の演算装置の第1の実施例の構成を示すブロック図である。
【図2】図1に示す第1の実施例の動作を説明するフローチャートである。
【図3】時間間引き型のアルゴリズムを利用した場合の、第1の実施例におけるシグナルフローを説明する図である。
【図4】図1のセレクタ2の動作を説明する図である。
【図5】バタフライ演算におけるデータの流れの一例を示す図である。
【図6】周波数間引き型のアルゴリズムを利用した場合の、第1の実施例におけるシグナルフローを説明する図である。
【図7】図1のセレクタ5の動作を説明する図である。
【図8】本発明の演算装置の第2の実施例の構成を示すブロック図である。
【図9】図8に示す第2の実施例の動作を説明するフローチャートである。
【図10】時間間引き型のアルゴリズムを利用した場合の、第2の実施例におけるシグナルフローを説明する図である。
【図11】時間間引き型のアルゴリズムを利用した場合の、図8のセレクタ22およびセレクタ25の動作を説明する図である。
【図12】周波数間引き型のアルゴリズムを利用した場合の、第2の実施例におけるシグナルフローを説明する図である。
【図13】周波数間引き型のアルゴリズムを利用した場合の、図8のセレクタ22およびセレクタ25の動作を説明する図である。
【図14】時間間引き型のアルゴリズムを利用した場合の、第3の実施例におけるシグナルフローを説明する図である。
【図15】時間間引き型のアルゴリズムを利用した場合の、セレクタ22およびセレクタ25の動作を説明する図である。
【図16】周波数間引き型のアルゴリズムを利用した場合の、第3の実施例におけるシグナルフローを説明する図である。
【図17】周波数間引き型のアルゴリズムを利用した場合の、セレクタ22およびセレクタ25の動作を説明する図である。
【図18】DABの受信装置の一構成例を示すブロック図である。
【図19】従来の演算装置である図18のFFT回路94の一構成例を示すブロック図である。
【図20】図19のFFT回路94におけるシグナルフローを説明する図である。
【符号の説明】
1 入力バッファ, 2 セレクタ, 3 バタフライ演算器, 4 メモリ, 5 セレクタ, 6 出力バッファ, 21 入力バッファ, 22 セレクタ, 23 メモリ, 24 バタフライ演算器, 25 セレクタ, 26出力バッファ, 91 アンテナ, 92 チューナ, 93 A/D変換器, 94 FFT回路, 95 デインタリーブ回路および誤り訂正回路 96復号化回路, 97,98 スピーカ, 99 付加データ出力回路, 100 メモリ, 102 入力バッファ, 103 セレクタ, 104 メモリ, 105 セレクタ, 106 バタフライ演算器, 107 出力バッファ
Claims (12)
- 演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出される第1の記憶手段であって、所定の順番で入力され記憶されたデータが、前記所定の順番に対するディジット逆順に出力される第1の記憶手段と、
前記第1の記憶手段からのディジット逆順に出力されたデータまたは演算途中のデータが記憶される第2の記憶手段と、
前記第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、前記第2の記憶手段の前記N個のデータを読み出したアドレスに前記N個の演算結果をそれぞれ記憶させる演算手段と、
前記演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される第3の記憶手段と
を備えることを特徴とする演算装置。 - 演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出される第1の記憶手段であって、所定の順番で入力され記憶されたデータが、前記所定の順番に対するディジット逆順に出力される第1の記憶手段と、
演算途中のデータが記憶される第2の記憶手段と、
前記第1の記憶手段または前記第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、前記第2の記憶手段の前記N個のデータを読み出したアドレスに前記N個の演算結果をそれぞれ記憶させる演算手段と、
前記演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される第3の記憶手段と
を備えることを特徴とする演算装置。 - 前記演算手段は、時間間引き型アルゴリズムで、バタフライ演算を行う
ことを特徴とする請求項1または請求項2に記載の演算装置。 - 前記第1の記憶手段は、演算される所定の数の前記N個のデータの組を、前記所定の順番における順番の小さいデータを含む前記N個のデータの組から順次、前記演算手段に対して出力する
ことを特徴とする請求項1または請求項2に記載の演算装置。 - 第1の記憶部において、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、前記所定の順番に対するディジット逆順に出力され、
第2の記憶部において、前記第1の記憶部からのディジット逆順に出力されたデータまたは演算途中のデータが記憶され、
演算部において、前記第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、前記第2の記憶部の前記N個のデータを読み出したアドレスに前記N個の演算結果をそれぞれ記憶させ、
第3の記憶部において、前記演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される
ステップを含むことを特徴とする演算方法。 - 第1の記憶部において、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、所定の順番で入力され記憶されたデータが、前記所定の順番に対するディジット逆順に出力され、
第2の記憶部において、演算途中のデータが記憶され、
演算部において、前記第1の記憶部または前記第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、前記第2の記憶部の前記N個のデータを読み出したアドレスに前記N個の演算結果をそれぞれ記憶させ、
第3の記憶部において、前記演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される
をステップを含むことを特徴とする演算方法。 - 演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出される第1の記憶手段と、
前記第1の記憶手段から出力されたデータまたは演算途中のデータが記憶される第2の記憶手段と、
前記第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、前記第2の記憶手段の前記N個のデータを読み出したアドレスに前記N個の演算結果をそれぞれ記憶させる演算手段と、
前記演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される第3の記憶手段であって、前記第2の記憶手段から入力された前記演算結果がディジット逆順に記憶される第3の記憶手段と
を備えることを特徴とする演算装置。 - 演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出される第1の記憶手段と、
演算途中のデータが記憶される第2の記憶手段と、
前記第1の記憶手段または前記第2の記憶手段から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、前記第2の記憶手段の前記N個のデータを読み出したアドレスに前記N個の演算結果をそれぞれ記憶させる演算手段と、
前記演算手段により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出される第3の記憶手段であって、前記演算手段から入力された前記演算結果がディジット逆順に記憶される第3の記憶手段と
を備えることを特徴とする演算装置。 - 前記演算手段は、周波数間引き型アルゴリズムで、バタフライ演算を行う
ことを特徴とする請求項7または請求項8に記載の演算装置。 - 前記第3の記憶手段は、所定の数の前記N個の演算結果の組を、前記ディジット逆順における順番の小さいデータを含む前記N個の演算結果の組から順次記憶する
ことを特徴とする請求項7または請求項8に記載の演算装置。 - 第1の記憶部において、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、
第2の記憶部において、前記第1の記憶部から出力されたデータまたは演算途中のデータが記憶され、
演算部において、前記第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、前記第2の記憶部の前記N個のデータを読み出したアドレスに前記N個の演算結果をそれぞれ記憶させ、
第3の記憶部において、前記演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、前記第2の記憶部から入力された前記演算結果がディジット逆順に記憶される
ステップを含むことを特徴とする演算方法。 - 第1の記憶部において、演算されるべきデータが低速のクロックで書き込まれて一時的に記憶され、この一時的に記憶された演算されるべきデータが高速のクロックで読み出され、
第2の記憶部において、演算途中のデータが記憶され、
演算部において、前記第1の記憶部または前記第2の記憶部から、所定の基数に対応するN個の演算されるデータを読み出し、それらのデータに対してバタフライ演算を行い、前記第2の記憶部の前記N個のデータを読み出したアドレスに前記N個の演算結果をそれぞれ記憶させ、
第3の記憶部において、前記演算部により演算されたデータが高速のクロックで書き込まれて一時的に記憶され、この一時的に記憶されたデータが低速のクロックで読み出され、前記演算部から入力された前記演算結果がディジット逆順に記憶される
ステップを含むことを特徴とする演算方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20696696A JP3821316B2 (ja) | 1996-08-06 | 1996-08-06 | 演算装置および方法 |
EP97305908A EP0827087A3 (en) | 1996-08-06 | 1997-08-04 | Computation apparatus and method |
KR1019970037206A KR100466739B1 (ko) | 1996-08-06 | 1997-08-04 | 연산장치및방법 |
US08/905,923 US6058409A (en) | 1996-08-06 | 1997-08-05 | Computation apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20696696A JP3821316B2 (ja) | 1996-08-06 | 1996-08-06 | 演算装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1049518A JPH1049518A (ja) | 1998-02-20 |
JP3821316B2 true JP3821316B2 (ja) | 2006-09-13 |
Family
ID=16531959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20696696A Expired - Fee Related JP3821316B2 (ja) | 1996-08-06 | 1996-08-06 | 演算装置および方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6058409A (ja) |
EP (1) | EP0827087A3 (ja) |
JP (1) | JP3821316B2 (ja) |
KR (1) | KR100466739B1 (ja) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69837299T2 (de) * | 1997-01-22 | 2007-06-28 | Matsushita Electric Industrial Co., Ltd., Kadoma | System und Verfahren zur schnellen Fourier-Transformation |
US6351758B1 (en) * | 1998-02-13 | 2002-02-26 | Texas Instruments Incorporated | Bit and digit reversal methods |
EP0988604A1 (en) * | 1998-04-09 | 2000-03-29 | Koninklijke Philips Electronics N.V. | Device for converting series of data elements |
EP0988605A2 (en) * | 1998-04-09 | 2000-03-29 | Koninklijke Philips Electronics N.V. | Device for converting series of data elements |
US6490672B1 (en) * | 1998-05-18 | 2002-12-03 | Globespanvirata, Inc. | Method for computing a fast fourier transform and associated circuit for addressing a data memory |
US6609140B1 (en) * | 1999-11-30 | 2003-08-19 | Mercury Computer Systems, Inc. | Methods and apparatus for fast fourier transforms |
KR20020036606A (ko) * | 2000-11-10 | 2002-05-16 | 윤종용 | 오에프디엠 출력 비트 신호 보상을 위한 고속 퓨리에 변환장치 및 방법 |
US6552625B2 (en) | 2001-06-01 | 2003-04-22 | Microchip Technology Inc. | Processor with pulse width modulation generator with fault input prioritization |
US20030023836A1 (en) * | 2001-06-01 | 2003-01-30 | Michael Catherwood | Shadow register array control instructions |
US6601160B2 (en) | 2001-06-01 | 2003-07-29 | Microchip Technology Incorporated | Dynamically reconfigurable data space |
US6934728B2 (en) * | 2001-06-01 | 2005-08-23 | Microchip Technology Incorporated | Euclidean distance instructions |
US20030005269A1 (en) * | 2001-06-01 | 2003-01-02 | Conner Joshua M. | Multi-precision barrel shifting |
US20020184566A1 (en) * | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
US6937084B2 (en) * | 2001-06-01 | 2005-08-30 | Microchip Technology Incorporated | Processor with dual-deadtime pulse width modulation generator |
US6728856B2 (en) | 2001-06-01 | 2004-04-27 | Microchip Technology Incorporated | Modified Harvard architecture processor having program memory space mapped to data memory space |
US6975679B2 (en) * | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Configuration fuses for setting PWM options |
US6976158B2 (en) * | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US20030005268A1 (en) * | 2001-06-01 | 2003-01-02 | Catherwood Michael I. | Find first bit value instruction |
US6952711B2 (en) * | 2001-06-01 | 2005-10-04 | Microchip Technology Incorporated | Maximally negative signed fractional number multiplication |
US7007172B2 (en) * | 2001-06-01 | 2006-02-28 | Microchip Technology Incorporated | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US20030028696A1 (en) * | 2001-06-01 | 2003-02-06 | Michael Catherwood | Low overhead interrupt |
US7003543B2 (en) * | 2001-06-01 | 2006-02-21 | Microchip Technology Incorporated | Sticky z bit |
US6985986B2 (en) * | 2001-06-01 | 2006-01-10 | Microchip Technology Incorporated | Variable cycle interrupt disabling |
US7020788B2 (en) * | 2001-06-01 | 2006-03-28 | Microchip Technology Incorporated | Reduced power option |
US6604169B2 (en) | 2001-06-01 | 2003-08-05 | Microchip Technology Incorporated | Modulo addressing based on absolute offset |
US7467178B2 (en) * | 2001-06-01 | 2008-12-16 | Microchip Technology Incorporated | Dual mode arithmetic saturation processing |
US6556046B1 (en) * | 2001-07-17 | 2003-04-29 | Microchip Technology Incorporated | Functional pathway configuration at a system/IC interface |
US6552567B1 (en) | 2001-09-28 | 2003-04-22 | Microchip Technology Incorporated | Functional pathway configuration at a system/IC interface |
US20040021483A1 (en) * | 2001-09-28 | 2004-02-05 | Brian Boles | Functional pathway configuration at a system/IC interface |
JP3879681B2 (ja) * | 2002-05-20 | 2007-02-14 | ヤマハ株式会社 | 楽音信号生成装置 |
JP2005309474A (ja) * | 2002-06-28 | 2005-11-04 | Nokia Corp | 離散コサイン変換(dct)を実行するために用いるdctプロセッサ |
US7353146B2 (en) * | 2003-12-22 | 2008-04-01 | The Mathworks, Inc. | Block processing of input data in graphical programming environments |
JP2006050190A (ja) * | 2004-08-04 | 2006-02-16 | Matsushita Electric Ind Co Ltd | 受信装置及び送信装置 |
US7834876B2 (en) * | 2004-12-28 | 2010-11-16 | The Mathworks, Inc. | Providing graphic generating capabilities for a model based development process |
JP2006260411A (ja) * | 2005-03-18 | 2006-09-28 | Japan Radio Co Ltd | 信号処理装置およびそれを利用した通信機器 |
US7685220B2 (en) * | 2005-12-14 | 2010-03-23 | Telefonaktiebolaget L M Ericsson (Publ) | Circular fast fourier transform |
JP2007221596A (ja) * | 2006-02-17 | 2007-08-30 | Matsushita Electric Ind Co Ltd | 高速フーリエ変換装置、ofdm通信装置、及びofdm通信のサブキャリア割当方法 |
US20090172062A1 (en) * | 2007-12-31 | 2009-07-02 | Broadcom Corporation | Efficient fixed-point implementation of an fft |
EP2144172A1 (en) * | 2008-07-07 | 2010-01-13 | Mitsubishi Electric R&D Centre Europe B.V. | Computation module to compute a multi radix butterfly to be used in DTF computation |
EP2144173A1 (en) * | 2008-07-07 | 2010-01-13 | Mitsubishi Electric R&D Centre Europe B.V. | Hardware architecture to compute different sizes of DFT |
JP5549442B2 (ja) * | 2010-07-14 | 2014-07-16 | 三菱電機株式会社 | Fft演算装置 |
US8825729B1 (en) * | 2011-09-19 | 2014-09-02 | Altera Corporation | Power and bandwidth efficient FFT for DDR memory |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3617720A (en) * | 1967-09-12 | 1971-11-02 | Bell Telephone Labor Inc | Fast fourier transform using hierarchical store |
US3673399A (en) * | 1970-05-28 | 1972-06-27 | Ibm | Fft processor with unique addressing |
US3731284A (en) * | 1971-12-27 | 1973-05-01 | Bell Telephone Labor Inc | Method and apparatus for reordering data |
US3871577A (en) * | 1973-12-13 | 1975-03-18 | Westinghouse Electric Corp | Method and apparatus for addressing FFT processor |
US3943347A (en) * | 1974-11-27 | 1976-03-09 | Rca Corporation | Data processor reorder random access memory |
US4138730A (en) * | 1977-11-07 | 1979-02-06 | Communications Satellite Corporation | High speed FFT processor |
US4241411A (en) * | 1978-11-16 | 1980-12-23 | Probe Systems, Incorporated | FFT Parallel processor having mutually connected, multiple identical cards |
US4298950A (en) * | 1979-10-12 | 1981-11-03 | Westinghouse Electric Corp. | Multipoint pipeline processor for computing the discrete fourier transform |
DE3482627D1 (de) * | 1983-04-11 | 1990-08-09 | Nec Corp | Orthogonale transformation und geraet zu ihrer durchfuehrung. |
JPH0795320B2 (ja) * | 1988-10-11 | 1995-10-11 | 日本電子株式会社 | 大容量高速フーリエ変換装置 |
US5093801A (en) * | 1990-07-06 | 1992-03-03 | Rockwell International Corporation | Arrayable modular FFT processor |
WO1992018940A1 (en) * | 1991-04-18 | 1992-10-29 | Sharp Kabushiki Kaisha | Quasi radix-16 processor and method |
US5293330A (en) * | 1991-11-08 | 1994-03-08 | Communications Satellite Corporation | Pipeline processor for mixed-size FFTs |
US5694347A (en) * | 1991-12-19 | 1997-12-02 | Hughes Electronics | Digital signal processing system |
JP2950703B2 (ja) * | 1992-04-30 | 1999-09-20 | シャープ株式会社 | 高速フーリエ変換用ディジット反転のためのアドレス発生器及び反転フィールドシーケンス発生器並びにディジット反転シーケンス信号発生方法 |
US5890098A (en) * | 1996-04-30 | 1999-03-30 | Sony Corporation | Device and method for performing fast Fourier transform using a butterfly operation |
-
1996
- 1996-08-06 JP JP20696696A patent/JP3821316B2/ja not_active Expired - Fee Related
-
1997
- 1997-08-04 EP EP97305908A patent/EP0827087A3/en not_active Withdrawn
- 1997-08-04 KR KR1019970037206A patent/KR100466739B1/ko not_active IP Right Cessation
- 1997-08-05 US US08/905,923 patent/US6058409A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100466739B1 (ko) | 2005-05-18 |
JPH1049518A (ja) | 1998-02-20 |
KR19980018349A (ko) | 1998-06-05 |
US6058409A (en) | 2000-05-02 |
EP0827087A2 (en) | 1998-03-04 |
EP0827087A3 (en) | 1999-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3821316B2 (ja) | 演算装置および方法 | |
US5890098A (en) | Device and method for performing fast Fourier transform using a butterfly operation | |
US7164723B2 (en) | Modulation apparatus using mixed-radix fast fourier transform | |
EP0855657A2 (en) | Fast fourier transforming apparatus and method | |
WO2013057856A1 (ja) | 適応等化器 | |
CN100558020C (zh) | 副载波重定位和保护间隔插入的多载波传输系统及方法 | |
JPH08320857A (ja) | フーリエ変換演算装置および方法 | |
EP0953175B1 (en) | Method and apparatus for fft computation | |
CA2269464A1 (en) | A device and method for calculating fft | |
JP4160564B2 (ja) | 処理速度の向上した高速フーリエ変換装置およびその処理方法 | |
JP3668356B2 (ja) | 高速フーリエ変換演算回路 | |
US20020165683A1 (en) | Fast fourier transform apparatus | |
JPH08320858A (ja) | フーリエ変換演算装置および方法 | |
KR20050081217A (ko) | 메모리를 반감하는 고속 푸리에 변환 프로세서 및 그 방법 | |
US20080320069A1 (en) | Variable length fft apparatus and method thereof | |
JP3951066B2 (ja) | Fft演算装置およびfft演算方法 | |
JP3791561B2 (ja) | 演算方法および演算装置 | |
JP3065979B2 (ja) | 高速フーリエ変換装置および方法、可変ビットリバース回路、逆高速フーリエ変換装置および方法、並びにofdm受信および送信装置 | |
JPH11289313A (ja) | 複素演算処理回路 | |
JP2859850B2 (ja) | 並列入力/直列出力装置および並列入力/直列出力方法 | |
JPH0998069A (ja) | Fir型ディジタルフィルタ | |
JP2002222178A (ja) | 高速フーリエ変換装置及び高速フーリエ変換方法 | |
JP2002117015A (ja) | 高速フーリエ変換回路 | |
JPH11328158A (ja) | 高速フーリエ変換演算処理回路 | |
JP2000269922A (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: 20051020 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051219 |
|
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: 20060602 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060615 |
|
LAPS | Cancellation because of no payment of annual fees |