このアーカイブを解凍して適当なディレクトリにコピーした後、FftFixed.slnをダブルクリックします(Visual
Studio 2008 Standard Editionを使用しますが、お持ちでない場合はDebugディレクトリのEXEファイルを実行してください)。

Microsoft Visual Studioがスタートするので、左ウインドウの「ソリューション」タブを選択し、FftFixedView.cppをダブルクリックして開きます。

FftCal関数を探しましょう。doubleで宣言されていた変数がintやlong longになっているのを確認。

バタフライ演算の部分で、乗算の後に19ビット右シフト(>>19)が行われているのに注意。

これは入力波形(FixedIn.txt)。16ビットで量子化されているが振幅は5ビット分(32)です。

これは三角関数(FixedTri.txt)です。20ビットで量子化されており、振幅は19ビット分(524,288)あります。これを乗算すると結果はとても大きくなるため、乗算後すぐに19ビット右シフトして振幅を調整します。

|