表面肌电信号是从皮肤表面获取的关于肌肉活动的微弱生物电信息,能够为肌肉活动状态分析、神经肌肉功能分析及病理分析等研究提供有效的帮助。由于受到检测仪器、环境和肌肉自身生理特性等多种因素的影响,sEMG信号在采集过程中势必会引入干扰噪声,使得难以直接对其进行分析研究,因而需要对采集到的sEMG信号进行降噪处理,以提高信号质量。
设 N N N点离散含噪信号为
f ( t ) = s ( t ) + n ( t ) f\left (t\right )= s\left ( t \right )+n\left ( t \right ) f(t)=s(t)+n(t)
式中 s ( t ) s\left ( t \right ) s(t) 为原始信号, n ( t ) n\left ( t \right ) n(t) 为服从 N ( 0 , σ 2 ) N\left ( 0,\sigma^{2}\right ) N(0,σ2) 的高斯白噪声。
小波阈值法对含噪信号 f ( t ) f\left ( t \right ) f(t) 消噪主要有以下三个步骤:
( 1 ) \left ( 1 \right ) (1) 先对含噪信号进行 j j j 尺度的正交小波变换,得到一组小波系数 ω j , k \omega_{j,k} ωj,k ;
( 2 ) \left ( 2 \right ) (2) 再对 ω j , k \omega_{j,k} ωj,k 进行阈值处理,确定小波系数的估计值 ω ^ j , k \hat{\omega}_{j,k} ω^j,k ;
( 3 ) \left ( 3 \right ) (3) 利用 ω ^ j , k \hat{\omega}_{j,k} ω^j,k 进行小波重构,得到估计信号 f ^ ( t ) \hat{f} \left ( t \right ) f^(t) 即为去噪之后的信号。
( 1 ) \left ( 1 \right ) (1) 硬阈值估计法,其定义为
ω ^ j , k = { ω j , k , ∣ ω j , k ∣ ⩾ λ 0 , ∣ ω j , k ∣ < λ \hat{\omega}_{j,k}=\left\{\begin{matrix} \omega_{j,\ k},\begin{vmatrix} \omega_{j,k} \end{vmatrix}\geqslant \lambda \\ \ 0,\ \ \ \ \begin{vmatrix} \omega_{j,k} \end{vmatrix}< \lambda \end{matrix}\right. ω^j,k={ωj, k,∣∣ωj,k∣∣⩾λ 0, ∣∣ωj,k∣∣<λ
( 2 ) \left ( 2 \right ) (2) 软阈值估计法,其定义为
ω ^ j , k = { s g n ( ω j , k ) ⋅ ( ∣ ω j , k ∣ − λ ) , ∣ ω j , k ∣ ⩾ λ 0 , ∣ ω j , k ∣ < λ \hat{\omega}_{j,k}=\left\{\begin{matrix} \ sgn\left ( \omega_{j,k} \right )\cdot \left ( \begin{vmatrix} \omega_{j,k} \end{vmatrix}-\lambda \right ),\begin{vmatrix} \omega_{j,k} \end{vmatrix}\geqslant \lambda \\ \ \ \ \ \ \ \ 0,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \begin{vmatrix} \omega_{j,k} \end{vmatrix}< \lambda \end{matrix}\right. ω^j,k={ sgn(ωj,k)⋅(∣∣ωj,k∣∣−λ),∣∣ωj,k∣∣⩾λ 0, ∣∣ωj,k∣∣<λ
( 1 ) \left ( 1 \right ) (1) 全局阈值
λ = σ 2 l n N \lambda = \sigma \sqrt{2lnN} λ=σ2lnN
( 2 ) \left ( 2 \right ) (2) SUREShrink阈值
使用斯坦因的无偏风险估计(SURE)原理进行自适应阈值选择
( 3 ) \left ( 3 \right ) (3) Minimax阈值
对含噪的sEMG信号进行小波分解,更具Mallat最优小波基的选择准则,综合考虑小波基的对称性、正交性、消失矩及紧支性等数学特征最终选择Sym8小波基,因为它的尺度函数波形与sEMG信号波形近似,小波函数的对称性较好。下图为常见小波的数学特征:
分解层数对于消噪效果的影响很大,分解层数过多信号失真也会越大,还会导致运算量增大,处理变慢。分解层数过少则消噪效果不理想。
实验所使用的sEMG信号的采样频率为1000Hz,,根据奈奎斯特采样定理可知,信号的最高频率可为500Hz。如果进行4层小波分解,对应的每层频带范围如下图所示,其中 a i a_{i} ai表示近似系数, d i d_{i} di表示细节系数。
观察表面肌电信号的频域情况,发现能量在300Hz以下的部分占全部能量的80%,主要集中在50至220Hz之间。由此可得,分解次数选择4层。
wavelet signal denoiser是matlab用于可视化去噪一维信号并比较去噪效果的交互式工具,可以轻松调整默认参数并应用不同的降噪技术。
打开方式:
⋅ \cdot ⋅ Toolstrip:在工具栏中,选择应用程序,找到信号处理和通信下的wavelet signal denoiser,单击选择打开。
⋅ \cdot ⋅ 命令提示符:在命令窗口,输入 waveletSignalDenoiser,并运行。
实验所采集的数据很多,通常都是同类型的数据,处理方式等大都相同,采用文件批处理可以大大减少操作步骤,提高效率。
matlab代码:
list=dir('E:\sEMG_data\*.mat');
k=length(list);
for i=1:k
load(list(i).name)
for j=1:4
Y=data{:,j};
Y = wdenoise(Y,4, ...
'Wavelet', 'sym8', ...
'DenoisingMethod', 'SURE', ...
'ThresholdRule', 'Hard', ...
'NoiseEstimate', 'LevelIndependent');
end
end
MATLAB中小波去噪: https://www.mathworks.com/help/wavelet/ref/wdenoise.html.
wavelet signal denoiser: https://www.mathworks.com/help/wavelet/ref/waveletsignaldenoiser-app.html.
参考文献: http://www.cnki.com.cn/Article/CJFDTotal-XXYK201102003.htm.