JP6861887B1 - フーリエ変換装置及びフーリエ変換方法 - Google Patents
フーリエ変換装置及びフーリエ変換方法 Download PDFInfo
- Publication number
- JP6861887B1 JP6861887B1 JP2020505946A JP2020505946A JP6861887B1 JP 6861887 B1 JP6861887 B1 JP 6861887B1 JP 2020505946 A JP2020505946 A JP 2020505946A JP 2020505946 A JP2020505946 A JP 2020505946A JP 6861887 B1 JP6861887 B1 JP 6861887B1
- Authority
- JP
- Japan
- Prior art keywords
- fourier transform
- data
- phase
- result
- points
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
図1は、実施の形態1に係るフーリエ変換装置を示す構成図である。
図1に示すフーリエ変換装置には、K個のデータ列1k(k=1,・・・,K)が入力される。Kは、2以上の整数である。
K個のデータ列1kは、K×M個のデータのうち、1番目のデータを起点とする並び順で((k−1)M+1)番目のデータを先頭のデータとして含んでいる。
K個のデータ列1kは、それぞれの先頭のデータのほかに、K×M個のデータのうち、それぞれの先頭のデータを起点とする並び順で、連続している(M−1)個のデータをそれぞれ含んでいる。
Mは、2以上の整数である。K×M個のデータは、実数のデータであってもよいし、複素数のデータであってもよい。
K個のデータ列1kの具体例は、以下の通りである。
データ列11={D1、D2、・・・、DM}
データ列12は、データDM+1、データDM+2、・・・、データD2Mを含んでおり、データDM+1、データDM+2、・・・、データD2Mの順番で加算器2に入力される。
データ列12={DM+1、DM+2、・・・、D2M}
データ列13は、データD2M+1、データD2M+2、・・・、データD3Mを含んでおり、データD2M+1、データD2M+2、・・・、データD3Mの順番で加算器2に入力される。
データ列13={D2M+1、D2M+2、・・・、D3M}
データ列1Kは、データD(K−1)M+1、データD(K−1)M+2、・・・、データDK×Mを含んでおり、データD(K−1)M+1、データD(K−1)M+2、・・・、データDK×Mの順番で加算器2に入力される。
データ列1K={D(K−1)M+1、D(K−1)M+2、・・・、DK×M}
加算器2は、K個のデータ列1kに含まれているそれぞれのM個のデータの中から、それぞれの先頭のデータを起点とする並び順でm(m=1,・・・,M)番目のデータであるK個のデータの入力を受け付ける。
加算器2は、K個のデータの入力を受け付ける毎に、K個のデータの総和を算出し、算出したK個のデータの総和を変換器3に出力する。
変換器3は、加算器2により算出されたM個の総和に対するM点のフーリエ変換、又は、M個の総和に対するM点の逆フーリエ変換を実施する。
変換器3は、変換結果4として、M点のフーリエ変換の変換結果(以下、「フーリエ変換結果」と称する)、又は、M点の逆フーリエ変換の変換結果(以下、「逆フーリエ変換結果」と称する)を外部に出力する。
変換器3により実施されるフーリエ変換は、高速フーリエ変換に限るものではなく、例えば、離散フーリエ変換も含まれる。
また、変換器3により実施される逆フーリエ変換は、逆高速フーリエ変換に限るものではなく、例えば、逆離散フーリエ変換も含まれる。
図1及び図2では、フーリエ変換装置の構成要素である加算器2及び変換器3のそれぞれが、専用のハードウェアによって実現されるものを想定している。
フーリエ変換装置の構成要素である加算器2及び変換器3のそれぞれは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)、又は、これらを組み合わせたものが該当する。
ソフトウェア又はファームウェアは、プログラムとして、コンピュータのメモリに格納される。コンピュータは、プログラムを実行するハードウェアを意味し、例えば、CPU(Central Processing Unit)、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、あるいは、DSP(Digital Signal Processor)が該当する。
図3は、フーリエ変換装置が、ソフトウェア又はファームウェア等によって実現される場合のコンピュータのハードウェア構成図である。
フーリエ変換装置が、ソフトウェア又はファームウェア等によって実現される場合、加算器2及び変換器3の処理手順をコンピュータに実行させるためのプログラムがメモリ21に格納される。そして、コンピュータのプロセッサ22がメモリ21に格納されているプログラムを実行する。
図4は、図1に示すフーリエ変換装置の処理手順であるフーリエ変換方法を示すフローチャートである。
K個のデータ列1K(k=1,・・・,K)は、並列に並べられている。
例えば、データ列11に含まれているデータD1が加算器2に入力されるタイミングでは、データ列12に含まれているデータDM+1と、データ列13に含まれているデータD2M+1と、データ列1Kに含まれているデータD(K−1)M+1とが加算器2に入力される。
また、例えば、データ列11に含まれているデータDMが加算器2に入力されるタイミングでは、データ列12に含まれているデータD2Mと、データ列13に含まれているデータD3Mと、データ列1Kに含まれているデータDK×Mとが加算器2に入力される。
加算器2は、K個のデータの入力を受け付ける毎に、入力を受け付けたK個のデータの総和Σm(m=1,・・・,M)を算出する(図4のステップST1)。
m=1,・・・,Mであるため、加算器2は、K個のデータの総和ΣmをM回算出し、M個の総和Σmを変換器3に出力する。
加算器2によるK個のデータの具体的な総和算出は、以下の通りである。
加算器2は、以下の式(1)に示すように、データD1、データDM+1、データD2M+1、・・・及びデータD(K−1)M+1の総和Σ1を算出する。
Σ1=D1+DM+1+D2M+1+・・・+D(K−1)M+1 (1)
加算器2は、例えば、m=2であれば、データD2、データDM+2、データD2M+2、・・・及びデータD(K−1)M+2の入力を受け付ける。
加算器2は、以下の式(2)に示すように、データD2、データDM+2、データD2M+2、・・・及びデータD(K−1)M+2の総和Σ2を算出する。
Σ2=D2+DM+2+D2M+2+・・・+D(K−1)M+2 (2)
加算器2は、例えば、m=Mであれば、データDM、データD2M、データD3M、・・・及びデータDK×Mの入力を受け付ける。
加算器2は、以下の式(3)に示すように、データDM、データD2M、データD3M、・・・及びデータDK×Mの総和ΣMを算出する。
ΣM=DM+D2M+D3M+・・・+ΣK×M (3)
変換器3は、変換結果4として、フーリエ変換結果{R1、RM+1、R2M+1、・・・、R(K−1)M+1}、又は、逆フーリエ変換結果{R’1、R’M+1、R’2M+1、・・・、R’(K−1)M+1}を外部に出力する。
11={D1、D2、D3、D4}
12={D5、D6、D7、D8}
データ列1k(k=1,2)が加算器2に入力されると、変換器3から、変換結果4として、4点のフーリエ変換結果{R1、R3、R5、R7}、又は、4点の逆フーリエ変換結果{R’1、R’3、R’5、R’7}が外部に出力される。
したがって、変換器3から変換結果4を受ける外部の回路が、例えば、8点のフーリエ変換結果{R1、R2、・・・、R8}のうち、4点のフーリエ変換結果{R1、R3、R5、R7}のみを必要とする場合、図1に示すフーリエ変換装置を外部の回路に適用することができる。
また、変換器3から変換結果4を受ける外部の回路が、例えば、8点の逆フーリエ変換結果{R’1、R’2、・・・、R’8}のうち、4点の逆フーリエ変換結果{R’1、R’3、R’5、R’7}のみを必要とする場合、図1に示すフーリエ変換装置を外部の回路に適用することができる。
例えば、K=2であれば、図1に示すフーリエ変換装置は、K×M点のフーリエ変換を実施するFFT回路と比べて、処理速度が約2倍速くなり、かつ、回路規模が約2分の1になる。
例えば、K=3であれば、図1に示すフーリエ変換装置は、K×M点のフーリエ変換を実施するFFT回路と比べて、処理速度が約3倍速くなり、かつ、回路規模が約3分の1になる。
なお、加算器2の回路規模は、変換器3の回路規模と比べて十分に小さいため、図1に示すフーリエ変換装置の回路規模として、加算器2の回路規模を考慮していない。
実施の形態2では、加算器2及び変換器3のほかに、第1の位相乗算器5及び第2の位相乗算器6を備えるフーリエ変換装置について説明する。
図5は、実施の形態2に係るフーリエ変換装置を示す構成図である。
図5に示すフーリエ変換装置では、図1に示すフーリエ変換装置と同様に、Kは2以上の整数、Mは2以上の整数である。
第1の位相乗算器5は、例えば、位相乗算回路によって実現される。
第1の位相乗算器5は、K個のデータ列1k(k=1,・・・,K)に含まれているそれぞれのM個のデータの中から、それぞれの先頭のデータを起点とする並び順でm番目のデータであるK個のデータの入力を受け付ける。
第1の位相乗算器5は、K個のデータの入力を受け付ける毎に、入力を受け付けたK個のデータのうち、k(k=1,・・・,K)番目のデータの位相を、2π(k−1)s/Kだけ進ませる移相を実施する。
第1の位相乗算器5は、位相移相後のM個のデータを含むK個のデータ列1kを加算器2に出力する。
具体的には、例えば、K=2、M=4であるとき、4点のフーリエ変換結果{R1、R3、R5、R7}、又は、4点の逆フーリエ変換結果{R’1、R’3、R’5、R’7}を外部の回路に出力する必要がある場合、sは、0に決定される。
例えば、K=2、M=4であるとき、4点のフーリエ変換結果{R2、R4、R6、R8}、又は、4点の逆フーリエ変換結果{R’2、R’4、R’6、’R8}を外部の回路に出力する必要がある場合、sは、1に決定される。
sは、第1の位相乗算器5及び第2の位相乗算器6におけるそれぞれの内部メモリに格納されていてもよいし、図5に示すフーリエ変換装置の外部から与えられるものであってもよい。
第2の位相乗算器6は、加算器2により算出されたM個の総和Σmの位相を、2π(m−1)s/Nだけ遅らせる移相を実施し、位相移相後のM個の総和Σ’mを変換器3に出力する。N=K×Mである。
図5及び図6では、フーリエ変換装置の構成要素である第1の位相乗算器5、加算器2、第2の位相乗算器6及び変換器3のそれぞれが、専用のハードウェアによって実現されるものを想定している。
フーリエ変換装置の構成要素である第1の位相乗算器5、加算器2、第2の位相乗算器6及び変換器3のそれぞれは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGA、又は、これらを組み合わせたものが該当する。
フーリエ変換装置が、ソフトウェア又はファームウェア等によって実現される場合、第1の位相乗算器5、加算器2、第2の位相乗算器6及び変換器3の処理手順をコンピュータに実行させるためのプログラムが図3に示すメモリ21に格納される。そして、図3に示すプロセッサ22がメモリ21に格納されているプログラムを実行する。
第1の位相乗算器5は、K個のデータ列1k(k=1,・・・,K)に含まれているそれぞれのM個のデータの中から、それぞれの先頭のデータを起点とする並び順でm(m=1,・・・,M)番目のデータであるK個のデータの入力を受け付ける。
第1の位相乗算器5は、K個のデータの入力を受け付ける毎に、入力を受け付けたK個のデータのうち、k番目のデータの位相を、2π(k−1)s/Kだけ進ませる移相を実施する。
第1の位相乗算器5は、位相移相後のM個のデータを含むK個のデータ列1kを加算器2に出力する。
第1の位相乗算器5によるk番目のデータの位相を進ませる具体的な移相は、以下の通りである。
第1の位相乗算器5は、例えば、s=0であれば、入力を受け付けたK個のデータ{D1、DM+1、D2M+1、・・・、D(K−1)M+1}のうち、k番目のデータの位相を、0だけ進ませる移相を実施する。
第1の位相乗算器5は、例えば、s=1であれば、入力を受け付けたK個のデータ{D1、DM+1、D2M+1、・・・、D(K−1)M+1}のうち、k番目のデータの位相を、2π(k−1)/Kだけ進ませる移相を実施する。
第1の位相乗算器5は、例えば、s=2であれば、入力を受け付けたK個のデータ{D1、DM+1、D2M+1、・・・、D(K−1)M+1}のうち、k番目のデータの位相を、4π(k−1)/Kだけ進ませる移相を実施する。
第1の位相乗算器5は、例えば、s=K−1であれば、入力を受け付けたK個のデータ{D1、DM+1、D2M+1、・・・、D(K−1)M+1}のうち、k番目のデータの位相を、2π(k−1)(K−1)/Kだけ進ませる移相を実施する。
加算器2は、K個のデータの入力を受け付ける毎に、図1に示す加算器2と同様に、入力を受け付けたK個のデータの総和Σmを算出する。m=1,・・・,Mであるため、加算器2は、K個のデータの総和ΣmをM回算出し、M個の総和Σmを第2の位相乗算器6に出力する。
第2の位相乗算器6は、取得したM個の総和Σmの位相を、2π(m−1)s/Nだけ遅らせる移相を実施する。
第2の位相乗算器6は、位相移相後のM個の総和Σ’mを変換器3に出力する。
例えば、s=0であれば、総和Σmの位相を遅らせる移相の移相量は、0である。
例えば、s=1、m=1であれば、総和Σmの位相を遅らせる移相の移相量は、2π(1−1)×1/N=0である。
例えば、s=1、m=2であれば、総和Σmの位相を遅らせる移相の移相量は、2π(2−1)×1/N=2π/Nである。
例えば、s=1、m=3であれば、総和Σmの位相を遅らせる移相の移相量は、2π(3−1)×1/N=4π/Nである。
例えば、s=1、m=Mであれば、総和Σmの位相を遅らせる移相の移相量は、2π(M−1)×1/N=2π(M−1)/Nである。
例えば、s=2、m=1であれば、総和Σmの位相を遅らせる移相の移相量は、2π(1−1)×2/N=0である。
例えば、s=2、m=2であれば、総和Σmの位相を遅らせる移相の移相量は、2π(2−1)×2/N=4π/Nである。
例えば、s=2、m=3であれば、総和Σmの位相を遅らせる移相の移相量は、2π(3−1)×2/N=8π/Nである。
例えば、s=2、m=Mであれば、総和Σmの位相を遅らせる移相の移相量は、2π(M−1)×2/N=4π(M−1)/Nである。
変換器3は、変換結果4として、M点のフーリエ変換結果{R1+s、R(K+1)+s、R(2K+1)+s、・・・、R((M−1)K+1)+s}、又は、M点の逆フーリエ変換結果{R’1+s、R’(K+1)+s、R’(2K+1)+s、・・・、R’((M−1)K+1)+s}を外部に出力する。
例えば、K=4、M=4であるとき、s=0であれば、M=4点のフーリエ変換結果は、{R1、R5、R9、R13}、M=4点の逆フーリエ変換結果は、{R’1、R’5、R’9、R’13}である。
例えば、K=4、M=4であるとき、s=1であれば、M=4点のフーリエ変換結果は、{R2、R6、R10、R14}、M=4点の逆フーリエ変換結果は、{R’2、R’6、R’10、R’14}である。
なお、第1の位相乗算器5、加算器2及び第2の位相乗算器6の回路規模は、変換器3の回路規模と比べて十分に小さいため、図5に示すフーリエ変換装置の回路規模として、第1の位相乗算器5、加算器2及び第2の位相乗算器6の回路規模を考慮していない。
また、図5に示すフーリエ変換装置は、sの値を変えることで、変換器3の変換結果4を変えることができる。
実施の形態3では、K個の変換器321〜32Kを備えるフーリエ変換装置について説明する。
図7は、実施の形態3に係るフーリエ変換装置を示す構成図である。
K個のデータ列31kは、K×M個のデータのうち、k番目のデータを先頭のデータとして含んでいる。
K個のデータ列31kは、先頭のデータのほかに、K×M個のデータのうち、先頭のデータを起点とする並び順でK個おきの(M−1)個のデータをそれぞれ含んでいる。
Mは、2以上の整数である。K×M個のデータは、実数のデータであってもよいし、複素数のデータであってもよい。
K個のデータ列31kの具体例は、以下の通りである。
データ列311={D1、DK+1、・・・、D(M−1)K+1}
データ列312は、データD2、データDK+2、・・・、データD(M−1)K+2を含んでおり、データD2、データDK+2、・・・、データD(M−1)K+2の順番で変換器322に入力される。
データ列312={D2、DK+2、・・・、D(M−1)K+2}
データ列313は、データD3、データDK+3、・・・、データD(M−1)K+3を含んでおり、データD3、データDK+3、・・・、データD(M−1)K+3の順番で変換器323に入力される。
データ列313={D3、DK+3、・・・、D(M−1)K+3}
データ列31Kは、データDK、データD2K、・・・、データDMKを含んでおり、データDK、データD2K、・・・、データDMKの順番で変換器32Kに入力される。
データ列31K={DK、D2K、・・・、DMK}
変換器32kは、データ列31kに対するM点のフーリエ変換、又は、データ列31kに対するM点の逆フーリエ変換を実施する。
変換器321は、M点の変換結果として、M点のフーリエ変換結果{R1、RK+1、・・・、R(M−1)K+1}、又は、M点の逆フーリエ変換結果{R’1、R’K+1、・・・、R’(M−1)K+1}を加算器34に出力する。
変換器32k(k=2,・・・,K)は、M点の変換結果として、M点のフーリエ変換結果{Rk、RK+k、・・・、R(M−1)K+k}、又は、M点の逆フーリエ変換結果{R’k、R’K+k、・・・、R’(M−1)K+k}を第1の位相乗算器33kに出力する。
変換器32k(k=1,・・・,K)により実施されるフーリエ変換は、高速フーリエ変換に限るものではなく、例えば、離散フーリエ変換も含まれる。
また、変換器32k(k=1,・・・,K)により実施される逆フーリエ変換は、逆高速フーリエ変換に限るものではなく、例えば、逆離散フーリエ変換も含まれる。
第1の位相乗算器33kは、変換器32kから出力されたM点のフーリエ変換結果{Rk、RK+k、・・・、R(M−1)K+k}、又は、M点の逆フーリエ変換結果{R’k、R’K+k、・・・、R’(M−1)K+k}の入力を受け付ける。
第1の位相乗算器33kは、M点のフーリエ変換結果{Rk、RK+k、・・・、R(M−1)K+k}に含まれているc(c=1,・・・,M)番目の変換結果の位相、又は、M点の逆フーリエ変換結果{R’k、R’K+k、・・・、R’(M−1)K+k}に含まれているc番目の変換結果の位相を、2π((c−1)(k−1)/(K×M))だけ遅らせる移相を実施する。
第1の位相乗算器33kは、位相移相後のM点の変換結果を加算器34に出力する。
加算器34は、変換器321から出力されたM点の変換結果と、変換器322〜32Kから出力されたM点の変換結果とを加算し、加算後の変換結果35を外部に出力する。
図7及び図8では、フーリエ変換装置の構成要素である変換器32k(k=1,・・・,K)、第1の位相乗算器33k(k=2,・・・,K)及び加算器34のそれぞれが、専用のハードウェアによって実現されるものを想定している。
フーリエ変換装置の構成要素である変換器32k、第1の位相乗算器33k及び加算器34のそれぞれは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGA、又は、これらを組み合わせたものが該当する。
フーリエ変換装置が、ソフトウェア又はファームウェア等によって実現される場合、変換器32k、第1の位相乗算器33k及び加算器34の処理手順をコンピュータに実行させるためのプログラムが図3に示すメモリ21に格納される。そして、図3に示すプロセッサ22がメモリ21に格納されているプログラムを実行する。
変換器32k(k=1,・・・,K)は、データ列31kの入力を受け付ける。
例えば、K=4、M=4であれば、以下に示すデータ列311が変換器321に入力され、以下に示すデータ列312が変換器322に入力される。また、以下に示すデータ列313が変換器323に入力され、以下に示すデータ列314が変換器324に入力される。
データ列311={D1、D5、D9、D13}
データ列312={D2、D6、D10、D14}
データ列313={D3、D7、D11、D15}
データ列314={D4、D8、D12、D16}
例えば、K=4、M=4であれば、変換器321は、4点のフーリエ変換結果{R1、R5、R9、R13}、又は、4点の逆フーリエ変換結果{R’1、R’5、R’9、R’13}を加算器34に出力する。変換器322は、4点のフーリエ変換結果{R2、R6、R10、R14}、又は、4点の逆フーリエ変換結果{R’2、R’6、R’10、R’14}を第1の位相乗算器332に出力する。
変換器323は、4点のフーリエ変換結果{R3、R7、R11、R15}、又は、4点の逆フーリエ変換結果{R’3、R’7、R’11、R’15}を第1の位相乗算器333に出力する。変換器324は、4点のフーリエ変換結果{R4、R8、R12、R16}、又は、4点の逆フーリエ変換結果{R’4、R’8、R’12、R’16}を第1の位相乗算器334に出力する。
例えば、K=4、M=4であれば、第1の位相乗算器332は、4点のフーリエ変換結果{R2、R6、R10、R14}、又は、4点の逆フーリエ変換結果{R’2、R’6、R’10、R’14}の入力を受け付ける。第1の位相乗算器333は、4点のフーリエ変換結果{R3、R7、R11、R15}、又は、4点の逆フーリエ変換結果{R’3、R’7、R’11、R’15}の入力を受け付ける。第1の位相乗算器334は、4点のフーリエ変換結果{R4、R8、R12、R16}、又は、4点の逆フーリエ変換結果{R’4、R’8、R’12、R’16}の入力を受け付ける。
第1の位相乗算器33kは、位相移相後のM点の変換結果を加算器34に出力する。
例えば、K=4、M=4であれば、第1の位相乗算器332は、4点のフーリエ変換結果{R2、R6、R10、R14}、又は、4点の逆フーリエ変換結果{R’2、R’6、R’10、R’14}の入力を受け付ける。
第1の位相乗算器332は、4点のフーリエ変換結果{R2、R6、R10、R14}のうち、c=1番目の変換結果R2の位相、又は、4点の逆フーリエ変換結果{R’2、R’6、R’10、R’14}のうち、c=1番目の変換結果R’2の位相を、2π×(1−1)×(2−1)/(4×4)=0だけ遅らせる移相を実施する。第1の位相乗算器332は、c=2番目の変換結果R6の位相、又は、c=2番目の変換結果R’6の位相を、2π×(2−1)×(2−1)/(4×4)=π/8だけ遅らせる移相を実施する。第1の位相乗算器332は、c=3番目の変換結果R10の位相、又は、c=3番目の変換結果R’10の位相を、2π×(3−1)×(2−1)/(4×4)=π/4だけ遅らせる移相を実施する。第1の位相乗算器332は、c=4番目の変換結果R14の位相、又は、c=4番目の変換結果R’14の位相を、2π×(4−1)×(2−1)/(4×4)=3π/8だけ遅らせる移相を実施する。
第1の位相乗算器333は、4点のフーリエ変換結果{R3、R7、R11、R15}、又は、4点の逆フーリエ変換結果{R’3、R’7、R’11、R’15}の入力を受け付ける。
第1の位相乗算器333は、4点のフーリエ変換結果{R3、R7、R11、R15}のうち、c=1番目の変換結果R3の位相、又は、4点の逆フーリエ変換結果{R’3、R’7、R’11、R’15}のうち、c=1番目の変換結果R’3の位相を、2π×(1−1)×(3−1)/(4×4)=0だけ遅らせる移相を実施する。第1の位相乗算器333は、c=2番目の変換結果R7の位相、又は、c=2番目の変換結果R’7の位相を、2π×(2−1)×(3−1)/(4×4)=π/4だけ遅らせる移相を実施する。第1の位相乗算器333は、c=3番目の変換結果R11の位相、又は、c=3番目の変換結果R’11の位相を、2π×(3−1)×(3−1)/(4×4)=π/2だけ遅らせる移相を実施する。第1の位相乗算器333は、c=4番目の変換結果R15の位相、又は、c=4番目の変換結果R’15の位相を、2π×(4−1)×(3−1)/(4×4)=3π/4だけ遅らせる移相を実施する。
第1の位相乗算器334は、4点のフーリエ変換結果{R4、R8、R12、R16}、又は、4点の逆フーリエ変換結果{R’4、R’8、R’12、R’16}の入力を受け付ける。
第1の位相乗算器334は、4点のフーリエ変換結果{R4、R8、R12、R16}のうち、c=1番目の変換結果R4の位相、又は、4点の逆フーリエ変換結果{R’4、R’8、R’12、R’16}のうち、c=1番目の変換結果R’4の位相を、2π×(1−1)×(4−1)/(4×4)=0だけ遅らせる移相を実施する。第1の位相乗算器334は、c=2番目の変換結果R8の位相、又は、c=2番目の変換結果R’8の位相を、2π×(2−1)×(4−1)/(4×4)=3π/8だけ遅らせる移相を実施する。第1の位相乗算器334は、c=3番目の変換結果R12の位相、又は、c=3番目の変換結果R’12の位相を、2π×(3−1)×(4−1)/(4×4)=3π/4だけ遅らせる移相を実施する。第1の位相乗算器334は、c=4番目の変換結果R16の位相、又は、c=4番目の変換結果R’16の位相を、2π×(4−1)×(4−1)/(4×4)=9π/8だけ遅らせる移相を実施する。
加算器34は、加算後の変換結果35を外部に出力する。
加算器34は、4点のフーリエ変換結果として、{R1+R2+R3+R4、R5+R6+R7+R8、R9+R10+R11+R12、R13+R14+R15+R16}を外部に出力する。
4点のフーリエ変換結果{R1+R2+R3+R4、R5+R6+R7+R8、R9+R10+R11+R12、R13+R14+R15+R16}は、K×M(=4×4)個のデータに対する16点のフーリエ変換結果{R1、R2、R3、・・・R16}に含まれているフーリエ変換結果{R1、R2、R3、R4}に相当する。
あるいは、加算器34は、変換器321から出力された逆フーリエ変換結果{R’1、R’5、R’9、R’13}と、第1の位相乗算器332から出力された逆フーリエ変換結果{R’2、R’6、R’10、R’14}と、第1の位相乗算器333から出力された逆フーリエ変換結果{R’3、R’7、R’11、R’15}と、第1の位相乗算器334から出力された逆フーリエ変換結果{R’4、R’8、R’12、R’16}とを加算する。加算器34は、4点の逆フーリエ変換結果として、{R’1+R’2+R’3+R’4、R’5+R’6+R’7+R’8、R’9+R’10+R’11+R’12、R’13+R’14+R’15+R’16}を外部に出力する。
4点の逆フーリエ変換結果{R’1+R’2+R’3+R’4、R’5+R’6+R’7+R’8、R’9+R’10+R’11+R’12、R’13+R’14+R’15+R’16}は、K×M(=4×4)個のデータに対する16点の逆フーリエ変換結果{R’1、R’2、R’3、・・・R’16}に含まれている逆フーリエ変換結果{R’1、R’2、R’3、R’4}に相当する。
例えば、K=4であれば、処理速度が約4倍速くなり、例えば、K=8であれば、処理速度が約8倍速くなる。
実施の形態4では、第2の位相乗算器36を備えるフーリエ変換装置について説明する。
図9は、実施の形態4に係るフーリエ変換装置を示す構成図である。
図9に示すフーリエ変換装置では、図7に示すフーリエ変換装置と同様に、Kは2以上の整数、Mは2以上の整数である。
第2の位相乗算器36は、例えば、位相乗算回路によって実現される。
第2の位相乗算器36は、K個の変換器321〜32Kの中の、1番目の変換器321から出力されたM点の変換結果を加算器34に出力する。
第2の位相乗算器36は、(K−1)個の第1の位相乗算器332〜33Kのうち、k(k=2,・・・,K)番目の第1の位相乗算器33kから出力されたM点の変換結果の位相を、2π((k−1)/K)だけ進める移相を実施する。
第2の位相乗算器36は、位相移相後のM点の変換結果を加算器34に出力する。
図9及び図10では、フーリエ変換装置の構成要素である変換器32k(k=1,・・・,K)、第1の位相乗算器33k(k=2,・・・,K)、第2の位相乗算器36及び加算器34のそれぞれが、専用のハードウェアによって実現されるものを想定している。
フーリエ変換装置の構成要素である変換器32k、第1の位相乗算器33k、第2の位相乗算器36及び加算器34のそれぞれは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGA、又は、これらを組み合わせたものが該当する。
フーリエ変換装置が、ソフトウェア又はファームウェア等によって実現される場合、変換器32k、第1の位相乗算器33k、第2の位相乗算器36及び加算器34の処理手順をコンピュータに実行させるためのプログラムが図3に示すメモリ21に格納される。そして、図3に示すプロセッサ22がメモリ21に格納されているプログラムを実行する。
第2の位相乗算器36以外は、図7に示すフーリエ変換装置と同様であるため、ここでは、主に、第2の位相乗算器36の動作を説明する。
第2の位相乗算器36は、変換器321から出力されたM点の変換結果の位相については、移相せずに、M点の変換結果を加算器34に出力する。
第2の位相乗算器36は、(K−1)個の第1の位相乗算器332〜33Kのうち、k(k=2,・・・,K)番目の第1の位相乗算器33kから出力された変換結果の位相については、2π((k−1)/K)だけ進める移相を実施し、位相移相後のM点の変換結果を加算器34に出力する。
例えば、K=4、M=4であれば、第2の位相乗算器36は、第1の位相乗算器332から出力された4点のフーリエ変換結果{R2、R6、R10、R14}の位相を2π((2−1)/4)=π/2だけ進める移相を実施する。第2の位相乗算器36は、第1の位相乗算器333から出力された4点のフーリエ変換結果{R3、R7、R11、R15}の位相を2π((3−1)/4)=πだけ進める移相を実施する。第2の位相乗算器36は、第1の位相乗算器333から出力された4点のフーリエ変換結果{R4、R8、R12、R16}の位相を2π((4−1)/4)=3π/2だけ進める移相を実施する。
加算器34は、加算後の変換結果35を外部に出力する。
加算器34は、4点のフーリエ変換結果として、{R1+R2+R3+R4、R5+R6+R7+R8、R9+R10+R11+R12、R13+R14+R15+R16}を外部に出力する。
4点のフーリエ変換結果{R1+R2+R3+R4、R5+R6+R7+R8、R9+R10+R11+R12、R13+R14+R15+R16}は、K×M(=4×4)個のデータに対する16点のフーリエ変換結果{R1、R2、R3、・・・R16}に含まれているフーリエ変換結果{R5、R6、R7、R8}に相当する。
あるいは、加算器34は、変換器321から出力された逆フーリエ変換結果{R’1、R’5、R’9、R’13}と、第1の位相乗算器332から出力された逆フーリエ変換結果{R’2、R’6、R’10、R’14}と、第1の位相乗算器333から出力された逆フーリエ変換結果{R’3、R’7、R’11、R’15}と、第1の位相乗算器334から出力された逆フーリエ変換結果{R’4、R’8、R’12、R’16}とを加算する。
加算器34は、4点の逆フーリエ変換結果として、{R’1+R’2+R’3+R’4、R’5+R’6+R’7+R’8、R’9+R’10+R’11+R’12、R’13+R’14+R’15+R’16}を外部に出力する。
4点の逆フーリエ変換結果{R’1+R’2+R’3+R’4、R’5+R’6+R’7+R’8、R’9+R’10+R’11+R’12、R’13+R’14+R’15+R’16}は、K×M(=4×4)個のデータに対する16点の逆フーリエ変換結果{R’1、R’2、R’3、・・・R’16}に含まれている逆フーリエ変換結果{R’5、R’6、R’7、R’8}に相当する。
しかし、これは一例に過ぎず、第2の位相乗算器36は、(K−1)個の第1の位相乗算器332〜33Kのうち、k(k=2,・・・,K)番目の第1の位相乗算器33kから出力されたM点の変換結果の位相を、2πi((k−1)/K)(iは1以上の整数)だけ進める移相を実施するものであってもよい。
例えば、K=4、M=4であるとき、i=1であれば、加算器34から外部に出力される4点のフーリエ変換結果{R1+R2+R3+R4、R5+R6+R7+R8、R9+R10+R11+R12、R13+R14+R15+R16}は、K×M(=4×4)個のデータに対する16点のフーリエ変換結果{R1、R2、R3、・・・R16}に含まれているフーリエ変換結果{R5、R6、R7、R8}に相当する。i=2であれば、加算器34から外部に出力される4点のフーリエ変換結果{R1+R2+R3+R4、R5+R6+R7+R8、R9+R10+R11+R12、R13+R14+R15+R16}は、K×M(=4×4)個のデータに対する16点のフーリエ変換結果{R1、R2、R3、・・・R16}に含まれているフーリエ変換結果{R9、R10、R11、R12}に相当する。i=3であれば、加算器34から外部に出力される4点のフーリエ変換結果{R1+R2+R3+R4、R5+R6+R7+R8、R9+R10+R11+R12、R13+R14+R15+R16}は、K×M(=4×4)個のデータに対する16点のフーリエ変換結果{R1、R2、R3、・・・R16}に含まれているフーリエ変換結果{R13、R14、R15、R16}に相当する。
ここでは、K=4、M=16、N=64であるとき、加算器34が、64点のフーリエ変換結果{R1、R2、R3、・・・R64}のうち、g(gは、1以上、49以下の整数)番目のフーリエ変換結果を起点とする16点のフーリエ変換結果{Rg、Rg+1、Rg+2、・・・Rg+14、Rg+15}を出力する場合の動作を説明する。以下、g=11の例を説明する。なお、gは、第2の位相乗算器36及び加算器34におけるそれぞれの内部メモリに格納されているものとする。ただし、gは、フーリエ変換装置の外部から与えられるものであってもよい。
第2の位相乗算器36は、例えば、第1の位相乗算器332により移相が進められた16点の変換結果{R2、R6、R10、・・・、R62}を取得し、例えば、第1の位相乗算器333により移相が進められた16点の変換結果{R3、R7、R11、・・・、R63}を取得する。また、第2の位相乗算器36は、例えば、第1の位相乗算器334により移相が進められた16点の変換結果{R4、R8、R12、・・・、R64}を取得する。
なお、第2の位相乗算器36は、変換器321から出力された16点の変換結果{R1、R5、R9、・・・、R61}も取得する。
第2の位相乗算器36は、取得した16点の変換結果{R2、R6、R10、・・・、R62}のうち、先頭の変換結果R2を起点として、並び順でg−1(=10)点の変換結果{R2、R6、R10、・・・、R38}の位相を、0だけ進める移相を実施する。0だけ進める移相の実施は、10点の変換結果{R2、R6、R10、・・・、R38}の位相を進めないことに相当する。
第2の位相乗算器36は、取得した16点の変換結果{R2、R6、R10、・・・、R62}のうち、残りの6点の変換結果{R42、R46、R50、・・・、R62}の位相を、2π((2−1)/4)=π/2だけ進める移相を実施する。
第2の位相乗算器36は、取得した16点の変換結果{R3、R7、R11、・・・、R63}のうち、残りの6点の変換結果{R43、R47、R51、・・・、R63}の位相を、2π((3−1)/4)=πだけ進める移相を実施する。
第2の位相乗算器36は、取得した16点の変換結果{R4、R8、R12、・・・、R64}のうち、残りの6点の変換結果{R44、R48、R52、・・・、R64}の位相を、2π((4−1)/4)=3π/2だけ進める移相を実施する。
加算器34は、フーリエ変換結果として、{R1+R2+R3+R4、R5+R6+R7+R8、R9+R10+R11+R12、R13+R14+R15+R16、・・・、R61+R62+R63+R64}を外部に出力する。
フーリエ変換結果{R1+R2+R3+R4、R5+R6+R7+R8、R9+R10+R11+R12、R13+R14+R15+R16、・・・、R61+R62+R63+R64}は、N(=64)個のデータに対する64点のフーリエ変換結果{R1、R2、R3、・・・R64}に含まれているフーリエ変換結果{R11、R12、R13、R14、R15、R16、R17、R18、R19、R20、R21、R22、R23、R24、R25、R26}に相当する。
図9に示すフーリエ変換装置では、(K−1)個の第1の位相乗算器332〜33Kと、第2の位相乗算器36とが別々のハードウェアであるものを示している。
しかし、これは一例に過ぎず、図11に示すように、(K−1)個の第1の位相乗算器332〜33Kと、第2の位相乗算器36とが、1つの位相乗算器37に含まれているものであってもよい。
図11において、図9と同一符号は同一又は相当部分を示すので説明を省略する。
位相乗算器37は、(K−1)個の第1の位相乗算器332〜33Kと、第2の位相乗算器36とを備えている。
図11に示すフーリエ変換装置の動作は、図9に示すフーリエ変換装置の動作と同様である。
位相乗算器37は、図9に示す第1の位相乗算器332〜33Kにおける移相の実施と、図9に示す第2の位相乗算器36における移相の実施とを別々に行ってもよい。しかし、これに限るものではなく、位相乗算器37は、図9に示す第1の位相乗算器332〜33Kにおける移相処理と、図9に示す第2の位相乗算器36における移相処理とを統合し、統合した移相処理を実施するようにしてもよい。
Claims (5)
- K×M(Kは2以上の整数、Mは2以上の整数)個のデータのうち、k(k=1,・・・,K)番目のデータがK個のデータ列におけるそれぞれの先頭のデータであり、前記K個のデータ列が、前記K×M個のデータのうち、それぞれの先頭のデータを起点とする並び順でK個おきのM個のデータをそれぞれ含んでおり、
前記K個のデータ列のうち、いずれか1つのデータ列に含まれているM個のデータに対するM点のフーリエ変換、又は、前記いずれか1つのデータ列に含まれているM個のデータに対するM点の逆フーリエ変換を実施し、M点の変換結果として、M点のフーリエ変換の変換結果、又は、M点の逆フーリエ変換の変換結果を出力するK個の変換器と、
前記K個の変換器の中の、2番目の変換器からK番目の変換器のうち、いずれか1つの変換器から出力されたM点の変換結果に含まれているc(c=1,・・・,M)番目の変換結果の位相を、2π((c−1)(k−1)/(K×M))(k=2,・・・,K)だけ遅らせる移相を実施し、位相移相後のM点の変換結果を出力する(K−1)個の第1の位相乗算器と、
前記K個の変換器の中の、1番目の変換器から出力されたM点の変換結果と、前記(K−1)個の第1の位相乗算器から出力されたM点の変換結果とを加算する加算器と
を備えたフーリエ変換装置。 - 前記1番目の変換器から出力されたM点の変換結果を前記加算器に出力し、前記(K−1)個の第1の位相乗算器のうち、k(k=2,・・・,K)番目の第1の位相乗算器から出力されたM点の変換結果の位相を、2π((k−1)/K)だけ進める移相を実施し、位相移相後のM点の変換結果を前記加算器に出力する第2の位相乗算器を備え、
前記加算器は、前記1番目の変換器から出力されたM点の変換結果と、前記第2の位相乗算器から出力された(K−1)個のM点の変換結果とを加算することを特徴とする請求項1記載のフーリエ変換装置。 - 前記第2の位相乗算器は、前記1番目の変換器から出力されたM点の変換結果を前記加算器に出力し、前記(K−1)個の第1の位相乗算器のうち、k(k=2,・・・,K)番目の第1の位相乗算器から出力されたM点の変換結果の位相を、2πi((k−1)/K)(iは1以上の整数)だけ進める移相を実施し、位相移相後のM点の変換結果を前記加算器に出力することを特徴とする請求項2記載のフーリエ変換装置。
- 前記(K−1)個の第1の位相乗算器と、前記第2の位相乗算器とが、1つの位相乗算器に含まれていることを特徴とする請求項2記載のフーリエ変換装置。
- K×M(Kは2以上の整数、Mは2以上の整数)個のデータのうち、k(k=1,・・・,K)番目のデータがK個のデータ列におけるそれぞれの先頭のデータであり、前記K個のデータ列が、前記K×M個のデータのうち、それぞれの先頭のデータを起点とする並び順でK個おきのM個のデータをそれぞれ含んでおり、
K個の変換器のそれぞれが、前記K個のデータ列のうち、いずれか1つのデータ列に含まれているM個のデータに対するM点のフーリエ変換、又は、前記いずれか1つのデータ列に含まれているM個のデータに対するM点の逆フーリエ変換を実施し、M点の変換結果として、M点のフーリエ変換の変換結果、又は、M点の逆フーリエ変換の変換結果を出力し、
(K−1)個の第1の位相乗算器のそれぞれが、前記K個の変換器の中の、2番目の変換器からK番目の変換器のうち、いずれか1つの変換器から出力されたM点の変換結果に含まれているc(c=1,・・・,M)番目の変換結果の位相を、2π((c−1)(k−1)/(K×M))(k=2,・・・,K)だけ遅らせる移相を実施して、位相移相後のM点の変換結果を出力し、
加算器が、前記K個の変換器の中の、1番目の変換器から出力されたM点の変換結果と、前記(K−1)個の第1の位相乗算器から出力されたM点の変換結果とを加算する
フーリエ変換方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/036685 WO2021053779A1 (ja) | 2019-09-19 | 2019-09-19 | フーリエ変換装置及びフーリエ変換方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6861887B1 true JP6861887B1 (ja) | 2021-04-21 |
JPWO2021053779A1 JPWO2021053779A1 (ja) | 2021-09-30 |
Family
ID=74884421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020505946A Active JP6861887B1 (ja) | 2019-09-19 | 2019-09-19 | フーリエ変換装置及びフーリエ変換方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6861887B1 (ja) |
WO (1) | WO2021053779A1 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4124620B2 (ja) * | 2002-07-11 | 2008-07-23 | 松下電器産業株式会社 | Ofdm受信装置 |
JP2007243546A (ja) * | 2006-03-08 | 2007-09-20 | Nec Corp | アンテナ校正装置およびアンテナ校正方法 |
-
2019
- 2019-09-19 JP JP2020505946A patent/JP6861887B1/ja active Active
- 2019-09-19 WO PCT/JP2019/036685 patent/WO2021053779A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021053779A1 (ja) | 2021-03-25 |
JPWO2021053779A1 (ja) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9712185B2 (en) | System and method for improved fractional binary to fractional residue converter and multipler | |
Matutino et al. | Arithmetic units for RNS moduli {2n-3} and {2n+ 3} operations | |
US9146707B2 (en) | Generating a fast 3x multiplicand term for radix-8 booth multiplication | |
US8396913B2 (en) | Fast fourier transform architecture | |
US7634524B2 (en) | Arithmetic method and function arithmetic circuit for a fast fourier transform | |
Saenz et al. | FPGA design and implementation of radix-2 fast Fourier transform algorithm with 16 and 32 points | |
JP6861887B1 (ja) | フーリエ変換装置及びフーリエ変換方法 | |
US7653676B2 (en) | Efficient mapping of FFT to a reconfigurable parallel and pipeline data flow machine | |
JP4883251B1 (ja) | 半導体集積回路及び指数算出方法 | |
JP3003467B2 (ja) | 演算装置 | |
JP5310720B2 (ja) | Cordicに基づいたfft及びifft装置並びに方法 | |
US20040128335A1 (en) | Fast fourier transform (FFT) butterfly calculations in two cycles | |
Amerbaev et al. | Efficient calculation of cyclic convolution by means of fast Fourier transform in a finite field | |
JP7003299B2 (ja) | フーリエ変換装置及びフーリエ変換方法 | |
Sankaran et al. | Design and Implementation of 1024 Point Pipelined Radix 4 FFT Processor on FPGA for Biomedical Signal Processing Applications | |
TWI564735B (zh) | 資料分配裝置、訊號處理裝置及其資料分配方法 | |
JP2005514599A5 (ja) | ||
Verdoscia et al. | A data-flow methodology for accelerating fft | |
KR101829383B1 (ko) | 지수연산 명령이 지원되지 않는 논리 장치에서 삼각함수를 이용한 지수 연산 장치 | |
JP2008158855A (ja) | 相関演算器及び相関演算方法 | |
US20150113030A1 (en) | Novel approach for significant improvement of fft performance in microcontrollers | |
Drolshagen et al. | A residue number arithmetic based circuit for pipelined computation of autocorrelation coefficients of speech signal | |
RU2649955C1 (ru) | Функциональный преобразователь | |
JPH0535773A (ja) | ベクトル除算方式とその装置 | |
JPH02500310A (ja) | スライスされた加数の加速された加算を行うための方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200203 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200203 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200623 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200630 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200818 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20200818 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201027 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201204 |
|
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: 20210302 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210330 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6861887 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |