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.
FFT of a signal that is compressed
3 views (last 30 days)
Show older comments
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?
Accepted Answer
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..
0 Comments
More Answers (0)
See Also
Categories
Find more on Fourier Analysis and Filtering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!