JP6930607B2 - 信号処理装置、方法、プログラムと記録媒体 - Google Patents
信号処理装置、方法、プログラムと記録媒体 Download PDFInfo
- Publication number
- JP6930607B2 JP6930607B2 JP2019562102A JP2019562102A JP6930607B2 JP 6930607 B2 JP6930607 B2 JP 6930607B2 JP 2019562102 A JP2019562102 A JP 2019562102A JP 2019562102 A JP2019562102 A JP 2019562102A JP 6930607 B2 JP6930607 B2 JP 6930607B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- output
- parallel
- cycle
- cycles
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
- H03K19/21—EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
-
- 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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- 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
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
-
- 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
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Description
本発明は、日本国特許出願:特願2017−250740号(2017年12月27日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、信号処理装置、方法、プログラムと記録媒体に関する。
次に、等化のためのフィルタ処理が行われる。
そして、フィルタ処理後のデータは、逆高速フーリエ変換(Inverse FFT。以降、「IFFT」という。)により時間領域上の信号データに再変換される。
上記によって、元の時間領域上の信号の波形歪みが補償される。以降、FFTとIFFTを区別しないときは、「FFT/IFFT」と表記する。
1回目には、部分データフロー505aにあたる処理が、
2回目には、部分データフロー505bにあたる処理が、
3回目には、部分データフロー505c(図示せず)にあたる処理が、それぞれ行われる。以降同様に、8回目の部分データフロー505hにあたる処理までが順にそれぞれ行われる。以上の処理により、64ポイントFFT処理が実現される。
P=(1/2)*a*C*V2*f … (1)
ここで、
a:回路動作率(percentage-activity)、
C:負荷容量、
V:電圧、
f:動作周波数
である。回路動作率(percentage-activity)は、ある時間期間におけるスイッチング回数の推定値と該期間におけるクロックサイクル数の比率で与えられる。
データ表現形式として第2の表現形式により表現されたデータに対して記憶処理を行う記憶処理工程と、
を含み、前記第2の表現形式は、
データ値が正または0の場合は2の補数表現と同一であり、
データ値が負の場合は、2の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、信号処理方法が提供される。
データ値が正又は0の場合は2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である第2の表現形式により表現されたデータに対して記憶処理を行う記憶処理を、コンピュータ(プロセッサ)に実行させるプログラムが提供される。本発明によれば、該プログラムを記録した非一時的なコンピュータ読み出し可能な媒体(non-transitory computer-readable medium)が提供される。
前記第2の表現形式は、データ値が正又は0の場合は2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビット以外のビットを反転した表現であり、
前記バタフライ演算処理部と前記ひねり乗算処理部は、2の補数表現により表現されたデータに対して処理を行い、
前記データ並べ替え処理部は、前記第2の表現形式により表現されたデータに対して記憶処理を行う。
前記バタフライ演算処理と前記ひねり乗算処理は、2の補数表現により表現されたデータに対して処理を行い、
データ値が正又は0の場合は2の補数表現と同一であり、データ値が負の場合は、2の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である第2の表現形式により表現されたデータに対して記憶処理を行う前記データ並び替え処理を実行させるプログラムが提供される。本発明によれば、該プログラムを記録した非一時的なコンピュータ読み出し可能な媒体(non-transitory computer-readable medium)が提供される。
図1は、本発明の例示的な第1の実施形態に係る信号処理装置10の構成例を示す図である。信号処理装置10は、信号データのバッファリング処理、リタイミング処理や並べ替え処理等の記憶処理を行う記憶処理部11a、11b、11cと、加減算や乗除算等の演算処理を行う演算処理部12a、12bと、を備えている。なお、図1において、矢印は、処理におけるデータの流れの一例を例示したものである(各部間の信号が常に一方向であることに制限するという意味に解釈すべきでないことは勿論である)。また、以下では、記憶処理部11a、11b、11c等は、特に、各部を指定して説明する必要がある場合を除いて、a、b、c等の記号を省略し、記憶処理部11で参照される。他の要素についても同様とされる。
以上説明したように、本実施形態においては、信号処理装置10は、記憶処理部11a、11b、11cにおいて、2の補数表現で表現されるデータを符号絶対値−−表現に変換して記憶処理を行った後、再び2の補数表現に変換する。
本発明の例示的な第2の実施形態について説明する。第2の実施形態は、本発明をFFT装置に適用したものである。FFT装置には、バタフライ演算処理を行うバタフライ演算処理部と、ひねり乗算処理を行うひねり乗算処理部と、複数のデータの順序を並べ替えるデータ並べ替え処理部と、を備え、前記バタフライ演算処理部と前記ひねり乗算処理部は、2の補数表現により表現されたデータに対して処理を行い、前記データ並べ替え処理部は、符号絶対値−−表現により表現されたデータに対して記憶処理を行う。
ps(i)=x[8×(s−1)+i]
qs(i)=x[(s−1)+8×i]
Qs(i)=Pi+1(s−1)
ここで、Ps、Qs(s=1,…,8)のi番目のデータをPs(i)、Qs(i)(i=1,…,8)で表すと、上式は、
Qs(i)=Pi(s)
となる。すなわち、Qs(i)とPi(s)は、各データ組を構成するデータについて、サイクルの進行の順序とデータ位置に関する順序とが入れ替えられた関係にある。したがって、ビットリバース順序で入力されたデータをビットリバース順序にしたがって並び替えると、逐次順序となる。
{2, 3, 10, 11}から構成されるデータ組と、{16, 17, 24, 25}から構成されるデータ組との並べ替え、
{4, 5, 12, 13}から構成されるデータ組と、{32, 33, 40, 41}から構成されるデータ組との並べ替え、
{6, 7, 14, 15}から構成されるデータ組と、{48, 49, 56, 57}から構成されるデータ組との並べ替え、
{20, 21, 28, 29}から構成されるデータ組と、{34, 35, 42, 43}から構成されるデータ組との並べ替え、
{22, 23, 30, 31}から構成されるデータ組と、{50, 51, 58, 59}から構成されるデータ組との並べ替え、
{38, 39, 46, 47}から構成されるデータ組と、{52, 53, 60, 61}から構成されるデータ組との並べ替えをそれぞれ行うと、図10に示されている「中間順序」になる。
{0, 1, 8, 9}から構成されるデータ組における1と8との並べ替え、
{2, 3, 10, 11}から構成されるデータ組における3と10との並べ替え、
{4, 5, 12, 13}から構成されるデータ組における5と12との並べ替え、
{6, 7, 14, 15}から構成されるデータ組における7と14との並べ替え、
{16, 17, 24, 25}から構成されるデータ組における17と24との並べ替え、
{18, 19, 26, 27}から構成されるデータ組における19と26との並べ替え、
{20, 21, 28, 29}から構成されるデータ組における21と28との並べ替え、
{22, 23, 30, 31}から構成されるデータ組における23と30との並べ替え、
{32, 33, 40, 41}から構成されるデータ組における33と40との並べ替え、
{34, 35, 42, 43}から構成されるデータ組における35と42との並べ替え、
{36, 37, 44, 45}から構成されるデータ組における37と44との並べ替え、
{38, 39, 46, 47}から構成されるデータ組における39と46との並べ替え、
{48, 49, 56, 57}から構成されるデータ組における49と56との並べ替え、
{50, 51, 58, 59}から構成されるデータ組における51と58との並べ替え、
{52, 53, 60, 61}から構成されるデータ組における53と60との並べ替え、
{54, 55, 62, 63}から構成されるデータ組における55と62との並べ替え、
をそれぞれ行うと、図7に示されている「ビットリバース順序」になる。
in0から入力したデータを出力205aに出力し、
in1から入力したデータを出力205bに出力し、
in2から入力したデータを出力205cに出力し、
in3から入力したデータを出力205dに出力し、
in4から入力したデータを出力205eに出力し、
in5から入力したデータを出力205fに出力し、
in6から入力したデータを出力205gに出力し、
in7から入力したデータを出力205hに出力する。
in0から入力したデータを出力205cに出力し、
in1から入力したデータを出力205dに出力し、
in2から入力したデータを出力205eに出力し、
in3から入力したデータを出力205fに出力し、
in4から入力したデータを出力205gに出力し、
in5から入力したデータを出力205hに出力し、
in6から入力したデータを出力205aに出力し、
in7から入力したデータを出力205bに出力する。
in0から入力したデータを出力205eに出力し、
in1から入力したデータを出力205fに出力し、
in2から入力したデータを出力205gに出力し、
in3から入力したデータを出力205hに出力し、
in4から入力したデータを出力205aに出力し、
in5から入力したデータを出力205bに出力し、
in6から入力したデータを出力205cに出力し、
in7から入力したデータを出力205dに出力する。
in0から入力したデータを出力205gに出力し、
in1から入力したデータを出力205hに出力し、
in2から入力したデータを出力205aに出力し、
in3から入力したデータを出力205bに出力し、
in4から入力したデータを出力205cに出力し、
in5から入力したデータを出力205dに出力し、
in6から入力したデータを出力205eに出力し、
in7から入力したデータを出力205fに出力する。
(1)サイクルt0において入力205c、205dから入力した2,3の2つのデータを、サイクルt10において出力206c、206dに出力する。
(1)サイクルt0において入力205e、205fから入力した4,5の2つのデータを、サイクルt12において出力206e、206fに出力する。
(1)サイクルt0において入力205g、205hから入力した6,7の2つのデータを、サイクルt14において出力206g、206hに出力する。
入力206aから入力したデータを出力207aに出力し、
入力206bから入力したデータを出力207bに出力し、
入力206cから入力したデータを出力207cに出力し、
入力206dから入力したデータを出力207dに出力し、
入力206eから入力したデータを出力207eに出力し、
入力206fから入力したデータを出力207fに出力し、
入力206gから入力したデータを出力207gに出力し、
入力206hから入力したデータを出力207hに出力する。
入力206aから入力したデータを出力207gに出力し、
入力206bから入力したデータを出力207hに出力し、
入力206cから入力したデータを出力207aに出力し、
入力206dから入力したデータを出力207bに出力し、
入力206eから入力したデータを出力207cに出力し、
入力206fから入力したデータを出力207dに出力し、
入力206gから入力したデータを出力207eに出力し、
入力206hから入力したデータを出力207fに出力する。
入力206aから入力したデータを出力207eに出力し、
入力206bから入力したデータを出力207fに出力し、
入力206cから入力したデータを出力207gに出力し、
入力206dから入力したデータを出力207hに出力し、
入力206eから入力したデータを出力207aに出力し、
入力206fから入力したデータを出力207bに出力し、
入力206gから入力したデータを出力207cに出力し、
入力206hから入力したデータを出力207dに出力する。
入力206aから入力したデータを出力207cに出力し、
入力206bから入力したデータを出力207dに出力し、
入力206cから入力したデータを出力207eに出力し、
入力206dから入力したデータを出力207fに出力し、
入力206eから入力したデータを出力207gに出力し、
入力206fから入力したデータを出力207hに出力し、
入力206gから入力したデータを出力207aに出力し、
入力206hから入力したデータを出力207bに出力する。
サイクルt8において、0,1の2つのデータを入力し、
サイクルt9において、8,9の2つのデータを入力し、
出力out0、out1にそれぞれ接続する変換回路234a、234bに、
サイクルt9において、0,8の2つのデータを出力し、
サイクルt10において、1,9の2つのデータを出力する。
サイクルt10において、2,3の2つのデータを入力し、
サイクルt11において、10,11の2つのデータを入力し、
出力out0、out1にそれぞれ接続する変換回路234a、234bに、
サイクルt11において、2,10の2つのデータを出力し、
サイクルt12において、3,11の2つのデータを出力する。
サイクルt12において、4,5の2つのデータを入力し、
サイクルt13において、12,13の2つのデータを入力し、
出力out0、out1にそれぞれ接続する変換回路234a、234bに、
サイクルt13において、4,12の2つのデータを出力し、、
サイクルt14において、5,13の2つのデータを出力する。
サイクルt14において、6,7の2つのデータを入力し、
サイクルt15において、14,15の2つのデータを入力し、
出力out0、out1にそれぞれ接続する変換回路234a、234bに、
サイクルt15において、6,14の2つのデータを出力し、
サイクルt16において、7,15の2つのデータを出力する。
サイクルt8において、16,17の2つのデータを入力し、
サイクルt9において、24,25の2つのデータを入力し、
出力out2、out3にそれぞれ接続する変換回路234c、234dに、
サイクルt9において、16,24の2つのデータを出力し、
サイクルt10において、17,25の2つのデータを出力する。
入力207c、207dから、
サイクルt10において、18,19の2つのデータを入力し、
サイクルt11において、26,27の2つのデータを入力し、
出力out2、out3にそれぞれ接続する変換回路234c、234dに、
サイクルt11において、18,26の2つのデータを出力し、
サイクルt12において、19,27の2つのデータを出力する。
サイクルt12において、20,21の2つのデータを入力し、
サイクルt13において、28,29の2つのデータを入力し、
出力out2、out3にそれぞれ接続する変換回路234c、234dに、
サイクルt13において、20,28の2つのデータを出力し、
サイクルt14において、21,29の2つのデータを出力する。
サイクルt14において、22,23の2つのデータを入力し、
サイクルt15において、30,31の2つのデータを入力し、
出力out2、out3にそれぞれ接続する変換回路234c、234dに、
サイクルt15において、22,30の2つのデータを出力し、
サイクルt16において、23,31の2つのデータを出力する。
サイクルt8において、32,33の2つのデータを入力し、
サイクルt9において、40,41の2つのデータを入力し、
出力out4、out5にそれぞれ接続する変換回路234e、234fに、
サイクルt9において、32,40の2つのデータを出力し、
サイクルt10において、33,41の2つのデータを出力する。
入力207e、207fから、
サイクルt10において、34,35の2つのデータを入力し、
サイクルt11において、42,43の2つのデータを入力し、
出力out4、out5にそれぞれ接続する変換回路234e、234fに、
サイクルt11において、34,42の2つのデータを出力し、
サイクルt12において、35,43の2つのデータを出力する。
サイクルt12において、36,37の2つのデータを入力し、
サイクルt13において、44,45の2つのデータを入力し、
出力out4、out5にそれぞれ接続する変換回路234e、234fに、
サイクルt13において、36,44の2つのデータを出力し、
サイクルt14において、37,45の2つのデータを出力する。
サイクルt14において、38,39の2つのデータを入力し、
サイクルt15において、46,47の2つのデータを入力し、
出力out4、out5にそれぞれ接続する変換回路234e、234fに、
サイクルt15において、38,46の2つのデータを出力し、
サイクルt16において、39,47の2つのデータを出力する。
サイクルt8において、48,49の2つのデータを入力し、
サイクルt9において、56,57の2つのデータを入力し、
出力out6、out7にそれぞれ接続する変換回路234g、234hに、
サイクルt9において、48,56の2つのデータを出力し、
サイクルt10において、49,57の2つのデータを出力する。
サイクルt10において、50,51の2つのデータを入力し、
サイクルt11において、58,59の2つのデータを入力し、
出力out6、out7にそれぞれ接続する変換回路234g、234hに、
サイクルt11において、50,58の2つのデータを出力し、
サイクルt12において、51,59の2つのデータを出力する。
サイクルt12において、52,53の2つのデータを入力し、
サイクルt13において、60,61の2つのデータを入力し、
出力out6、out7にそれぞれ接続する変換回路234g、234hに、
サイクルt13において、52,60の2つのデータを出力し、
サイクルt14において、53,61の2つのデータを出力する。
サイクルt14において、54,55の2つのデータを入力し、
サイクルt15において、62,63の2つのデータを入力し、
出力out6、out7にそれぞれ接続する変換回路234g、234hに、
サイクルt15において、54,62の2つのデータを出力し、
サイクルt16において、55,63の2つのデータを出力する。
以上のように、本実施形態では、FFT装置20は、バタフライ演算において必要なデータの並べ替え処理である、「逐次順序」から、「ビットリバース順序」への並べ替えや、「ビットリバース順序」から「逐次順序」への並べ替えを、符号絶対値−−表現に変換した後、「中間順序」を介した2段階のステップで実現する。そのため、2の補数表現のまま並べ替え処理を行うのに対して、第1のデータ並べ替え部201や第2のデータ並べ替え部204を構成するRAM回路、フリップフロップ回路やセレクタ回路などの回路の動作率を低減することができる。
11、11a、11b、11c 記憶処理部
12a、12b 演算処理部
13、13a、13b 変換回路
14 記憶回路
17 XOR回路
20 FFT装置
21a、21b バタフライ演算処理部
22 ひねり乗算処理部
200、200a〜200c データ並べ替え処理部
200 データ並べ替え処理部
201 第1のデータ並べ替え部(手段)
202 第1のデータ振り分け部
203 第2のデータ振り分け部
204 第2のデータ並べ替え部(手段)
205a〜205h 出力(第1のデータ振り分け部の出力データ)
206a〜205h 出力(RAM回路の出力データ)
207a〜207h 出力(第2のデータ振り分け部の出力データ)
210a〜210d RAM回路
220 データ組内並べ替え部
220a〜220d データ組内並べ替え部
221、224、225 セレクタ回路
222、223 フリップフロップ
231、232、233a〜233h、234a〜234h 変換回路
300 プロセッサ装置
301 プロセッサ
302 プログラム記憶部
303 RAM
304 第1のインタフェース
305 第2のインタフェース
500 データフロー
501 データ並べ替え処理部
502、503 バタフライ演算処理部
504 ひねり乗算処理部
505a〜505h 部分データフロー
600 変換回路
601 ビット反転回路
602 1加算回路
Claims (6)
- 並列にN個(Nは2のべき乗)をNサイクル分入力しN×Nポイント高速フーリエ変換又は逆高速フーリエ変換を行う信号処理装置であって、
第1乃至第3のデータ並べ替え処理部と、
第1及び第2のバタフライ演算処理部と、
データにひねり係数を乗算する処理を行うひねり乗算処理部と、
を備え、
前記第1のデータ並べ替え処理部は、逐次順序で並列に入力されるN個のデータをNサイクル分入力し、ビットリバース順序に並べ替え、ビットリバース順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記第1のバタフライ演算処理部は、前記第1のデータ並べ替え処理部から並列に出力されるN個のデータのバタフライ演算を行い、前記バタフライ演算の結果のN個のデータを並列に出力し、
前記第2のデータ並べ替え処理部は、前記第1のバタフライ演算処理部から逐次順序で並列に出力されるN個のデータをNサイクル分入力し、ビットリバース順序に並べ替え、ビットリバース順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記ひねり乗算処理部は、前記第2のバタフライ演算処理部から出力されるデータに対して対応するひねり係数を乗算し、
前記第2のバタフライ演算処理部は、前記ひねり乗算処理部から出力されるN個のデータのバタフライ演算を行い、前記バタフライ演算の結果のN個のデータを並列に出力し、
前記第3のデータ並べ替え処理部は、前記第2のバタフライ演算処理部から並列に出力されるN個のデータをNサイクル分入力し、ビットリバース順序のデータを逐次順序のデータに並べ替え、前記逐次順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記第1及び第2のバタフライ演算処理部と前記ひねり乗算処理部は、2の補数表現により表現されたデータに対して演算処理を行い、
前記第1乃至第3のデータ並べ替え処理部は、第2の表現形式により表現された複数のデータの順序の並べ替えを行い、
前記第2の表現形式は、データ値が正または0の場合は2の補数表現と同一であり、
データ値が負の場合は、2の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、ことを特徴とする信号処理装置。 - 前記第1乃至第3の各データ並べ替え処理部において、
各サイクルごとN個のデータを並列にNサイクル分入力し、
並列に入力したN個の2の補数表現のデータを前記第2の表現形式に変換してN個並列に出力する第1の変換部と、
前記第1の変換部から並列に出力されるN個のデータの1サイクル目からNサイクルまで2サイクルごと、シフト量を0から順次2データ分増加させ、循環的にシフトしたデータをN個並列に出力する第1の振り分け部と、
前記第1の振り分け部から並列に出力されるN個のデータをNサイクル分、N行N列に記憶し、隣接する2×2のデータ組を要素の単位としたN/2行、N/2列について、各行毎、対応する列の置換を行った上で、1列目からN列目まで、N行ごとデータを並列に出力する、N/2個のメモリと、
前記N/2個のメモリから順次並列に出力されるN個のデータの1サイクル目からNサイクルまで2サイクルごと、シフト量を0から順次2データ分増加させ、前記第1の振り分け部と反対方向に循環的にシフトしたデータをN個並列に出力する第2の振り分け部と、
を備え、
前記第2の振り分け部から並列に出力されるN個のNサイクル分のデータを、隣接する2×2のデータ組を要素の単位としたN/2行、N/2列の行列とすると、該行列は、各サイクルごとN個のデータを並列にNサイクル分入力したデータの隣接する2×2のデータ組を要素の単位としたN/2行、N/2列の行列の対角成分に対して対称に隣接する2×2のデータ組の要素を入れ替えたものとされ、
各々が、前記第2の振り分け部から並列に出力されるN個のデータの隣り合う各2つのデータからなるN/2個のデータ組の各々について、連続する2サイクル分からなる2×2のデータ組のうち前のサイクルの2番目のデータと後のサイクルの1番目のデータとの並べ替えを行い、並べ替え後のN/2個のデータ組を各サイクルごと並列に出力する、N/2個の並べ替え部を備え、
前記N/2個の並べ替え部からN個並列に出力される第iサイクルの第j番目のデータは、N個のデータをNサイクル分入力したデータの第jサイクルの第i番目のデータであり、
前記N/2個の並べ替え部から出力されるN個のデータを前記第2の表現形式から2の補数表現に変換して並列に出力する第2の変換部を備えた、ことを特徴とする請求項1に記載の信号処理装置。 - 並列にN個(Nは2のべき乗)をNサイクル分入力しN×Nポイント高速フーリエ変換又は逆高速フーリエ変換を行う信号処理方法であって、
第1乃至第3のデータ並べ替え処理と、
第1及び第2のバタフライ演算処理と、
ひねり乗算処理と、
を含み、
前記第1のデータ並べ替え処理は、逐次順序で並列に入力されるN個のデータをNサイクル分入力し、ビットリバース順序に並べ替え、ビットリバース順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記第1のバタフライ演算処理は、前記第1のデータ並べ替え処理から並列に出力されるN個のデータのバタフライ演算を行い、前記バタフライ演算の結果のN個のデータを並列に出力し、
前記第2のデータ並べ替え処理は、前記第1のバタフライ演算処理から逐次順序で並列に出力されるN個のデータをNサイクル分入力し、ビットリバース順序に並べ替え、ビットリバース順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記ひねり乗算処理は、前記第2のバタフライ演算処理から出力されるデータに対して対応するひねり係数を乗算し、
前記第2のバタフライ演算処理は、前記ひねり乗算処理から出力されるN個のデータのバタフライ演算を行い、前記バタフライ演算の結果のN個のデータを並列に出力し、
前記第3のデータ並べ替え処理は、前記第2のバタフライ演算処理から並列に出力されるN個のデータをNサイクル分入力し、ビットリバース順序のデータを逐次順序のデータに並べ替え、前記逐次順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記第1及び第2のバタフライ演算処理と前記ひねり乗算処理は、2の補数表現により表現されたデータに対して演算処理を行い、
前記第1乃至第3のデータ並べ替え処理は、第2の表現形式により表現された複数のデータの順序の並べ替えを行い、
前記第2の表現形式は、データ値が正または0の場合は2の補数表現と同一であり、
データ値が負の場合は、2の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、ことを特徴とする信号処理方法。 - 前記第1乃至第3の各データ並べ替え処理は、
各サイクルごとN個のデータを並列にNサイクル分入力し、
並列に入力したN個の2の補数表現のデータを前記第2の表現形式に変換してN個並列に出力する第1の変換処理と、
前記第1の変換処理から並列に出力されるN個のデータの1サイクル目からNサイクルまで2サイクルごと、シフト量を0から順次2データ分増加させ、循環的にシフトしたデータをN個並列に出力する第1の振り分け処理と、
前記第1の振り分け処理から並列に出力されるN個のデータをNサイクル分、N行N列をメモリに記憶し、前記メモリに記憶された、隣接する2×2のデータ組を要素の単位としたN/2行、N/2列について、各行毎、対応する列の置換を行った上で、1列目からN列目まで、N行ごとデータを並列に出力する処理と、
順次並列に出力されるN個のデータの1サイクル目からNサイクルまで2サイクルごと、シフト量を0から順次2データ分増加させ、前記第1の振り分け処理と反対方向に循環的にシフトしたデータをN個並列に出力する第2の振り分け処理と、
を含み、
前記第2の振り分け処理から並列に出力されるN個のNサイクル分のデータを、隣接する2×2のデータ組を要素の単位としたN/2行、N/2列の行列とすると、該行列は、各サイクルごとN個のデータを並列にNサイクル分入力したデータの隣接する2×2のデータ組を要素の単位としたN/2行、N/2列の行列の対角成分に対して対称に隣接する2×2のデータ組の要素を入れ替えたものとされ、
各々が、前記第2の振り分け処理から並列に出力されるN個のデータの隣り合う各2つのデータからなるN/2個のデータ組の各々について、連続する2サイクル分からなる2×2のデータ組のうち前のサイクルの2番目のデータと後のサイクルの1番目のデータとの並べ替えを行い、並べ替え後のN/2個のデータ組を各サイクルごと並列に出力する、N/2個の並べ替え処理をさらに含み、
前記N/2個の並べ替え処理からN個並列に出力される第iサイクルの第j番目のデータは、N個のデータをNサイクル分入力したデータの第jサイクルの第i番目のデータであり、
前記N/2個の並べ替え処理から出力されるN個のデータを前記第2の表現形式から2の補数表現に変換して並列に出力する第2の変換処理を含む、ことを特徴とする請求項3に記載の信号処理方法。 - 並列にN個(Nは2のべき乗)をNサイクル分入力しN×Nポイント高速フーリエ変換又は逆高速フーリエ変換をコンピュータに実行させるプログラムであって、
第1及び第2のバタフライ演算処理と、
ひねり乗算処理と、
第1及び第3のデータ並べ替え処理を、
含み、
前記第1のデータ並べ替え処理は、逐次順序で並列に入力されるN個のデータをNサイクル分入力し、ビットリバース順序に並べ替え、ビットリバース順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記第1のバタフライ演算処理は、前記第1のデータ並べ替え処理から並列に出力されるN個のデータのバタフライ演算を行い、前記バタフライ演算の結果のN個のデータを並列に出力し、
前記第2のデータ並べ替え処理は、前記第1のバタフライ演算処理から逐次順序で並列に出力されるN個のデータをNサイクル分入力し、ビットリバース順序に並べ替え、ビットリバース順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記ひねり乗算処理は、前記第2のバタフライ演算処理から出力されるデータに対して対応するひねり係数を乗算し、
前記第2のバタフライ演算処理は、前記ひねり乗算処理から出力されるN個のデータのバタフライ演算を行い、前記バタフライ演算の結果のN個のデータを並列に出力し、
前記第3のデータ並べ替え処理は、前記第2のバタフライ演算処理から並列に出力されるN個のデータをNサイクル分入力し、ビットリバース順序のデータを逐次順序のデータに並べ替え、前記逐次順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記第1及び第2のバタフライ演算処理と前記ひねり乗算処理は、2の補数表現により表現されたデータに対して演算処理を行い、
前記第1乃至第3のデータ並べ替え処理は、第2の表現形式により表現された複数のデータの順序の並べ替えを行い、
前記第2の表現形式は、データ値が正または0の場合は2の補数表現と同一であり、
データ値が負の場合は、2の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、プログラム。 - 前記第1乃至第3の各データ並べ替え処理は、
各サイクルごとN個のデータを並列にNサイクル分入力し、
並列に入力したN個の2の補数表現のデータを前記第2の表現形式に変換してN個並列に出力する第1の変換処理と、
前記第1の変換処理から並列に出力されるN個のデータの1サイクル目からNサイクルまで2サイクルごと、シフト量を0から順次2データ分増加させ、循環的にシフトしたデータをN個並列に出力する第1の振り分け処理と、
前記第1の振り分け処理から並列に出力されるN個のデータをNサイクル分、N行N列をメモリに記憶し、前記メモリに記憶された、隣接する2×2のデータ組を要素の単位としたN/2行、N/2列について、各行毎、対応する列の置換を行った上で、1列目からN列目まで、N行ごとデータを並列に出力する処理と、
順次並列に出力されるN個のデータの1サイクル目からNサイクルまで2サイクルごと、シフト量を0から順次2データ分増加させ、前記第1の振り分け処理と反対方向に循環的にシフトしたデータをN個並列に出力する第2の振り分け処理と、
を含み、
前記第2の振り分け処理から並列に出力されるN個のNサイクル分のデータを、隣接する2×2のデータ組を要素の単位としたN/2行、N/2列の行列とすると、該行列は、各サイクルごとN個のデータを並列にNサイクル分入力したデータの隣接する2×2のデータ組を要素の単位としたN/2行、N/2列の行列の対角成分に対して対称に隣接する2×2のデータ組の要素を入れ替えたものとされ、
各々が、前記第2の振り分け処理から並列に出力されるN個のデータの隣り合う各2つのデータからなるN/2個のデータ組の各々について、連続する2サイクル分からなる2×2のデータ組のうち前のサイクルの2番目のデータと後のサイクルの1番目のデータとの並べ替えを行い、並べ替え後のN/2個のデータ組を各サイクルごと並列に出力する、N/2個の並べ替え処理をさらに含み、
前記N/2個の並べ替え処理からN個並列に出力される第iサイクルの第j番目のデータは、N個のデータをNサイクル分入力したデータの第jサイクルの第i番目のデータであり、
前記N/2個の並べ替え処理から出力されるN個のデータを前記第2の表現形式から2の補数表現に変換して並列に出力する第2の変換処理を含む、請求項5に記載のプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017250740 | 2017-12-27 | ||
JP2017250740 | 2017-12-27 | ||
PCT/JP2018/047828 WO2019131754A1 (ja) | 2017-12-27 | 2018-12-26 | 信号処理装置、方法、プログラムと記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019131754A1 JPWO2019131754A1 (ja) | 2020-12-24 |
JP6930607B2 true JP6930607B2 (ja) | 2021-09-01 |
Family
ID=67067546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019562102A Active JP6930607B2 (ja) | 2017-12-27 | 2018-12-26 | 信号処理装置、方法、プログラムと記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11604852B2 (ja) |
JP (1) | JP6930607B2 (ja) |
WO (1) | WO2019131754A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301542B2 (en) * | 2019-05-15 | 2022-04-12 | Nxp B.V. | Methods and apparatuses involving fast fourier transforms processing of data in a signed magnitude form |
CN115344526B (zh) * | 2022-08-16 | 2023-04-18 | 江南信安(北京)科技有限公司 | 一种数据流架构的硬件加速方法及装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62221071A (ja) | 1986-03-20 | 1987-09-29 | Toyota Central Res & Dev Lab Inc | バタフライ演算回路及びそれを用いた高速フ−リエ変換装置 |
JPH06100961B2 (ja) * | 1988-04-18 | 1994-12-12 | 富士通テン株式会社 | デジタル信号処理プロセッサ |
JPH0736666A (ja) | 1993-07-22 | 1995-02-07 | Sharp Corp | デジタル信号処理装置 |
JPH08137832A (ja) | 1994-11-07 | 1996-05-31 | Fujitsu Ltd | バタフライ演算回路および同回路を用いた高速フーリエ変換装置 |
JP2001056806A (ja) | 1999-06-10 | 2001-02-27 | Matsushita Electric Ind Co Ltd | 高速フーリエ変換装置 |
JP2001306547A (ja) * | 2000-04-21 | 2001-11-02 | Sony Corp | 演算装置及び演算方法 |
JP2003101415A (ja) * | 2001-09-19 | 2003-04-04 | Seiko Epson Corp | データ変換装置、データ生成装置、データ変換プログラム及びデータ生成プログラム、並びにデータ変換方法及びデータ生成方法 |
JP2004133617A (ja) | 2002-10-09 | 2004-04-30 | Sony Corp | 回路構成方法、その装置およびそのプログラムと、その演算回路 |
US7660840B2 (en) * | 2003-09-29 | 2010-02-09 | Broadcom Corporation | Method, system, and computer program product for executing SIMD instruction for flexible FFT butterfly |
JP2005184310A (ja) | 2003-12-18 | 2005-07-07 | Matsushita Electric Ind Co Ltd | 輪郭補正装置 |
JP5366625B2 (ja) | 2009-04-09 | 2013-12-11 | キヤノン株式会社 | データ伝送装置およびデータ伝送方法 |
JP5549442B2 (ja) | 2010-07-14 | 2014-07-16 | 三菱電機株式会社 | Fft演算装置 |
JP5763911B2 (ja) | 2010-12-07 | 2015-08-12 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ルートi(√i)演算の保持を特徴とする基数8固定小数点FFT論理回路 |
US9727531B2 (en) | 2012-11-26 | 2017-08-08 | Nec Corporation | Fast fourier transform circuit, fast fourier transform processing method, and program recording medium |
US9785614B2 (en) * | 2013-01-23 | 2017-10-10 | Nec Corporation | Fast Fourier transform device, fast Fourier transform method, and recording medium storing fast Fourier transform program |
JP6288089B2 (ja) * | 2013-07-23 | 2018-03-07 | 日本電気株式会社 | デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体 |
WO2015087497A1 (ja) | 2013-12-13 | 2015-06-18 | 日本電気株式会社 | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラムが記憶された記憶媒体 |
-
2018
- 2018-12-26 WO PCT/JP2018/047828 patent/WO2019131754A1/ja active Application Filing
- 2018-12-26 US US16/955,201 patent/US11604852B2/en active Active
- 2018-12-26 JP JP2019562102A patent/JP6930607B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
WO2019131754A1 (ja) | 2019-07-04 |
US11604852B2 (en) | 2023-03-14 |
JPWO2019131754A1 (ja) | 2020-12-24 |
US20200334321A1 (en) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6288089B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラムが記憶された記憶媒体 | |
Garrido et al. | Optimum circuits for bit reversal | |
JP6930607B2 (ja) | 信号処理装置、方法、プログラムと記録媒体 | |
JP6256348B2 (ja) | 高速フーリエ変換回路、高速フーリエ変換処理方法及び高速フーリエ変換処理プログラム | |
JP5763911B2 (ja) | ルートi(√i)演算の保持を特徴とする基数8固定小数点FFT論理回路 | |
JP4160564B2 (ja) | 処理速度の向上した高速フーリエ変換装置およびその処理方法 | |
JP6489021B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法及びデジタルフィルタプログラム | |
JP6977883B2 (ja) | 信号処理装置、方法、プログラム | |
JPWO2011036918A1 (ja) | データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法 | |
JP6943283B2 (ja) | 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム | |
JP6992745B2 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法およびデジタルフィルタ処理プログラム | |
JP6451647B2 (ja) | 高速フーリエ変換装置、高速フーリエ変換方法、及び高速フーリエ変換プログラム | |
JP4405452B2 (ja) | 逆変換回路 | |
CN109753629B (zh) | 多粒度并行fft计算装置 | |
WO2020195239A1 (ja) | デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムを格納した非一時的なコンピュータ可読媒体 | |
WO2015045310A1 (ja) | デジタルフィルタ装置、デジタルフィルタ処理方法およびプログラムを格納する記憶媒体 | |
JP2023131901A (ja) | 高速フーリエ変換装置、デジタルフィルタ装置、高速フーリエ変換方法、及びプログラム | |
JP7052874B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2022152001A (ja) | 高速フーリエ変換装置及びデジタルフィルタ装置 | |
Minotta et al. | Embedded FFT hardware algorithm development using automated bi-dimensional scalable folding | |
JP2010072981A (ja) | 複素数の積和演算装置および積和演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200626 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200626 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210330 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210527 |
|
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: 20210713 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210726 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6930607 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |