Resampling/Interpolate Data

조회 수: 3 (최근 30일)
Philipp Mueller
Philipp Mueller 2021년 5월 30일
편집: Aabha 2025년 2월 7일
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.

답변 (1개)

Aabha
Aabha 2025년 2월 6일
편집: Aabha 2025년 2월 7일
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.

카테고리

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