绘制含噪信号的小波谱的代码
时间: 2023-10-10 18:10:58 浏览: 38
以下是Python中绘制含噪信号小波谱的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
import pywt
# 生成含噪信号
t = np.linspace(0, 1, 1000)
signal = np.sin(2 * np.pi * 10 * t) + np.sin(2 * np.pi * 20 * t)
noise = 0.5 * np.random.randn(len(t))
noisy_signal = signal + noise
# 小波变换
wavelet = 'db4'
level = pywt.dwt_max_level(len(noisy_signal), wavelet)
coeffs = pywt.wavedec(noisy_signal, wavelet, level=level)
# 绘制小波谱
fig, axs = plt.subplots(nrows=level+1, sharex=True, figsize=(8, 8))
for i in range(level+1):
axs[i].plot(coeffs[i])
axs[i].set_ylabel("Level {}".format(i))
plt.xlabel("Sample")
plt.suptitle("Wavelet Spectrum of Noisy Signal")
plt.show()
```
这段代码首先生成一个包含两个正弦波和高斯噪声的信号,然后使用db4小波对其进行小波变换,并绘制了小波系数的图形,其中每个子图代表了不同级别的小波分解。这个图形可以帮助我们了解信号的频率特性以及噪声的影响。