How to resample a signal by a fraction

51 ビュー (過去 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 Center および File ExchangeMultirate Signal Processing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by