Edge distortion when resampling a signal
16 views (last 30 days)
I have the follwing cosine signal that is sampled at rate fs = 32 Hz.
f = 30;
fs = 32;
dt = 1/fs;
t = -0.5:dt:0.5;
c = cos(2.*pi.*f.*t);
I want to upsample it as follows:
ty = linspace(-0.5,0.5,270)
y = resample(c,1003,123);
But as you can see there is distrotion at the edge. Is there any way to avoid that?
Star Strider on 18 Jan 2020
From the documentation:
‘When filtering, resample assumes that the input sequence, x, is zero before and after the samples it is given. Large deviations from zero at the endpoints of x can result in unexpected values for y.’ (In: Resample Linear Sequence)
Minimize it by increasing the filter order and using a Kaiser window.
y = resample(c,1003,123, 16, 192);
Experiment with these and other additional arguments to see the result.