моей оригинальной проблемой было следующее: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_fft = np.fft.fft(a)
a_fft_shift = np.fft.fftshift(a_fft)
a_shift = np.fft.fftshift(a)
a_shift_fft = np.fft.fft(a_shift)
a_shift_fft_shift = np.fft.fftshift(a_shift_fft)
Перед сдвигом: низкие частоты при температуре от 0 до 100. После сдвига, они находятся на 50, как если бы они соответствовали высоким частотам. FFT и FFT^{- 1} действительно близки. Следовательно, по мере вычисления БПФ сдвинутого сигнала происходит высокочастотная окклюзия. 'np.fft.fftshift()' полезно только для отображения низких частот в середине графика. Используйте его только для отображения! – francis