特征值 | 公式 | 描述 |
均方根(RMS) | 可以以评估肌肉收缩强度和疲劳程度 | |
平均绝对值(MAV) | 信号绝对值的平均值,用于评估信号的平均振幅 | |
波形长度(WL) | 信号在整个时间段内的振幅变化总和,它反映了信号的复杂性 | |
过零点数(ZC) | ![]() | 信号在整个时间段内穿过零值的次数,它通常用于评估信号的频率特性 |
斜率符号变化率(SSC) | ![]() | 信号斜率的符号变化次数,它用于评估信号的变化趋势(肌电信号发生波动状态的变化) |
import numpy as np
def rms(signal):
return np.sqrt(np.mean(np.square(signal)))
def mav(signal):
return np.mean(np.abs(signal))
def wl(signal):
return np.sum(np.abs(np.diff(signal)))
def zc(signal, threshold=0):
return np.sum(np.diff(np.sign(signal - threshold)) != 0)
def ssc(signal):
return np.sum(np.diff(np.sign(np.diff(signal))) != 0)
# 示例信号
signal = np.array([0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5])
print("RMS:", rms(signal))
print("MAV:", mav(signal))
print("WL:", wl(signal))
print("ZC:", zc(signal))
print("SSC:", ssc(signal))
2、四阶巴特沃斯,为什么不用二阶?
巴特沃斯滤波器的阶数决定了其频率响应的平坦度和过渡带的陡峭程度。选择使用四阶而不是二阶巴特沃斯滤波器通常是基于以下原因:
1. 频率响应的平坦度
巴特沃斯滤波器设计的一个主要特点是其在通带内有一个非常平坦的频率响应。随着滤波器阶数的增加,通带内的响应变得更加平坦。这意味着信号在通带内的失真会更小。
2. 过渡带的陡峭度
滤波器的阶数越高,频率响应从通带到阻带的过渡越陡峭。对于二阶巴特沃斯滤波器,过渡带相对较宽,这意味着在通带和阻带之间的频率范围内,滤波器的衰减较慢。相比之下,四阶巴特沃斯滤波器具有更陡峭的过渡带,能够更有效地分离通带和阻带。
3. 抑制高频噪声
更高阶的滤波器在阻带内提供更好的衰减,这对于需要抑制高频噪声的应用非常有用。四阶滤波器在阻带内提供了更强的衰减能力,能够更好地抑制高频噪声。
示例对比
为了更直观地理解这一点,我们可以通过频率响应曲线来比较二阶和四阶巴特沃斯滤波器的性能。
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import butter, freqz
# 二阶巴特沃斯滤波器
b, a = butter(2, 0.3)
w, h = freqz(b, a, worN=2000)
plt.plot(w / np.pi, 20 * np.log10(abs(h)), label='2阶巴特沃斯滤波器')
# 四阶巴特沃斯滤波器
b, a = butter(4, 0.3)
w, h = freqz(b, a, worN=2000)
plt.plot(w / np.pi, 20 * np.log10(abs(h)), label='4阶巴特沃斯滤波器')
plt.title('巴特沃斯滤波器频率响应')
plt.xlabel('归一化频率 (×π rad/sample)')
plt.ylabel('幅度 (dB)')
plt.grid()
plt.legend()
plt.show()
从图中可以看到,四阶巴特沃斯滤波器在通带内比二阶滤波器更平坦,并且在过渡带内的过渡更陡峭。
选择滤波器阶数的考虑因素
- 应用需求:如果应用对通带的平坦度要求高,或者需要更陡峭的过渡带,那么选择更高阶的滤波器(如四阶)是合理的。
- 计算资源:更高阶的滤波器计算复杂度更高,占用更多的计算资源。在计算资源有限的情况下,可能需要权衡选择较低阶的滤波器。
- 实时性要求:在实时信号处理应用中,更高阶滤波器可能导致更高的延迟。需要根据具体应用场景进行选择。
综上所述,选择四阶而不是二阶巴特沃斯滤波器通常是为了在保持平坦的通带响应的同时,提供更陡峭的过渡带和更好的高频噪声抑制能力。
3、CNN与LSTM的异同点
他们的相似之处在于都是深度学习模型,利用非线性变换和参数共享进行特征提取和模式识别,但在处理数据的类型、特征捕捉方式和应用场景上有显著不同。
CNN的网络结构
-
卷积层(Convolutional Layer):
- 卷积操作:卷积层通过卷积核(过滤器)在输入数据上滑动,计算局部区域的加权和,提取局部特征。
- 参数共享:同一个卷积核在整个输入数据上共享参数,这减少了模型参数的数量。
- 多通道:卷积层通常具有多个卷积核,每个卷积核产生一个特征图,这些特征图可以堆叠形成多通道输出。
-
池化层(Pooling Layer):
- 下采样操作:池化层通过取局部区域的最大值(最大池化)或平均值(平均池化)来减少数据的尺寸,同时保留重要特征。
- 降低维度:池化层减少了数据的维度,从而减小计算量和防止过拟合。
-
全连接层(Fully Connected Layer):
- 连接所有神经元:全连接层中的每个神经元与前一层的所有神经元相连接,用于整合特征和进行最终分类或回归。
-
激活函数(Activation Function):
- 非线性变换:通常使用ReLU(Rectified Linear Unit)激活函数,引入非线性,使得模型能够学习复杂的模式。
-
典型结构:
- 层次堆叠:通常由多个卷积层和池化层交替堆叠,最后通过若干全连接层完成分类或回归任务。
LSTM的网络结构
-
LSTM单元(LSTM Unit):
- 记忆细胞(Cell State):LSTM单元包含一个记忆细胞,用于存储长期记忆,信息可以在多个时间步之间传递。
- 输入门(Input Gate):控制有多少新的信息被写入记忆细胞。
- 遗忘门(Forget Gate):控制有多少过去的记忆被保留或遗忘。
- 输出门(Output Gate):控制有多少记忆细胞的信息被输出。
-
门机制(Gate Mechanism):
- 控制信息流:通过输入门、遗忘门和输出门的sigmoid函数来控制信息的写入、遗忘和输出,确保重要信息在序列中保留。
-
递归连接(Recurrent Connection):
- 时间步依赖:LSTM单元在每个时间步接收前一个时间步的输出,形成递归连接,能够捕捉时间序列数据中的长期依赖关系。
-
典型结构:
- 堆叠LSTM层:通常由多个LSTM层堆叠,每层的输出作为下一层的输入。
- 最后一层通常连接全连接层:用于分类或回归任务。
相似之处
- 神经网络结构:CNN和LSTM都是深度神经网络的架构,可以堆叠多层以增加模型的深度和复杂性。
- 非线性变换:两者都使用激活函数(如ReLU、sigmoid、tanh)引入非线性,使得模型能够学习复杂的模式。
- 参数共享:两者在一定程度上都使用参数共享的思想。CNN通过卷积核共享参数,LSTM通过门机制共享参数。
- 训练方法:两者都使用反向传播算法来更新模型参数,通常使用梯度下降优化方法。
不同之处
-
结构与功能:
- CNN:主要用于处理具有网格状拓扑结构的数据(如图像、视频),通过卷积层提取局部特征。CNN使用卷积层、池化层和全连接层,擅长捕捉空间依赖性和局部特征。
- LSTM:一种特殊的递归神经网络(RNN),主要用于处理和预测时间序列数据,具有记忆功能,能捕捉长时间依赖关系。LSTM通过输入门、遗忘门和输出门控制信息流。
-
输入数据类型:
- CNN:主要处理二维或三维数据,如图像(2D)和视频(3D)。
- LSTM:主要处理一维序列数据,如时间序列、文本序列、语音信号等。
-
捕捉特征的方式:
- CNN:通过卷积操作提取局部特征,随着层数增加,逐步捕捉高层次的抽象特征。
- LSTM:通过记忆单元和门机制捕捉序列数据中的长期和短期依赖关系,能够记住和忘记信息。
-
计算复杂性:
- CNN:在处理高维数据时计算效率高,因为卷积操作相对高效,且卷积核的参数共享机制减少了参数数量。
- LSTM:在处理长序列数据时计算复杂度较高,因为每个时间步的计算依赖于前一步的结果,难以并行化。
-
应用场景:
- CNN:常用于计算机视觉任务,如图像分类、目标检测、图像分割、图像生成等。
- LSTM:常用于自然语言处理任务,如文本生成、机器翻译、情感分析、语音识别、时间序列预测等。
总结
- CNN擅长处理空间信息,适用于图像和视频等具有网格结构的数据,利用卷积和池化层提取局部和全局特征。
- LSTM擅长处理时间序列数据,能够捕捉长期依赖关系,利用记忆单元和门机制在序列数据中记住和忘记信息。
4、注意力机制
注意力可以提高 LSTM中重要时间步的作用,从而进一步降低模型预测误差。注意力本质上就是求最后一层 LSTM 输出向量的加权平均和。LSTM 隐藏层输出向量作为注意力层的输入,通过一个全连接层进行训练,再对全连接层的输出使用 softmax 函数进行归一化,得出每一个隐藏层向量的分配权重,权重大小表示每个时间步的隐状态对于预测结果的重要程度。
Multihead-Self-Attention多头注意力机制是一种用于模型关注输入序列中不同位置相关性的机制。注意力能够帮助模型在处理时序数据时,对不同位置的信息进行适当加权,从而更好地捕获序列中的关键信息