How to resample a signal by a fraction

조회 수: 50 (최근 30일)
Saed
Saed 2013년 5월 17일
댓글: Kir 2020년 5월 25일
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

채택된 답변

Matt Kindig
Matt Kindig 2013년 5월 19일
편집: Matt Kindig 2013년 5월 19일
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
Saed
Saed 2013년 5월 20일
This seems to work just fine.
Thanks

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

David Barry
David Barry 2013년 5월 17일
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
David Barry
David Barry 2013년 5월 20일
I mean having P and Q values of 1 and 1.0010 is the same as having P and Q values of 1000 and 1001.
Kir
Kir 2020년 5월 25일
P and Q are integers

댓글을 달려면 로그인하십시오.


Malcolm Lidierth
Malcolm Lidierth 2013년 5월 19일
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.

카테고리

Help CenterFile Exchange에서 Multirate Signal Processing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by