傅里叶变换提取信号特征python代码
时间: 2023-09-04 22:09:24 浏览: 213
傅里叶变换是一种将信号从时域转换到频域的常用方法,可以用于提取信号的频域特征。下面是一个使用Python实现傅里叶变换提取信号特征的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成信号
t = np.linspace(0, 1, 1000, endpoint=False)
x = np.sin(2*np.pi*5*t) + np.sin(2*np.pi*10*t)
# 计算傅里叶变换
y = np.fft.fft(x)
freq = np.fft.fftfreq(len(x), t[1]-t[0])
idx = np.argsort(freq)
# 绘制信号和频谱图
fig, ax = plt.subplots(2, 1, figsize=(10, 8))
ax[0].plot(t, x)
ax[0].set_xlabel('Time (s)')
ax[0].set_ylabel('Amplitude')
ax[0].set_title('Signal')
ax[1].plot(freq[idx], np.abs(y[idx]))
ax[1].set_xlabel('Frequency (Hz)')
ax[1].set_ylabel('Amplitude')
ax[1].set_title('Spectrum')
plt.show()
```
代码中首先生成了一个由两个正弦波叠加而成的信号,然后使用`np.fft.fft`函数计算其傅里叶变换,再使用`np.fft.fftfreq`函数计算每个频率点对应的频率值。最后,将频率和傅里叶变换值排序后绘制频谱图。
阅读全文