FFT frequency shift during downsampling

I have a signal at 1000Hz and I am calculating FFT of the signal. I see it's first order contents at 11Hz. However when I downsample the signal to 100Hz and re-run FFT, I do not see a peak at 11Hz. Instead I see a peak at 9.6Hz.
Can anyone explain why I see this behavior when I downsample a signal?

6 Comments

How long is your signal? How many points?
My signal is 600s; I have 600001 samples in my original signal and 60001 in the downsampled signal.
Hello A VP,
so you are doing a 600001 point fft and a 60001 point fft (no zerofilling), is that correct?
Hey Kalyan,
In the link they appear to be transforming a function cos(30*x) to the spacial frequency domain. In the time domain this would be cos(30*t) = cos(w*t) so w = 30. That means f = w/(2*pi) which is around 5, which is where their peak is. I don't see what the problem is.
Hi David Goodmanson,
Yes, I am doing an FFT of a 600s signal sampled at 100Hz. [total : 600001 samples]. I am looking at FFT of every 5seconds [500 samples] and have used a Hanning window with a 50% overlap.

Sign in to comment.

Answers (0)

Asked:

on 17 Apr 2020

Commented:

on 19 Apr 2020

Community Treasure Hunt

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

Start Hunting!