Upsampling the data using interpolation gives NaN values.

8 ビュー (過去 30 日間)
Ajay Kumar
Ajay Kumar 2019 年 9 月 26 日
編集済み: Ajay Kumar 2019 年 10 月 7 日
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 :)
Star Strider
Star Strider 2019 年 9 月 26 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by