2017-08-28 10 views
1

J'ai un grand signal d'oxymétrie d'impulsion. Une partie de cela est bruyante et va corrompre mes données si je l'utilise. Avez-vous une stratégie pour supprimer automatiquement la partie bruyante? (Comme les données sont très longues et qu'il y a beaucoup de canaux, je ne peux pas vraiment le faire manuellement).Comment supprimer la partie bruyante d'un battement de coeur?

Veuillez trouver l'image ci-jointe pour avoir une idée du signal.

signal png file

+0

Il existe de nombreuses façons de supprimer des valeurs aberrantes d'un signal. Vous pouvez commencer par regarder ['isoutlier'] (https://www.mathworks.com/help/matlab/ref/isoutlier.html). – Cecilia

Répondre

1

Vous pouvez filtrer mais vous devez connaître les caractéristiques spectrales du signal afin que vous puissiez l'extraire ou les caractéristiques spectrales du bruit afin que vous puissiez le supprimer. Avez-vous un signal qui n'a pas de bruit ou savez-vous où se trouve votre signal d'intérêt dans le spectre?

+0

Oui, je sais quelle partie du signal est utile pour moi. Dans le graphique ci-joint, vous pouvez voir une très haute apmlitude dans une partie du signal qui est un mouvement artificat. – Juliette

1

Cela pourrait être le problème identique à en supprimant les valeurs aberrantes de la série chronologique. Ce problème peut être résolu en ajustant la série temporelle avec un modèle donné comme indiqué dans le this link. Par exemple, essayez les codes de simulation suivants.

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])