変数をすべて整数化する
このアーカイブを解凍して適当なディレクトリにコピーした後、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ビット右シフトして振幅を調整します。


Back


Top Page