傅里叶正变换Python
时间: 2023-11-05 20:16:22 浏览: 47
傅里叶正变换(FFT)是一种将时域信号转化为频域信号的方法。在Python中,可以使用NumPy库中的fft函数来进行FFT计算。
下面是一个简单的例子,演示如何使用NumPy库中的fft函数来计算一个简单的正弦波信号的FFT:
```
import numpy as np
import matplotlib.pyplot as plt
# 生成一个简单的正弦波信号
t = np.linspace(0, 1, 500)
x = np.sin(2*np.pi*10*t)
# 计算FFT
X = np.fft.fft(x)
# 计算频率轴
freqs = np.fft.fftfreq(len(x), t[1]-t[0])
# 绘制原始信号和FFT结果
plt.subplot(211)
plt.plot(t, x)
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.title('Original Signal')
plt.subplot(212)
plt.plot(freqs, abs(X))
plt.xlabel('Frequency (Hz)')
plt.ylabel('Magnitude')
plt.title('FFT of Signal')
plt.tight_layout()
plt.show()
```
上述代码会生成一个包含原始信号和FFT结果的图形。其中,原始信号是一个频率为10Hz的正弦波,FFT结果则显示了该信号在频域上的频率分布情况。
需要注意的是,在计算FFT时,信号的长度应该是2的幂次方,因此在实际应用中可能需要对信号进行补零等处理。
阅读全文