📄 meanfilter.m
字号:
%本程序采用中值滤波实现去心电信号基线漂移%
%林宛华 中南大学生物医学工程医学图像与信号处理实验室 %
%E-mail: wanhualin01@163.com%
%2008年3月10日%
function ECG=meanfilter(L,k,n)%心电数据系列的长度,窗宽为2*k+1,n为滤波次数
load ECG2;
data2 = data2';
subplot(4,1,1),plot (data2, 'DisplayName', 'data2', 'YDataSource', 'data2'),title('原始信号'); figure(gcf);
tic
for i=1:n
data_extend_init = zeros(1,k); %初始化延拓函数
BL = zeros(1,L);%初始化基线
processed_data = zeros(1,L);%初始化处理结果
data_extend_left = data_extend_init+data2(1);
data_extend_right = data_extend_init+data2(L);
data_extend = [data_extend_left data2 data_extend_right];%得延拓函数
subplot(4,1,2),plot (data_extend, 'DisplayName', 'data_extend', 'YDataSource', 'data_extend'),title('延拓信号'); figure(gcf);
for i=1:L
sort_data = data_extend(:,i:i+2*k);
for m=1:2*k
for n=m+1:2*k
if(sort_data(m)>sort_data(n))
p=sort_data(m);
sort_data(m)=sort_data(n);
sort_data(n)=p;
end
end
end
BL(i)=sort_data(k);%取中间值
processed_data(i)=data2(i)-BL(i);
end
subplot(4,1,3),plot (BL, 'DisplayName', 'data2', 'YDataSource', 'BL'),title('基线信号'); figure(gcf);
subplot(4,1,4),plot (processed_data, 'DisplayName', 'processed_data', 'YDataSource', 'processed_data'),title('滤波信号'); figure(gcf);
data2=processed_data;
end
toc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -