Why do I obtain edge effects or oscillations when using the RESAMPLE function to perform non-integer resampling on my signal in the Signal Processing Toolbox 6.7 (R2007a)? I am using the RESAMPLE function on my signal with Signal Processing Toolbox 6.7 (R2007a) and I see that the resampled signal suffers from edge effects, i.e. oscillations at the edges. This can be seen from the following example. fs1 = 10; % Original sampling frequency in Hz t1 = 0:1/fs1:1; % Time vector x = t1 + 100; % Define a linear sequence y = resample(x,3,2); % Now resample it t2 = (0:(length(y)-1))*2/(3*fs1); % New time vector plot(t1,x,'*',t2,y,'o',(-0.5:0.01:1.5),(-0.5:0.01:1.5)+100,':') legend('original','resampled'); xlabel('Time') I know that this problem could be prevented if I were able to specify initial and final conditions for my signal in the RESAMPLE function. However, the function does not allow that. I want to compensate for this and obtain correct results.
Prashant Kumar answered .
2025-11-20
fs1 = 10; % Original sampling frequency in Hz
t1 = 0:1/fs1:1; % Time vector
x = t1 + 100; % Define a linear sequence
xpad = [repmat(x(1), 1, 10), x, repmat(x(end), 1, 10)];
tpad = [-1/fs1*10 : 1/fs1: 0-1/fs1, t1, 1+1/fs1:1/fs1:1+1/fs1*10];
ypad = resample(xpad,3,2); % Now resample it
t2 = (0:(length(ypad)-1))*2/(3*fs1) - 1; % New time vector
plot(t1,x,'*',t2,ypad,'o',(-0.5:0.01:1.5),(-0.5:0.01:1.5)+100,':')
legend('original','resampled'); xlabel('Time')