データをエクスポートする際、関連するデータポイントのみをエクスポートします。したがって、グラフが直線の場合、非常にノイズの多い信号と比較してデータポイントが少なくなるはずです。MATLABから「関連」データのみをエクスポートします
機能が同時に3点で見ているとlinar回帰を作るのアレイを通過します:
私はすでにユーザー作られた機能について従う考えを作っ私の問題を解決する何のMATLAB関数はありません
。精度が一定の閾値を超える場合、関数は中点(元の配列のコピー内)を削除します。グラフをLaTeXにエクスポートしようとしたときに問題が発生し、データの制限を超えました。信号には、私が見たいと思ういくつかの非常に重要なピークがあります。残りはまっすぐです。
これは、問題を視覚化するための非常に簡単なデモンストレーションスクリプトです。信号の最初の部分では、信号を正しく表示するために必要な点が少なくなりますが、右に行くほど多くの点が必要になり、信号には何も付いていません。
更新:自分自身でアルゴリズムのMVPをプログラムしました。残念ながら、それは適応的ではありません。だから私が入力ポイントの数を変更する場合、それは動作するように押収する。今すぐそれを改善し始めるでしょう。
Update2:それはうまくいきません。間違いは私の側です。まだアイデアを示しています。
clear
x = linspace(0.1,10,1000);
y = sin(x.^2);
hold on
%plot(x,y)
x_new = x;
y_new = y;
for n = 2:999
expected(n) = (y(n+1)-y(n-1))/2+y(n-1);
p(n)=y(n)/expected(n);
if(p(n) > 0.99 && p(n) < 1.01);
del(n)=n;
else
del (n)=1;
end
end
del (1)=1;
x_new(del) = [];
y_new(del) = [];
plot(x_new,y_new);
あなたは信号がゆっくり変化しているときを決定するために、信号の導関数を使用することができ、そしてそれらの部品アンダーサンプル。コードを使って 'd = abs(diff(y)./ diff(x));'を試してみてください。 – Zep
私もこの考え方を持っていましたが、データをフィルタリングすることは、データポイントが適切かどうかを判断しないという難しい部分です。少なくとも私の意見では。 –
ああ、あなたが言ったように、坂道ではなく湾曲が必要になるでしょう。 –