is it possible to upsampling or down sampling by a non-integer number?

I have two files that I need to synchronise one is sampled at every 3ms = 1/0.003 = 333.33Hz and one at every 10ms = 1/0.01 = 100Hz. I have not been able to find a matlab command in basic or signal processing toolbox to either upsample to 100Hz to 333.33 or downsample 333.33 to 100Hz. Can anyone help?

 Akzeptierte Antwort

Greg Dionne
Greg Dionne am 1 Sep. 2017

3 Stimmen

In case someone else is looking at this... have a look at resample.

1 Kommentar

I'm using resample function to upsample my data. I need to increase the stop band attenuation to improve the Adjacent channel power ratio (ACPR) . How can i do that?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Matt J
Matt J am 14 Mai 2013

1 Stimme

You need to interpolate, e.g., using interp1() or griddedInterpolant()

2 Kommentare

this gives an error 'not monotonically increasing'
Jan
Jan am 30 Aug. 2017
Bearbeitet: Jan am 30 Aug. 2017
@Justine: The message is clear. The interpolation requires strict monotonically increasing data as input. Obviously your code provides something else.

Melden Sie sich an, um zu kommentieren.

Jan
Jan am 14 Mai 2013
Bearbeitet: Jan am 14 Mai 2013

1 Stimme

Matlab's upsample and downsample are not really useful here. I'd prefer the alreayd mentioned interp1, but decimate would perform an anti-aliasing also.

4 Kommentare

Dear Jan,
I have a signal sampled at 26 Hz. I want to downsample that signal to 5.2 Hz. Do you know that how to do it? Thanks in advance.
Hi and good day
I have a signal sampled at 4552 Hz. I want to downsample that signal to 4096 Hz. Do you know that how to do it?
thank you
resample 569, 512

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by