基数4 FFTと基数2


10

基数4の実装は、同等に適切にコーディングされた基数2 FFTよりも高速ですか?もしそうなら、なぜそれはより速くなりますか?

回答:


5

場合によります。理論的には、基数4は蝶の数の1/4で、蝶ごとに3 mpy + 8が加算され(適切に構成されている場合)、基数2は蝶ごとに1 mpy + 2が加算されるため、基数4でいくつかの乗算を保存できます。 。

したがって、乗算の点では少し優れていますが、コード構造、例外処理、係数管理、レジスタ管理、ディジットリバースアドレッシングなどの点で複雑さが増しています。

そのため、mpyの数が最近のほとんどのハードウェアでは当てはまらない制限要因である場合にのみ利点があります。


2

ここに!FFTの2つのアルゴリズムの主な違いの説明を見つけることができます。ドキュメントの最後にいくつかの表があります。データのサイズが増加した場合、基数4のfftのパフォーマンスは基数2よりも優れていることに注意できます。


2

基数4のFFTを見る簡単な方法は、1つの基数4の蝶が4つの基数2の蝶を含むと考えることです。1つのパスで2匹の蝶と次のパスで2匹の蝶。蝶の複雑な回転因子が位相差によってオフになっていることを除いて、回転因子は同じです。しかし、そのすべての意味は、をと交換し、いくつかのプラス記号とマイナス記号を交換することです。したがって、基数4のFFT algは、4つの複素数値を1回読み取り、複素回転を1回読み込み、一連の演算を実行し、4つの結果を1回格納するだけで済みます。1つの基数4パスを実行し、2つの基数2パスと同じタスクを実行します。π2cos

乗算と加算の正味の数は同じだと思いますが、基数4のバタフライはすべてプロセッサレジスタバンクで実行できます(約16の異なる浮動小数点レジスタがあり、実数部とimag部には8つ必要です) 4つの値のうち、sinとcos twiddlesの2つのレジスター、そしてスクラッチの場合は他のレジスターまたは2つ。これは、メモリで実行するよりも高速です。


-2

基数2では、サンプルの数は2の累乗で表されますが、基数4では、属するサンプルの数は4の累乗です。


1
これがアルゴリズムの速度に影響を与える理由を説明することをお勧めします。これは指数値からは明らかではありません。
MBaz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.