## How to resample a signal by a fraction

### Saed (view profile)

on 17 May 2013
Accepted Answer by Matt Kindig

### Matt Kindig (view profile)

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

## Products

No products are associated with this question.

### Matt Kindig (view profile)

Answer by Matt Kindig

### Matt Kindig (view profile)

on 19 May 2013
Edited by Matt Kindig

### Matt Kindig (view profile)

on 19 May 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.

Saed

### Saed (view profile)

on 20 May 2013

This seems to work just fine.

Thanks

### David Barry (view profile)

Answer by David Barry

### David Barry (view profile)

on 17 May 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

David Barry

### David Barry (view profile)

on 17 May 2013

Apologies, I missed your 1+a bit. In that case you need to change both P and Q in the resample function by multiplying up until you get the accuracy you need.

Example: Suppose I want to re-sample by 1/(1+a) where a was 1e-3.

1+1e-3 = 1.0010 so I might want to scale up by factor of 1000 and use values of 1000 and 1001 for P and Q.

Saed

### Saed (view profile)

on 19 May 2013

What do you mean by scale up by 1000? Like

```if true
resample(x,1000*(1+a),1001);
end
?
```
David Barry

### David Barry (view profile)

on 20 May 2013

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.

### Malcolm Lidierth (view profile)

Answer by Malcolm Lidierth

### Malcolm Lidierth (view profile)

on 19 May 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.

http://www.mathworks.co.uk/matlabcentral/fileexchange/12268-sinc-resample

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

### Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Learn MATLAB today!