帮我写一段代码,是对信号进行小波分解的,并生成一个能量谱图,小波函数随机选取。代码写好后将运行结果显示出来。
时间: 2024-05-14 21:13:36 浏览: 54
小波包分解并求能量谱
好的,以下是小波分解代码的示例:
```python
import numpy as np
import pywt
import matplotlib.pyplot as plt
# 生成信号
signal = np.random.randn(1000)
# 小波分解
coeffs = pywt.wavedec(signal, 'db4', level=5)
# 生成能量谱图
plt.figure(figsize=(6, 4))
for i, c in enumerate(coeffs):
plt.semilogy(np.abs(c), label='Level {}'.format(i))
plt.legend()
plt.title('Wavelet decomposition')
plt.xlabel('Coefficient index')
plt.ylabel('Magnitude')
plt.show()
```
运行结果会显示一个能量谱图,其中每个小波系数的幅度都以对数刻度表示。希望这个代码对你有帮助!
阅读全文