脉搏信号处理y105
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理综合训练
说明书
题目:脉搏信号间期序列的时域、频域分析
学院:电气工程与信息工程学院
班级:电子信息科学与技术(1)班
姓名:***
学号:********
2011年7月15日
目录
1 脉搏信号处理的基本思路 (1)
2信号预处理 (2)
3 脉搏信号的时域分析 (5)
4 脉搏信号频域分析 (8)
5程序清单 (9)
6 心得体会 (23)
7参考文献 (24)
5 程序清单
%加载采样数据;
y=[y10 y11 y12 y13 y14 y15];
t=1:6000; %时域范围;
figure(1);
subplot(2,1,1);
y=-y; plot(t,y); grid on;
title('脉搏信号'); xlabel('时间/ms'); ylabel('相对幅度'); %截取整数倍周期
data1=min(y(1:500));
data2=min(y(5000:5500));
for i=1:500
if y(i)==data1
m1=i;
end
end
for j=5000:5500
if y(j)==data2
m2=j;
end
end
mb=m2-m1; y=y(m1:m2); t=1:mb+1;
subplot(2,1,2);
plot(t,y); title('脉搏信号');
xlabel('时间/ms'); ylabel('相对幅度'); grid on; 原始的脉搏信号和经过整数倍提取后的信号如下图所示
图1
%带通滤波器,虑除工频.基线漂移和肌电干扰;
figure(2);
fs=1500;%采样频率;
wp=[0.9,30]/(fs/2);%设置通带截止频率;
ws=[0.1,200]/(fs/2);%设置阻带截止频率;
rp=0.5;%通带波纹系数;
rs=40;%阻带波纹系数;
[N,wc]=buttord(wp,ws,rp,rs);
[num,den]=butter(N,wc);%滤波器分子分母系数向量;
[H,W]=freqz(num,den);
subplot(2,1,1);
plot(fs*W/(2*pi),abs(H));
title('butterworth带通滤波器幅频响应');
xlabel('频率/Hz'); ylabel('幅度'); grid on;
y1=filtfilt(num,den,y);%脉搏信号通过零相位滤波器;
subplot(2,1,2); plot(y1);
title('脉搏信号通过带通滤波器');
xlabel('时间/ms'); ylabel('幅度'); grid on;
脉搏信号通过零相位带通滤波器后,高频信号和基线漂移信号有所衰减,信号变得清晰。
图2
%小波包消噪;
%进行一维小波消噪
figure(3);
z=wden(y1,'heursure','s','mln',3,'sym8');%[XD,CXD,LXD]=wden (X,tptr,sorh,scal,n,’wavename’)使用小波系数阈值,返回输入信号X除噪后的信号XD,输出参数[CXD,LXD]表示XD的小波分解结构。 %输入参数中,tptr同thselect()函数;sorh为‘s’或‘h’表示软硬阈值;n表示在n 层上的小波分解;wavename指定小波名称;scal定义阈值调整比例: %‘one’不设定比例;
%‘sln’使用的基
于第单层系数噪声估计,设置比例;
%‘mln’用噪声层的层相关估计,调整比例。
subplot(2,1,1);
plot(z); title('小波消噪后的信号');
xlabel('时间/ms'); ylabel('幅度'); grid on;
%小波包消噪,固定阈值
nn=length(y1);
thr=sqrt(2*log(nn*log(nn)/log(2)));
y2=wpdencmp(y1,'s',4,'db4','sure',thr,1);
subplot(2,1,2); plot(y2);
title('小波包消噪后的信号y2');
xlabel('时间/ms'); ylabel('幅度'); grid on;
图3
小波包消除信号中夹杂的突变信号,使得脉搏信号能准确反映人体的生理状况。
经过消噪后的脉搏信号如图3所示,比未经处理的信号更清晰,准确。
figure(4);
s1=fft(y,fs);%原始脉搏信号傅里叶变换;
subplot(2,1,1);
plot(abs(s1));%幅频特性; axis([0,400,0,40]);%定坐标范围;title('原脉搏信号幅频响应');
xlabel('频率/Hz'); ylabel('幅度'); grid on;
s2=fft(y2,fs);
subplot(2,1,2); plot(abs(s2));
axis([0,400,0,15]);%定坐标范围;
title('消噪后脉搏信号幅频特性');
xlabel('频率/Hz'); ylabel('幅度'); grid on;
图4
原始的脉搏信号经过带通滤波器以及小波消噪后,主要频率集中在0—40HZ之间,极低频段的基线漂移信号被滤除,高频段的工频干扰和肌电干扰也被滤除。
%时域分析;
%求1s中出现的最大值,取其0.6倍作为阈值,计算y的平均幅值pR v13=y1; v13=v13-mean(v13); %去基频直流分量;
v13=[v13 zeros(1,length(y)-length(v13))];