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