FFT of a signal that is compressed

3 次查看(过去 30 天)
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 个评论
John
John 2013-3-16
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.

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2013-3-16
编辑:Matt J 2013-3-16
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 个)

类别

Help CenterFile Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by