小波变换频谱图绘制教程:使用Matplotlib可视化特征
当然可以!我们可以使用Matplotlib库来绘制小波变换后的频谱图。以下是对代码进行扩展,在计算小波变换的特征后,绘制频谱图:
import numpy as np
import pywt
import matplotlib.pyplot as plt
def compute_wavelet_features(signal):
wavelet = 'haar' # 小波类型
level = 3 # 分解的层数
coeffs = pywt.wavedec(signal, wavelet, level=level)
features = []
for i, coeff in enumerate(coeffs):
mean = np.mean(coeff)
std = np.std(coeff)
max_val = np.max(coeff)
min_val = np.min(coeff)
median = np.median(coeff)
features.extend([mean, std, max_val, min_val, median])
return features
signal = [0.1, 0.2, 0.3, 0.4, 0.3, 0.2, 0.1]
features = compute_wavelet_features(signal)
# 绘制频谱图
plt.plot(signal, label='原始信号')
for i in range(len(features)):
approx = pywt.upcoef('a', features[i], 'haar', level=len(features)-i-1)
plt.plot(approx, label=f'频带{i+1}')
plt.legend()
plt.xlabel('时间')
plt.ylabel('幅值')
plt.title('小波变换频谱图')
plt.show()
运行这段代码将会得到小波变换后的频谱图。其中,原始信号被绘制在第一条曲线上,每个频带的特征曲线分别绘制在后续的曲线上。你可以根据需要调整图表的样式和布局。
原文地址: https://gggwd.com/t/topic/XyJ 著作权归作者所有。请勿转载和采集!