1

正弦曲線を含むいくつかの固定次元 (xLenおよび) の 2 次元データ セットがあります。yLen

正弦曲線の周波数は既に決定しており、次を使用して周波数を使用して独自の正弦データを生成しました。

SineData = math.sin((2*math.pi*freqX)/xLen + (2*math.pi*freqY)/yLen)

ここでfreqXfreqYおよび 曲線の X 方向と Y 方向の振動周波数。

しかし今、線形最小二乗法 (または同様のもの) を実行して、適切な振幅に適合できるようにしたいと考えています。私の知る限り、線形最小二乗法が正しい方法ですが、別の方法があればそれも問題ありません。

関数は、leastsqSciPy が多次元の適合を行わないことです。2/多次元最小二乗フィッティング アルゴリズムの Python 実装はありますか

編集: 2D FFT から正弦波の 2 次元周波数を見つけました。データには 2D サイン + ノイズが含まれているため、2D FFT の最大ピークのみを選択し、それを逆にしました。これで正弦曲線が得られましたが、振幅がオフになっています。2 次元の最小二乗法 (または同様のもの) を実行し、振幅に適合する方法はありますか?

4

2 に答える 2

0

最小二乗フィッティングでは、おそらくカイ二乗などの残差関数を最小化します。これには、モデルからデータを差し引いた各点で二乗された差に対応する推定値の合計が含まれるため、残差を作成する際に次元数が「忘れられます」。したがって、2D 差分関数配列内のすべての値は、たとえば に提供された残差関数の結果として 1D 配列にコピーできますleastsq。2D から 1D ではなく、複素数から実数への例は、この質問に対する私の回答に示されています:最小二乗最小化 複素数

于 2013-11-21T20:15:47.747 に答える
0

三角関数を使用してデータが適切に処理される場合は、2D 有限/離散フーリエ変換 (FFT/DFT) を検討することもできます。

NumPy にはDFTソリューションが組み込まれています。

始めるのに役立つ場所はたくさんあります。Google はこれを見つけまし

元のデータから始めます。変換は、周波数ソリューションが正しいかどうか、また重要な他の周波数があるかどうかを示します。

于 2013-02-06T12:25:17.967 に答える