How to resample a signal by a fraction

63 Ansichten (letzte 30 Tage)
Saed
Saed am 17 Mai 2013
Kommentiert: Kir am 25 Mai 2020
Hello,
I have the time-domain received signal v(t) and I want to re-sample it at as v(t/(1+a)), where a is not an integer and it is in the order of ~10^-3. How can I do that in MATLAB, since the resample function requires that both P and Q be integer?
Thanks

Akzeptierte Antwort

Matt Kindig
Matt Kindig am 19 Mai 2013
Bearbeitet: Matt Kindig am 19 Mai 2013
You could use interpolation instead. Something like this:
vnew = interp1( t, v, t/(1+a), 'linear');
You could use other interpolation approaches ('spline','cubic', etc.) as well, as appropriate.
  1 Kommentar
Saed
Saed am 20 Mai 2013
This seems to work just fine.
Thanks

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

David Barry
David Barry am 17 Mai 2013
I suggest you reciprocate your a variable and round it to the nearest integer. You then just need to make sure you get the arguments the correct way in the resample function.
y = resample(x,p,q) resamples the sequence in vector x at p/q times the original sampling rate
  5 Kommentare
Kir
Kir am 25 Mai 2020
P and Q are integers

Melden Sie sich an, um zu kommentieren.


Malcolm Lidierth
Malcolm Lidierth am 19 Mai 2013
Is this any help?
% SincResample returns the data convolved with a set of time-shifted windowed sinc functions, one for each of the samples [1..size(x,1)] in the input signal.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by