Received signal not on sampling time

5 views (last 30 days)
Hello all,
I have a sequence d of length N samples each of duration Ts. The channel I have will scale the received samples by a factor (1+a), which means that the received samples will not be on multiples of Ts but on multiples of Ts*(1+a). How can I capture this effect in MATLAB?
Thanks in advance

Accepted Answer

Star Strider
Star Strider on 24 Apr 2014
I’m not certain I completely understand what you want to do, but the Signal Processing Toolbox function resample may work.
  54 Comments
Star Strider
Star Strider on 4 Jun 2014
If z is relatively long, there may not be much difference from lengthening or shortening tNew by one element. The key is the result: the lengths are equal.

Sign in to comment.

More Answers (1)

rifat
rifat on 28 Apr 2014
I think the following script should do the work:
signal_vector= [1 1 1 1 1]; % Define your signal here
Ts=1/50; % Define sampling period here
a=1; % define 'a' here
N=length(signal_vector);
x=0:Ts:(N-1)*Ts;
new_x=0:(1+a)*Ts:(N-1)*(1+a)*Ts;
new_signal=interp1(x,signal_vector,new_x,'cubic'); % change the algorithm flag to
% 'pchip' or 'spline' if
% you need
  11 Comments
John D'Errico
John D'Errico on 12 May 2014
Note: I once did an analysis where I showed that IF you have noise in the process, so you are interpolating a combination of noise PLUS signal, then linear is often a better answer, depending on the signal to noise ratio. Cubic interpolation on the noise component has a higher variance than does linear.
S. David
S. David on 12 May 2014
No, I am adding the noise after interpolation. So, in this case, 'cubic' works fine I guess. But I am not sure how accurate the whole interpolation process.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!