【发布时间】:2021-12-03 18:26:06
【问题描述】:
基于这篇关于脑机接口的论文,我想使用离散小波变换提取时频域特征,然后用给定方程计算能量和熵。
所以我在 python 中选择了pywt,现在我有以下代码用于从每个频带获取小波和熵(例如我使用 D2),here 是数据的链接:
import numpy as np
data = np.loadtxt('data.txt')
import pywt
cA5, cD5, cD4, cD3, cD2, cD1 = pywt.wavedec(data,'db4',mode='symmetric',level= 5)
Ent = 0
for d in data:
E = d**2
p = cD2 * E
Ent -= np.sum( np.abs( p * np.log(p) ) )
print(Ent)
但我得到nan 每个频段的熵。如何解决获取小波熵的 nan 值?
【问题讨论】:
-
data在哪里定义? // 请发布 SSCCE -
数据基于 DEAP 数据集。
-
可能是这种情况,但在您发布的代码中未定义。如果没有对正在发生的事情的全貌,就无法提供太多帮助。我认为您发布的内容没有问题,因此问题必须出在未发布的代码上。
-
我已经更新了我的问题,现在我使用的是一个简单的数据,您可以下载并使用它。
-
看起来你在平方
k,而不是D_j(k)。
标签: python signal-processing wavelet time-frequency pywt