Resampling/Interpolate Data
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Aabha
am 6 Feb. 2025
Bearbeitet: Aabha
am 7 Feb. 2025
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 Kommentare
Siehe auch
Kategorien
Mehr zu Multirate Signal Processing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!