如何对数组做傅里叶变换看其出现的频率
时间: 2023-12-12 19:05:54 浏览: 186
快速傅里叶变换, 将其频率零点移至中心并增强显示其傅里叶频谱
对于一个一维数组,可以使用`numpy.fft`模块中的`fft`函数对其进行快速傅里叶变换(FFT)。
具体来说,假设有一个一维数组`arr`,我们可以使用如下代码对其进行FFT:
```python
import numpy as np
arr = np.array([1, 2, 3, 2, 1, 0, -1, -2, -3, -2, -1, 0])
fft = np.fft.fft(arr)
```
其中`np.fft.fft(arr)`返回一个复数数组,表示对`arr`进行FFT后的结果。
接着,我们可以使用如下代码计算对应的频率:
```python
freq = np.fft.fftfreq(len(arr))
print(freq)
```
其中`np.fft.fftfreq(len(arr))`返回一个实数数组,表示FFT后每个元素对应的频率。
最后,我们可以使用如下代码将频率和FFT的结果进行可视化:
```python
import matplotlib.pyplot as plt
plt.plot(freq, np.abs(fft))
plt.show()
```
其中`np.abs(fft)`表示对FFT的结果取绝对值,因为FFT的结果是复数。
在可视化结果中,横坐标表示频率,纵坐标表示FFT的结果幅值。可以看到,频率在0附近的幅值最大,符合原数组的特点。
阅读全文