2016-06-15 4 views
1

моей оригинальной проблемой было следующее:FFTshift вызывает колебания - почему? (numpy)

У меня есть огибающая импульса в массиве a (0-элемент = время 0, последний элемент = время T). Я хочу использовать дальний спектр импульса. Так что я сделал np.fft.fftshift(np.fft.fft(a)). Все хорошо.

Но потом мне сказали сделать смену заранее: np.fft.fftshift(np.fft.fft(np.fft.fftshift(a))). Затем возникли колебания.

Теперь мне интересно, почему можно было бы сделать в 2 смены, как показано выше, и поэтому возникают колебания ...

Вот пример: У меня есть следующий код

x = np.arange(100) 
a =np.sin(np.pi*x**2/1000) 

: с a(x)

a_fft = np.fft.fft(a) 

a_fft: enter image description here

a_fft_shift = np.fft.fftshift(a_fft) 

a_fft_shift: enter image description here

a_shift = np.fft.fftshift(a) 
    a_shift_fft = np.fft.fft(a_shift) 

a_shift_fft: enter image description here

a_shift_fft_shift = np.fft.fftshift(a_shift_fft) 

a_shift_fft_shift: enter image description here

+3

Перед сдвигом: низкие частоты при температуре от 0 до 100. После сдвига, они находятся на 50, как если бы они соответствовали высоким частотам. FFT и FFT^{- 1} действительно близки. Следовательно, по мере вычисления БПФ сдвинутого сигнала происходит высокочастотная окклюзия. 'np.fft.fftshift()' полезно только для отображения низких частот в середине графика. Используйте его только для отображения! – francis

ответ

2

Ваша линия

a_shift = np.fft.fftshift(a) 

изменяет порядок вашего исходного сигнала во временной области. Это означает, что с точки зрения БПФ вы изменяете фазы. Обратите внимание, что в вашем сигнале есть разрыв. По линии выше этот разрыв сдвигается в центр сигнала, что заставляет БПФ создавать бесконечное количество высокочастотных косинусных компонентов. Если вы переместите его в другое место, энергия будет распределена соответственно. Другая проблема заключается в том, что вы рассматриваете только реальную часть спектра, т.е. е. косинусные компоненты. Всегда смотрите на мнимую часть! Взгляните также на спектр амплитуд, чтобы увидеть, что положение разрыва влияет только на фазу. Полная энергия остается неизменной.

comparison

Смежные вопросы