Octaveを使用してclassical Prony's method(またはPronyの分析による場合もあります)をプログラミングしています。スクリプトは、次のようなテスト信号にはかなりうまく動作:Octaveでロバストな最小二乗
t = 1:600;
sig = exp(-0.01*t).*cos(0.1*t);
が、ノイズの少量が添加されたときに完全に崩壊:
sig = sig + 0.001*rand(size(sig));
問題がpinv
を使用して方程式の過剰決定のセットを計算され線形予測がbulitのとき(上記のリンクを参照)。私はより堅牢で外れ値に敏感ではないものが必要です。残念なことに、Octaveコアの機能はこれまで私を助けませんでした。私はols
とlscov
を試しましたが、彼らはそのトリックをしません。
お願いします。
注:古典的なPronyはこの問題のために非常に問題があり、変更されたアルゴリズム(this oneなど)があることを知っています。私は、古典的な方法が機能するために最大限の努力をしていないと感じています。優れたソルバーを使用すると、このようなノイズが残るはずです。
この問題は、Pronyのメソッド(またはその簡潔なバージョン)を実装することによって大幅に改善されます。 – stephematician