У меня есть простой одномерный массив, такой как [0,0,0,0,0,1,1,1,1,1,0,0,0,0,0]
, который описывает квадратный импульс. Я хотел бы превратить этот импульс в частотной области и построить ее амплитудный спектр, используя код ниже (я получил его от OpenCV Python Tutorials):Numpy FFT (быстрое преобразование Фурье) 1-мерного массива
squareimpulse = np.array([0,0,0,0,0,1,1,1,1,1,0,0,0,0,0])
img = (squareimpulse)
f = np.fft.fft(img)
fshift = np.fft.fftshift(f)
magnitude_spectrum = 20*np.log(np.abs(fshift))
plt.subplot(121),plt.imshow(img, cmap = 'gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()
Скрипт прекрасно работает для двумерных массивов с f = np.fft.fft2(img)
, но не для мой случай, когда у меня только одно измерение.
Надеюсь, мы сможем понять это.