请用python写一个傅里叶变换的例子
时间: 2023-07-07 19:42:36 浏览: 88
使用python实现离散时间傅里叶变换的方法
好的,我可以为你提供一个简单的 Python 代码示例,用于执行傅里叶变换和频谱分析。在这个例子中,我们将使用 NumPy 和 Matplotlib 库来实现。
```python
import numpy as np
import matplotlib.pyplot as plt
# 设置采样频率、采样时间、采样点数
fs = 1000
t = np.arange(0, 1, 1/fs)
N = len(t)
# 创建信号
f1 = 50
f2 = 120
x = 0.7*np.sin(2*np.pi*f1*t) + np.sin(2*np.pi*f2*t)
# 进行傅里叶变换
X = np.fft.fft(x)
# 计算频谱
freqs = np.fft.fftfreq(N, 1/fs)
idx = np.argsort(freqs)
freqs = freqs[idx]
X = X[idx]
psd = np.abs(X)**2/N
# 绘制原始信号和频谱
fig, ax = plt.subplots(2, 1)
ax[0].plot(t, x)
ax[0].set_xlabel('Time [s]')
ax[0].set_ylabel('Amplitude')
ax[0].grid(True)
ax[1].plot(freqs, psd)
ax[1].set_xlabel('Frequency [Hz]')
ax[1].set_ylabel('Power Spectral Density')
ax[1].grid(True)
plt.show()
```
这个例子中,我们首先设置了采样频率、采样时间和采样点数,然后创建了一个复杂的信号,包含两个正弦波。接着,我们使用 NumPy 库的 `fft()` 函数执行傅里叶变换,并使用 `fftfreq()` 函数计算频率。最后,我们绘制了原始信号和频谱图,以便观察信号的频率成分。
阅读全文