interpolate_fft プログラム仕様
FFTを用いた周期関数の補間を実行するスクリプト。
- 概要:
このスクリプトは、入力ファイルから読み込んだ、または内部で生成したデータに対して、 高速フーリエ変換(FFT)を使用して周期関数の補間を行います。 補間されたデータと元のデータ、必要であれば厳密な関数をプロットして比較します。
- 詳細説明:
スクリプトは以下のいずれかの方法で入力データを取得します。 1. コマンドライン引数またはデフォルトで指定されたExcelファイルからデータを読み込みます。
do_mirror フラグがTrueの場合、読み込んだデータはミラーリングされて拡張されます。
Excelファイルが指定されていない、または "generate" が指定された場合、 periodic_function で定義されたサンプルデータが生成されます。
取得したデータはFFTによって周波数領域に変換され、 指定された補間係数に基づいてパディングされた後、逆FFTによって時間領域に戻されます。 これにより、元のデータ点よりも密な補間データが生成されます。 最終的に、元のデータ、補間されたデータ、および生成された場合は厳密な関数のプロットが表示されます。
- 関連リンク:
interpolate_fft_usage
- Quantum.interpolate_fft.main()
- 概要:
FFTを用いた周期関数の補間処理全体を制御し、結果を可視化します。
- 詳細説明:
この関数は、まずコマンドライン引数またはデフォルト設定から補間パラメータを初期化します。 次に、指定されたExcelファイルからデータを読み込むか、 periodic_function を使用してサンプルデータを生成します。 取得したデータに対して高速フーリエ変換 (FFT) を適用し、周波数領域でゼロパディングを行います。 その後、逆FFTを実行して補間された時間領域のデータを生成します。 最後に、元のデータ、補間されたデータ、および厳密な関数(存在する場合)をmatplotlibを用いてプロットし、 結果を可視化します。
- Quantum.interpolate_fft.periodic_function(k)
- 概要:
特定の周期関数を計算します。
- 詳細説明:
入力値 k に基づいて、数式 -cos(2πk) * (1 + 5k^2) を評価し、その結果を返します。 この関数は、周期的なデータ生成のためのサンプルとして使用されます。
- 引数:
- param k:
関数を評価する入力値。numpy.ndarray または float で指定します。
- type k:
numpy.ndarray or float
- 戻り値:
- returns:
関数の計算結果。入力 k と同じ型(numpy.ndarray または float)で返されます。
- rtype:
numpy.ndarray or float
- Quantum.interpolate_fft.read_data(infile, do_mirror=False)
- 概要:
指定されたExcelファイルからx-yデータを読み込みます。
- 詳細説明:
与えられた Excel ファイル (infile) から、最初の2列のデータをxとyとして読み込みます。 読み込まれたデータは NaN 値を除去されます。 do_mirror が True の場合、読み込んだデータはy軸に対してミラーリングされ、元のデータの前に結合されます。 これにより、データセットが周期性を維持したまま拡張されます。
- 引数:
- param infile:
読み込むExcelファイルのパス。
- type infile:
str
- param do_mirror:
データをミラーリングして拡張するかどうかを示すフラグ。Trueの場合、データがミラーリングされます。
- type do_mirror:
bool
- 戻り値:
- returns:
xデータとyデータのリストのタプル。エラーが発生した場合は空のリストのタプル。
- rtype:
tuple of list
- 例外:
- raises Exception:
Excelファイルの読み込み中にエラーが発生した場合にコンソールにエラーメッセージを出力します。