2017-08-28 63 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])