《生物医学信号处理》实习报告一.doc
文本预览下载声明
《生物医学信号处理》实习报告
学生姓名:
学号: 实验室名称: 项目名称:生物医学信号的功率谱分析 项目内容:
理解RR间期的基本含义,实验提供的RR间期数据为:NSR_rr12h.txt 和CHF_rr12h.txt。其中:文件NSR_rr12h为12小时的正常ECG信号提取的RR间期数据;文件CHF_rr12h为12小时的充血性心力衰竭ECG信号提取的RR间期数据。NSR_rr12h.txt数据所示如下:
运用周期图法分析RR间期的功率谱
运用现代谱分析方法分析RR间期的频谱特性。 原理(写出具体的计算公式)
一.AR模型
随机信号x(n)是由本身的若干次过去值x(n-k)与当前的激励值w(n)线性组合产生的:
该模型的系统函数是:
式中,p是系统阶数,系统函数中只有极点,没有零点,也称为全极点模型,系统由于极点的原因,要考虑到系统的稳定性,因而要注意极点的分布位置,用AR(p)来表示。
二.Yule-Walker(Y-W)方程
m0
三.Y-W方程的L-D算法
L-D算法的基本思想就是根据Y-W方程式的自相关序列具有递推的性质,L-D递推算法是模型阶数逐渐加大的一种算法,这种算法的特点是每一阶次参数的计算是从低一阶次的模型参数推算出来的,既可以减少工作量,又便于寻找最佳的阶数值,满足精度时就停止递推。
递推得到的预测系数和均方误差估计的通式是:
四.Y-W方程的burg算法
burg的基本思想是对观测的数据进行前向和后向预测,然后让两者的均方误差之和为最小作为估计的准则来估计反射系数,从而通过L-D算法的递推公式求出AR模型参数。
编写的源程序:
两种AR参数建模方法的实现代码:
function [a,E]=YWE(x,p)
x=x;
R=xcorr(x,x);
R=R(length(x):length(R));
R=R/length(x);
E=R(1);
a(1,1)=1;
for m=1:p
b=0;
for k=1:m-1
b=b+a(m,k+1)*R(m-k+1);
end
a(m+1,m+1)=-(R(m+1)+b)/E;
for k=1:m-1
a(m+1,k+1)=a(m,k+1)+a(m+1,m+1)*a(m,m-k+1);
end
E=E*(1-a(m+1,m+1)^2);
end
a(:,1)=1;
plot(a(p+1,:));
A = textread( NSR_rr12h.txt); % 导入数据
subplot(4,2,1); % 页面分3行2列6个区域,画在第一个区域
plot(1:1024,A(1:1024)); % 画出数据中的前256个数据
A=A(1:1024);
title( NSR_rr12h );
grid on; % 显示网格
subplot(4,2,2); % 页面分3行2列6个区域,画在第二个区域
[a,E]=YWE(A,100); % 调用自编Y_W方程
title(自编Y_W方程);
grid on; % 显示网格
subplot(4,2,3); % 页面分3行2列6个区域,画在第三个区域
[a1 E1]=aryule(A,100); % 调用MATLAB自带的L-D算法
plot(a1);
title(L-D算法);
grid on; % 显示网格
subplot(4,2,4); % 页面分3行2列6个区域,画在第四个区域
[a2 E2]=arburg(A,100); % 调用MATLAB自带的burg算法
plot(a2);
title(burg算法);
grid on; % 显示网格
subplot(4,2,5);
B=filter(-1*a1(2:end),1,A);
plot(B);
title(L-D-算法建模);
grid on; % 显示网格
subplot(4,2,6);
C=filter(-1*a(100+1,2:end),1,A);
plot(C);
title(自编Y-W算法建模);
grid on; % 显示网格
subplot(4,2,7);
plot((1:1024),A,r,(1:1024),B,k--);
title(原信号与L-D算法建模信号);
grid on;
subplot(4,2,8);
plot((1:1024),A,r,(1:1024),C,k--);
title(原信号与自编Y-W算法建模信号);
grid on;
编写的源程序:
两种计算随机信号功率谱的方法,及相应的实现代码
周期图法
x(n)的 N 个观测数据视
显示全部