resample
Resample a real signal by a rational factor using a polyphase FIR filter.
Syntax
output = resample(x,p,q)
output = resample(x,p,q,h)
Inputs
- x
- The signal to be resampled. If x is a matrix then each column is resampled.
- p
- The upsample (numerator) factor.
- q
- The downsample (denominator) factor.
- h
- The impulse response of the FIR filter (optional).
Outputs
- output
- The resampled signal.
Example
Resample a curve by a factor of 4/3.
% define signal
fs = 100;
ts = 1/fs;
n = 60;
t = [0:ts:(n-1)*ts];
omega = 2*pi*(fs/4);
x = 8*cos(0.6*omega*t) - 20*sin(0.4*omega*t);
% upsample by a factor of 4/3
p = 4;
q = 3;
ts = (q/p) * ts;
n = (p/q) * n;
tr = [0:ts:(n-1)*ts];
xr = resample(x, p, q);
% plot results
plot(t,x);
hold on;
scatter(t,x);
scatter(tr,xr);
legend('original curve', 'original data', 'resampled data');
Comments
The default Kaiser window is described in chapter 7 of A. V. Oppenheim, R. W. Schafer and J. R. Buck, Discrete-time signal processing, Signal processing series, Prentice-Hall, 1999.