python代码实现FFT
时间: 2024-12-31 14:41:12 浏览: 24
### Python 实现 FFT 快速傅里叶变换
在Python中,可以利用`numpy`库中的`fft`模块来实现快速傅里叶变换(FFT),该模块提供了高效的一维或多维数组处理能力[^1]。
下面是一个简单的例子展示如何使用`numpy.fft.fft()`函数来进行一维数据的快速傅里叶变换:
```python
import numpy as np
import matplotlib.pyplot as plt
# 创建测试信号:两个正弦波叠加而成的时间序列
N = 600 # 数据点数量
T = 1.0 / 800.0 # 时间间隔 (s)
x = np.linspace(0, N*T, N)
y = np.sin(50.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x)
# 执行快速傅里叶变换
yf = np.fft.fft(y)
xf = np.fft.fftfreq(N, T)[:N//2]
plt.plot(xf, 2.0/N * np.abs(yf[0:N//2]))
plt.grid()
plt.show()
```
此代码片段创建了一个由两个不同频率组成的合成信号,并对其执行了快速傅里叶变换。通过绘制频谱图可以看到原始信号中存在的主要频率成分。
对于逆向操作即将采样表示转回系数表示,则可采用`numpy.fft.ifft()`函数完成逆快速傅里叶变换(IFFT)[^2]。需要注意的是,在计算IFFT之后的结果通常会包含一些浮点运算误差引入的小虚部;实际应用时往往只需要取实部作为最终输出即可。
阅读全文