Scipy-fftpack
提供:Dev Guides
SciPy-FFTpack
- フーリエ変換*は、周波数領域での動作を確認するために、時間領域信号で計算されます。 フーリエ変換は、信号およびノイズ処理、画像処理、音声信号処理などの分野での用途があります。 SciPyは、ユーザーが高速フーリエ変換を計算できるようにするfftpackモジュールを提供します。
以下は、fftpackモジュールを使用してフーリエ変換を計算するために使用されるサイン関数の例です。
高速フーリエ変換
高速フーリエ変換の詳細を理解しましょう。
1次元離散フーリエ変換
長さNシーケンスx [n]の長さNのFFT y [k]はfft()によって計算され、逆変換はifft()を使用して計算されます。 次の例を考えてみましょう
上記のプログラムは、次の出力を生成します。
別の例を見てみましょう
上記のプログラムは、次の出力を生成します。
0.02秒のタイムステップで信号を作成しています。 最後のステートメントは、シグナルsigのサイズを出力します。 出力は次のようになります-
信号周波数はわかりません。信号sigのサンプリング時間ステップのみがわかっています。 信号は実関数から送られることになっているため、フーリエ変換は対称になります。 * scipy.fftpack.fftfreq()関数はサンプリング周波数を生成し、 scipy.fftpack.fft()*は高速フーリエ変換を計算します。
例の助けを借りてこれを理解しましょう。
上記のプログラムは、次の出力を生成します。
離散コサイン変換
離散コサイン変換(DCT)*は、異なる周波数で振動するコサイン関数の合計に関して、データポイントの有限シーケンスを表します。 SciPyは、関数 *dct を持つDCTと、関数 idct を持つ対応するIDCTを提供します。 次の例を考えてみましょう。
上記のプログラムは、次の出力を生成します。
逆離散コサイン変換は、離散コサイン変換(DCT)係数からシーケンスを再構築します。 idct関数は、dct関数の逆です。 次の例でこれを理解しましょう。
上記のプログラムは、次の出力を生成します。