【脑电信号】基于matlab小波变换脑电信号特征提取【含Matlab源码 511期】
一、小波变换简介
小波变换是从20世纪80年代起逐渐发展成熟的一项数学应用技术,具有对时间—频率的双重分析和多分辨率分析能力,目前已经广泛应用于图像处理、模式识别等多个领域。小波变换的窗口大小固定但形状可改变,因此能够满足时域—频域局部化分析要求[22]。离散小波变换比连续小波变换的去噪效果更好,更适用于实际应用。
小波变换首先通过分解信号,使信号的能量集中在一些大的小波系数中,而噪声的能量分布于整个小波域内;然后通过阈值降噪,选择合适的阈值将有用信号的系数保留,将噪声信号的系数置零,从而去除噪声;最后再对经过阈值降噪后的系数进行重构,得到去除噪声后的信号。
常用的小波基函数有Meyer小波、Coiflet(coif N)小波、Daubechies(db N)小波等[9]。为得到较好的去噪效果,所选取的小波基函数在对心电信号进行分解时,应尽量保留心电信号中的有用分量,同时使噪声分解对应的小波系数差异尽可能大。Coiflet4小波基与心电信号的波形最为相似,同时与输出信号具有良好的相关性,重构后的信号信噪比大、均方误差小,因此本文选用Coiflet4小波基进行小波分解。
二、部分源代码
% Extract Discrete Wavelet Transform (DWT) Feature
close all; clear; clc;
load dataset_BCIcomp1.mat
Y=y_train;
% Range is 0 to 9 sec
startS=0;
endS=9;
wStep=1;
wRange=9;
X=extractDWT(x_train,startS,endS,wStep,wRange);
T=extractDWT(x_test,startS,endS,wStep,wRange);
save dataDWT.mat X Y T
color_L = [0 102 255] ./ 255;
color_R = [255, 0, 102] ./ 255;
pos = find(Y==1);
plot(X(pos,1),X(pos,2),'x','Color',color_L,'LineWidth',2);
hold on
pos = find(Y==2);
plot(X(pos,1),X(pos,2),'o','Color',color_R,'LineWidth',2);
function X=extractDWT(x_train,startS,endS,wStep,wRange)
% x_train = input signal
% startS = from second
% endS = end second
% wStep = overlapping
% wRange = window size
FS=128;
N=size(x_train,3);
sz=floor((endS-(startS+wRange))/wStep)+1;
X=zeros(sz*140,2);
cn=0;
for i=1:N
for sig=startS:wStep:endS-wRange
sW=sig*FS+1;
eW=(sig+wRange)*FS;
C3Sig=x_train(sW:eW,1,i);
C4Sig=x_train(sW:eW,3,i);
waveletFunction = 'db4';
waveletLevel=3;
[wCoe,L] = wavedec(C3Sig,waveletLevel,waveletFunction);
C3D3 = detcoef(wCoe,L,3); % Mu
[wCoe,L] = wavedec(C4Sig,waveletLevel,waveletFunction);
C4D3 = detcoef(wCoe,L,3); % Mu
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
[4]宋玉龙,赵冕,郑威.基于小波变换和样本熵的脑电信号癫痫特征提取[J].计算机与数字工程. 2020,48(06)
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/114743331
- 点赞
- 收藏
- 关注作者
评论(0)