2017-08-28 9 views
1

私は大きな脈拍信号を持っています。その一部はノイズが多く、使用するとデータが破損します。ノイズの多い部分を自動的に削除する方法はありますか? (データが非常に長く、多くのチャンネルがあるので、私は実際にそれを手動で行うことはできません)。ハートビートの騒々しい部分を削除するには?

信号を感じるように画像を添付してください。

signal png file

+0

信号から異常値を除去する多くの方法があります。まず、['isoutlier'](https://www.mathworks.com/help/matlab/ref/isoutlier.html)を見てみてください。 – Cecilia

答えて

1

あなたはそれをフィルタリングすることができますが、あなたがそれを抑制することができるので、あなたがそれやノイズのスペクトル特性を抽出することができますので、信号のスペクトル特性を知っておく必要があります。雑音のない信号があるか、スペクトルのどこに興味があるのか​​を知っていますか?

+0

はいシグナルのどの部分が私に役立つのか分かります。添付のプロットでは、モーションアーティファイスである信号の一部で非常に高い瞬間を見ることができます。 – Juliette

1

これは、と同じ問題で、時系列の外れ値を削除する場合があります。 この問題は、this linkに示されているように、与えられたモデルに時系列を当てはめることで解決できます。たとえば、次のシミュレーションコードを試してみてください。

xdata = (0:0.1:2*pi)'; 
y0 = sin(xdata);    % pure data 
gnoise = y0.*randn(size(y0)); % noise component 
ydata = y0 + gnoise; 

f = fittype('a*sin(b*x)'); 
fit1 = fit(xdata,ydata,f,'StartPoint',[1 1]); 

plot(fit1,'r-',xdata,ydata,'k.',outliers,'m*') 
xlim([0 2*pi]) 
関連する問題