interpolate_fft プログラム仕様

FFTを用いた周期関数の補間を実行するスクリプト。

概要:

このスクリプトは、入力ファイルから読み込んだ、または内部で生成したデータに対して、 高速フーリエ変換(FFT)を使用して周期関数の補間を行います。 補間されたデータと元のデータ、必要であれば厳密な関数をプロットして比較します。

詳細説明:

スクリプトは以下のいずれかの方法で入力データを取得します。 1. コマンドライン引数またはデフォルトで指定されたExcelファイルからデータを読み込みます。

do_mirror フラグがTrueの場合、読み込んだデータはミラーリングされて拡張されます。

  1. Excelファイルが指定されていない、または "generate" が指定された場合、 periodic_function で定義されたサンプルデータが生成されます。

取得したデータはFFTによって周波数領域に変換され、 指定された補間係数に基づいてパディングされた後、逆FFTによって時間領域に戻されます。 これにより、元のデータ点よりも密な補間データが生成されます。 最終的に、元のデータ、補間されたデータ、および生成された場合は厳密な関数のプロットが表示されます。

関連リンク:

FFTを用いた周期関数の補間

jsap_crystal.interpolate_fft.main()[ソース]

データの取得、FFT補間、および結果の可視化を制御します。

jsap_crystal.interpolate_fft.periodic_function(k)[ソース]

特定の周期関数を計算します。

概要:

k の値に基づいて -cos(2πk) * (1 + 5k^2) という周期関数の値を計算します。

パラメータ:

k -- numpy.ndarray または float - 関数を評価する入力値。

戻り値:

numpy.ndarray または float - 関数の計算結果。

jsap_crystal.interpolate_fft.read_data(infile, do_mirror=False)[ソース]

指定されたExcelファイルからデータを読み込みます。

概要:

Excelファイルの1列目と2列目からxとyのデータを読み込み、NaN値を除外します。

パラメータ:
  • infile -- str - 読み込むExcelファイルのパス。

  • do_mirror -- bool, optional - データをミラーリングして拡張するかどうか。

戻り値:

tuple of list - xデータとyデータのリスト。