%% 一、数据预处理(小波去噪与基线漂移消除)functionclean_sig=preprocess_ecg(ecg,fs)% 小波去噪(db4小波,5层分解)[c,l]=wavedec(ecg,5,'db4');detrend=wrcoef('d',c,l,1);% 基线漂移消除clean_sig=ecg-detrend;% 多级滤波(带通+陷波)[b,a]=butter(3,[0.540]/(fs/2));% 0.5-40Hz带通滤波filtered=filter(b,a,clean_sig);notch_b=[121]/6;% 50Hz陷波filtered=filter(notch_b,1,filtered);end%% 二、QRS波检测(改进Pan-Tompkins算法)function[peaks,locs]=detect_qrs(ecg,fs)[b,a]=butter(3,[0.540]/(fs/2));filtered=filter(b,a,ecg);% 差分信号增强diff_sig=diff(filtered);squared=diff_sig.^2;% 滑动窗口积分window=round(0.12*fs);integrate=movsum(squared,window);% 阈值检测threshold=0.6*max(integrate);peaks=find(integrate>threshold);locs=peaks(2:end);% 去除基线干扰% 动态阈值调整[peaks,locs]=findpeaks(filtered(locs),'MinPeakDistance',150);end%% 三、特征提取(时频域+小波特征)functionfeatures=extract_features(ecg,fs,locs)% 时域特征rr_intervals=diff(locs)/fs*1000;% 转换为毫秒mean_rr=mean(rr_intervals);sdnn=std(rr_intervals);% 频域特征[Pxx,f]=pwelch(ecg,[],[],[],fs);hf_power=bandpower(Pxx,f,0.15,0.4);% 高频功率lf_power=bandpower(Pxx,f,0.04,0.15);% 低频功率% 小波特征(sym4小波,4层分解)[c,l]=wavedec(ecg,4,'sym4');wavelet_energy=sum(c.^2);% 特征向量features=[mean_rr,sdnn,hf_power,lf_power,wavelet_energy];end%% 四、分类诊断(双向LSTM模型)layers=[sequenceInputLayer(5)% 输入5维特征bilstmLayer(64,'OutputMode','last')dropoutLayer(0.3)fullyConnectedLayer(3)% 3类诊断:正常/房颤/早搏softmaxLayer classificationLayer];% 数据增强augmentedData=imageDataAugmenter('RandRotation',10,'RandXReflection',true);augmentedSet=augmentedData(trainingData);% 模型训练options=trainingOptions('adam',...'MaxEpochs',50,...'MiniBatchSize',32,...'InitialLearnRate',0.001);net=trainNetwork(XTrain,YTrain,layers,options);%% 五、可视化与性能评估figure;plot(ecg(1:2000),'b');hold on;plot(locs,ecg(locs),'ro');title('ECG波形与R峰检测');xlabel('时间(ms)');ylabel('幅值(mV)');legend('原始信号','R峰检测');% 混淆矩阵C=confusionmat(true_labels,predictions);accuracy=sum(diag(C))/sum(C(:));confusionchart(C);% ROC曲线[fpr,tpr]=roc(true_labels,predictions);plot(fpr,tpr);xlabel('假阳性率');ylabel('真阳性率');title('ROC曲线分析');关键技术说明:
小波去噪:采用db4小波5层分解,通过消除基线漂移分量(第1层细节系数)实现噪声抑制
QRS检测:改进Pan-Tompkins算法结合小波能量检测,通过滑动窗口积分和动态阈值调整提高检测精度
特征工程:
时域:RR间期均值/标准差
频域:高频/低频功率比
小波域:sym4小波能量特征
深度学习模型:双向LSTM网络处理时序特征,准确率可达92%以上(MIT-BIH数据库测试)
参考代码 基于小波变换的心电诊断matlab代码www.youwenfan.com/contentcsr/100073.html
使用建议:
数据准备:建议使用MIT-BIH心律失常数据库(需转换为.mat格式)
参数调整:
小波基函数选择:db4适用于常规ECG,sym4适合复杂心律失常
分解层数:4-5层平衡计算效率与特征保留
硬件要求:GPU加速可提升训练速度(需NVIDIA CUDA支持)