回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个简单的一维数组,比如<code>[0,0,0,0,0,1,1,1,1,1,0,0,0,0,0]</code>,它描述了一个平方脉冲。我想把这个脉冲转换成频域,然后用下面的代码画出它的幅度谱(我是从<a href="http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_imgproc/py_transforms/py_fourier_transform/py_fourier_transform.html" rel="nofollow">OpenCV Python Tutorials</a>得到的):</p>
<pre><code>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()
</code></pre>
<p>该脚本适用于使用<code>f = np.fft.fft2(img)</code>的二维数组,但对于我只有一个维度的情况则不适用。在</p>
<p>希望我们能解决这个问题。在</p>