MATLAB: Working of interpolation or decimation

decimationimage processinginterpolationMATLAB

Hello,
Can someone explain how the interpolation or decimation can be used to fit the number of samples between the two signals if both the signals doesn't have the same number of samples.
Thanks.

Best Answer

See this demo:
% Make signal #1
t1 = linspace(-2*pi, 2*pi, 200);
period = 1.5;
y1 = sin(2*pi*t1/period);
plot(t1, y1, 'bo-', 'LineWidth', 6, 'MarkerSize', 20);
grid on;
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
% Make signal #2
t2 = linspace(-2*pi, 2*pi, 130);
period = 1.5;
y2 = sin(2*pi*t2/period);
hold on;
plot(t2, y2, 'ys-', 'LineWidth', 4);
% Interpolate signal 2 up to have same number of samples as signal 1
y2Interp = interp1(t2, y2, t1);
plot(t1, y2Interp, 'rd-', 'LineWidth', 2);
legend('signal 1', 'signal 2', 'signal 2 interpolated');
% Now get signal half way between the signal #1
% and the interpolated signal #2
signal3 = 0.5 * y1 + 0.5 * y2Interp;
I trust you can do the case where you want to interpolate y1 down to the lesser number of samples that y2 has - it's straightforward.