FFT of a signal that is compressed

5 views (last 30 days)
John
John on 16 Mar 2013
If I have a signal of size 2048, is it possible to compress/scale the signal down to size 1024 such that there is some relationship between the FFT of the 2048 sample with the FFT of the 1024 sample. I'm trying to do this because the 2048 signal has a lot of zeros and I'm trying to save some memory in my program.
Is this possible?
  1 Comment
John
John on 16 Mar 2013
Another way to explain this is if I have a sin wave with 2048 data points and I squeeze this sin wave into 1024 data points still maintaining all the peaks and valleys, can I compute the FFT of the 1024 sin wave such that it is equal to the 2048 point sin wave.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 16 Mar 2013
Edited: Matt J on 16 Mar 2013
More or less. If your initial sine wave is of the form
a=sin(2*pi*k0*(0:2047)/2048),
for some integer k0, then plot(abs(fft(a))) will show an impulse at k0+1 and at 2049-k0. Now if you compress it as follows
b=a(1:2:end);
then plot(abs(fft(b))) will still show an impulse at k0+1 and another one at 1025-k0, which correspond to the same spectral locations as before.
So, your new spectrum carries the same information as your old spectrum, assuming you know in advance that the thing is a sine wave of the form I've postulated..

More Answers (0)

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!