Resampling/Interpolate Data
10 ビュー (過去 30 日間)
古いコメントを表示
Hello,
How can i resample/interpolate the signal (Sig1). Sig1 has approx.99 Hertz and Sig2 has 500 Hertz.
First Column is the time. Second Column is the distance.
Thank you.
0 件のコメント
回答 (1 件)
Aabha
2025 年 2 月 6 日 6:34
編集済み: Aabha
2025 年 2 月 7 日 11:04
Hi Philipp,
You can downsample “Sig2” to match the sampling frequency of “Sig1”. This can be done using the “resample” function in MATLAB. Here is a reference code to help you with it.
distance = Sig2(:, 2);
time = Sig2(:, 1);
fs1 = 99;
fs2 = 500;
[p, q] = rat(fs1 / fs2); %resampling factor
distanceResampled = resample(distance, p, q);
timeResampled = linspace(time(1), time(end), length(distanceResampled))';
Sig2Resampled = [timeResampled, distanceResampled];
If you would like to interpolate the signals instead of resampling, you can use the “interp1” function in MATLAB. Here is a reference code for interpolation
timeSig1 = Sig1(:,1)';
distanceSig1 = Sig1(:, 2)';
timeSig2 = Sig2(:,2)';
distanceSig2 = Sig2(:, 2)';
interpolSig = interp1(timeSig1, distanceSig1, timeSig2, 'linear');
This code will interpolate “Sig1” such that the new signal “interpolSig” will have the same time vector “time1”.
You can also refer to the following documentation for more details.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Multirate Signal Processing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!