小波分析python代码
时间: 2023-10-28 18:57:22 浏览: 80
当然,我可以提供一个简单的例子来演示一下小波分析的Python代码。小波分析是一种用于信号处理和数据分析的方法,它可以将信号分解成不同尺度的频率成分。
首先,我们需要导入相关的库。在这个例子中,我们使用`pywt`库来进行小波分析。
```python
import pywt
import numpy as np
import matplotlib.pyplot as plt
# 生成一个示例信号
fs = 1000 # 采样率
t = np.linspace(0, 1, num=fs, endpoint=False) # 时间序列
f1 = 10 # 第一个频率成分
f2 = 50 # 第二个频率成分
signal = np.sin(2 * np.pi * f1 * t) + np.sin(2 * np.pi * f2 * t)
# 进行小波分解
wavelet = 'db4' # 小波基函数
level = 5 # 分解层数
coeffs = pywt.wavedec(signal, wavelet, level=level)
# 绘制小波系数图
plt.figure()
for i, coeff in enumerate(coeffs):
plt.subplot(level+1, 1, i+1)
plt.plot(coeff)
plt.title(f"Level {i+1}")
plt.tight_layout()
# 展示原始信号和重构信号
reconstructed_signal = pywt.waverec(coeffs, wavelet)
plt.figure()
plt.plot(t, signal, label='Original')
plt.plot(t, reconstructed_signal, label='Reconstructed')
plt.legend()
plt.show()
```
在这个例子中,我们首先生成了一个示例信号,该信号由两个频率成分的正弦波叠加而成。然后,我们使用`pywt.wavedec`函数对信号进行小波分解,指定了小波基函数(这里使用了db4小波基函数)和分解层数。接下来,我们绘制了各个分解层的小波系数图。最后,使用`pywt.waverec`函数对小波系数进行重构,绘制了原始信号和重构信号的对比图。
这只是一个简单的示例,你可以根据具体的需求和数据进行相应的调整和扩展。希望对你有所帮助!
阅读全文