如何在Matlab中将倾斜波转换为直线波

时间:2014-05-06 08:28:02

标签: matlab signal-processing

我有2列向量,即位置和时间。在我绘制位置与时间之间,如图所示,它是倾斜波形,根据我的数据是真实的。我希望这条波形在直线上不会像下图那样倾斜。我可以将这个形状转换成直线波吗?

由于 enter image description here

1 个答案:

答案 0 :(得分:4)

在mathworks文档中有关于峰值分析的this教程,其中(在旁注中)描述了如何去除数据(通过做Dan的建议):

load noisyecg.mat
t = 1:length(noisyECG_withTrend); 
plot(t,noisyECG_withTrend)        %load the data with trend

[p,s,mu] = polyfit((1:numel(noisyECG_withTrend))',noisyECG_withTrend,6);
f_y = polyval(p,(1:numel(noisyECG_withTrend))',[],mu);     %fitting a polynom in that data

ECG_data = noisyECG_withTrend - f_y;        % Detrend data by subtracting the values of said polynom