Upsampling the data using interpolation gives NaN values.

8 次查看(过去 30 天)
Hello everyone,
I have the data of size 2173x1. I want to increase the number of samples to length of 2225570x1 using interpolation/resampling.
I tried using interp1 function and ended up having the required length, but NaN values after 2173 samples.
Thanks in advance.

采纳的回答

Star Strider
Star Strider 2019-9-26
Use the 'extrap' argument in interp1.
Example —
D = load('x.mat');
x = D.x;
v = 1:numel(x);
ve = 1:2225570;
x_extended = interp1(v, x, ve, 'linear','extrap');
This is dangerous, because you have no idea what ‘x’ actually would be beyond its current definition. I would definitely avoid that.
However you can completely avoid all those problems if you simply want more points in ‘x’:
vr = linspace(min(v), max(v), 2225570);
x_resampled = interp1(v, x, vr);
Experiment to get the result you want.
  2 个评论
Ajay Kumar
Ajay Kumar 2019-9-26
Yes, I have tried 'extrap' before, and that goes beyond the maximum limit of original data and I simply neglected it.
But anyways, the linspace thing worked out. Thanks :)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Multirate Signal Processing 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by