AtmelのAT91SAM9G20プロセッサを搭載した組み込みLinuxシステム用のC/C++ソフトウェアを開発しています。Linuxユーザースペースプログラムを使用して、固定小数点(またはおそらく浮動小数点)の計算を使用してFFTをすばやく計算する必要があります。アセンブラが実装に関してここに行く方法である可能性があり、gccコンパイラを使用してコンパイルするときに追加の-mpcuスイッチが必要になる可能性があることを理解しています。この実装を進めるための最良の方法は何ですか?また、利用可能な優れた本のリファレンスまたは最適化されたFOSSライブラリはありますか?
短いFFT長(つまり1024ポイント)を何度も適用する必要があるいくつかのアルゴリズムを実装する必要があり、一部のライブラリ(kissfftなど)も同様に機能するかどうか疑問に思います。私は長いFFTの長さにも興味があるので、以下の回答で提案されているFFTWもうまく機能します。
この質問に関連して、ARM9Linuxユーザースペースプログラムで整数除算がどのように処理されるのか疑問に思っています。2つの整数(25/4など)を除算する場合、除算はソフト浮動小数点数を使用して行われますか?また、いくつかの大量のクランチアルゴリズムを実装する必要があります。ここでは、浮動小数点演算よりも固定小数点を使用する方がよいかどうか、およびgccコンパイラが実際に処理する方法について疑問に思っています。