评分
大理大学实验报告
  课程名称        生物医学信号处理               
  实验名称      随机信号的数字特征分析                           
  专业班级                                 
  姓    名          羽卒兰cl                      
  学    号                                 
  实验日期                                 
  实验地点                                 
2015—2016学年度第  3  学期
一、实验目的
了解随机信号的特征。
掌握随机信号的数字特征分析算法。
二、实验环境
1、硬件配置:IntelR Core(TM) i5-4210U CPU @1.7GHz 1.7GHz
安装内存(RAM):4.00GB  系统类型:64位操作系统
  2、软件环境MATLAB R2013b软件
三、实验内容
用Matlab编制程序,分析信号的数字特征,包括均值、方差、均方值、协方差。可以使用Matlab自带函数。观察信号的直方图,粗略估计其概率分布。
信号1:利用Matlab中的伪随机序列产生函数randn()产生的长1024点的序列;
信号2:实际采集的生物医学信号(脑电,心电等)。
四、实验结果与分析
实验原理:
1.对于平稳各态遍历随机过程,可以用单一样本函数的时间平均代替集总平均,即通过测量过程的单一样本来估计信号的统计特征量。
样本均值: 
样本均方值: 
样本方差:
样本自相关函数: 
样本自协方差: 
2.平稳随机过程:如果随机信号的概率特性不随时间变化而变化,则称为平稳随机过程,否则称为非平稳随机过程。
(1).一阶平稳过程:信号的平均值与t无关;
(2).二阶平稳过程:
①信号的平均值与t无关;
用subplot函数②信号的均方值与t无关;
③信号的协方差只是时间间隔的函数,而与时间的原点无关;
(3).我们至少把二阶平稳过程叫做准平稳过程或广义平稳过程。
源代码:
% 选择信号类型并设定参数,产生信号x(n)
clear; clc;%clear清空内存变量,clc只清空工作区内的内容
disp('请选择信号');%显示:请选择信号
disp('1 ---- 伪随机序列randn()');  %显示:1 ---- 伪随机序列randn()
disp('2 ---- 实际测量的心电信号');  %显示:2 ---- 实际测量的心电信号
disp('3 ---- 实际测量的脑电信号');  %显示:3 ---- 实际测量的脑电信号
disp('4 ---- 实际测量的呼吸信号');  %显示:4 ---- 实际测量的呼吸信号
disp('5 ---- 实际测量的颅内压信号');%显示:5 ---- 实际测量的颅内压信号
b = input('信号:');                %在屏幕上显示:信号:,等待输入内容
switch b                            % 输入序号,产生相应信号switch条件语句
   
case 1  %情况1
  L = input('每段数据长度 L \n');%每段数据长度 L,作为一个字符(串),输入后回车赋值
  N = input('数据共多少段 N \n');%数据共多少段 N,作为一个字符(串),输入后回车赋值
  x = randn(1, L*N);%randn是生成随机数的函数,randn(1,L*N)表示生成L*N的矩阵,矩阵
的每个元素都是随机数。     
case 2 %情况2
  load ecgdata;%导入ECG心电信号
  display(['数据总长度',num2str(length(ecgdata)),'点']);%把ECG心电信号长度数值转换
成字符串,转换后可以使用fprintf或disp函数进行输出。
  L = input('每段数据长度 L \n');  %输入每段数据长度L
  N = input('数据共多少段 N \n');  %输入段数N
  x = ecgdata (1:(N*L));            %表示生成N*L的矩阵的ECG心电信号
       
case 3%情况3
  load eegdata; %导入EEG脑电信号
  display(['数据总长度',num2str(length(eegdata)),'点']);%把EEG脑电信号长度数值  换成字符串,转换后可以使用fprintf或disp函数进行输出。
  L = input('每段数据长度 L \n');  %输入每段数据长度L
  N = input('数据共多少段 N \n');  %输入段数N
  x = eegdata (1:(N*L));%表示生成N*L的矩阵的EEG脑电信号
       
case 4 %情况4
  load icpdata;  %导入实际测量的呼吸信号
  display(['数据总长度',num2str(length(icpdata)),'点']);%把ECG心电信号长度数值转
换成字符串(转换后可以使用fprintf或disp函数进行输出)
  L = input('每段数据长度 L \n');  %输入每段数据长度L
  N = input('数据共多少段 N \n');  %输入段数N
  x = icpdata (1:(N*L));  %b=5时,产生N*L的矩阵的呼吸信号
case 5  %情况5
  load respdata;  %导入实际测量的颅内压信号
  display(['数据总长度',num2str(length(respdata)),'点']);%把EEG脑电信号长度数值转
换成字符串(转换后可以使用fprintf或disp函数进行输出)
  L = input('每段数据长度 L \n');  %输入每段数据长度L
  N = input('数据共多少段 N \n');  %输入段数N
  x = respdata (1:(N*L));  %b=5时,产生N*L的矩阵的颅内压信号
end
% 估计信号的统计特征量
Xmean = zeros(1,N); % 每段数据均值
Xms = zeros(1,N); % 每段数据均方值
Xvar = zeros(1,N); % 每段数据方差
rxs=xcorr(x,x);%
for k = 1:N  %k的取值从1到N
    xs = x(((k-1)*L+1):(k*L));%输入信号分段并补0至N
    Xmean(k) = mean(xs);%数值分析拟合,matlab中的mean函数函数功能是求数组的平均数或者均值。matlab中的mean函数函数功能是求数组的平均数或者均值。
    Xms(k) = std(xs).^2+ Xmean(k)^2;%对矩阵求均方差
    Xvar(k) = var(xs);%均方差
    rxs=xcorr(x,x);%自相关
    pxs=abs(fft(rxs)).^2/N;%自功率谱
end
n = 1:N; %样本容量n的取值范围为1:N
figure;%画图
subplot(2,3,1); stem(n,Xmean,'.'); title('均值');%创建一个二行三列的窗口,在第一个窗口显示图像;对于离散序列,MATLAB用stem( )命令实现其绘制针状图,以Xmean填充绘图的样式,并添加标题
subplot(2,3,2); stem(n,Xms,'.'); title('均方值');%创建一个二行三列的窗口,在第一个窗口显示图像;对于离散序列,MATLAB用stem( )命令实现其绘制针状图,以Xmean填充绘图的样式,并添加标题
subplot(2,3,3); stem(n,Xvar,'.'); title('方差');%创建一个二行三列的窗口,在第三个窗口显示图像;对于离散序列,MATLAB用stem( )命令实现其绘制针状图,以XXvar填充绘图的样式,并添加标题
xlabel(['L=',num2str(L),' ','N=',num2str(N)]);%横坐标
subplot(2,3,4); hist(x,100); title('直方图') % 绘制数据直方图,观察信号大致概率分布
subplot(2,3,5); stem(-(N*L-1):N*L-1,rxs);title('自相关函数图谱');%绘制自相关图谱
subplot(2,3,6); stem(-(N*L-1):N*L-1,pxs);title('自功率图谱');%绘制自功率图谱
图像显示:
导入信号为1:伪随机序列randn()              导入信号为2 :实际测量的心电信号
图1  L=128,N=8的伪随机信号的数字特征图  图2二 L=128,N=8的心电信号的数字特征图
导入信号为3 :实际测量的脑电信号              导入信号为4 :实际测量的呼吸信号
图3 L=128,N=8的脑电信号的数字特征图      图4 L=128,N=8的呼吸信号的数字特征图
导入信号为5 :实际测量的颅内压信号
图5 L=128,N=8的颅内压信号的数字特征图 
分析:
图1 是图1 L=128,N=8的伪随机信号的数字特征图,从图中可以看出,在[-4  4]之间服从正态分布,m=0时,有最大的自相关;
图2是二 L=128,N=8的心电信号的数字特征图,根据其直方图可以看出其概率函数集中分布在[-1  1]之间,可以看出其大致服从正态分布,根据其自相关函数图谱可以看出当m=0时,其自相关达到最大。
图3是 L=128,N=8的脑电信号的数字特征图,根据其直方图可以看出其概率函数集中分在
[-5 5]之间,可以看出其大致服从正态分布,根据其自相关函数图谱可以看出当m=0时,其自相关达到最大。
图4 是L=128,N=8的呼吸信号的数字特征图,根据其直方图看出其概率函数集中分布在[1  6]之间,可以看出其大致服从正态分布;根据其自相关函数图谱可以看出当m=0时,其自相关达到最大。
图5 是L=128,N=8的颅内压信号的数字特征图,根据其直方图看出其概率函数集中分布在[0 500]之间,但由于中轴线的两侧走势并不无限趋近于零,所以其形状并不服从正态分布;根据其自相关函数图谱可以看出当m=0时,其自相关达到最大。
     
思考题   
(1)改变每段数据长度,观察各段数字特征的分布情况。数据长度对于数字特征估计值有什么样的影响?
导入信号为1:伪随机序列randn()         
图6 L=512,N=2的伪随机信号的数字特征图    图7 L=256,N=4的伪随机信号的数字特征图
图8 L=128,N=8的伪随机信号的数字特征图    图9 L=64,N=16的伪随机信号的数字特征图
图10 L=32,N=32的伪随机信号的数字特征图  图11 L=16,N=64的伪随机信号的数字特征图
导入信号为2 :实际测量的心电信号
12 L=512,N=2的心电信号的数字特征图      13 L=256,N=4的心电信号的数字特征图
14 L=128,N=8的心电信号的数字特征图    15 L=64,N=16的心电信号的数字特征图
图16 L=32,N=32的心电信号的数字特征图  图17 L=16,N=64的心电信号的数字特征图
导入信号为3 :实际测量的脑电信号
18 L=512,N=2的脑电信号的数字特征图    19 L=256,N=4的脑电信号的数字特征图
20 L=128,N=8的脑电信号的数字特征图    图21 L=64,N=16的脑电信号的数字特征图
22 L=32,N=32的脑电信号的数字特征图    23 L=16,N=64的脑电信号的数字特征图
导入信号为4 :实际测量的呼吸信号
24 L=512,N=2的呼吸信号的数字特征图      图25 L=256,N=4的呼吸信号的数字特征图
图26 L=128,N=8的呼吸信号的数字特征图      图27 L=64,N=16的呼吸信号的数字特征图
图28 L=32,N=32的呼吸信号的数字特征图      图29 L=16,N=64的呼吸信号的数字特征图
导入信号为5 :实际测量的颅内压信号
30 L=512,N=2的颅内压信号的数字特征图  图31 L=256,N=4的颅内压信号的数字特征图
32 L=128,N=8的颅内压信号的数字特征图  图33 L=64,N=16的颅内压信号的数字特征图
34 L=32,N=32的颅内压信号的数字特征图  图35 L=16,N=64的颅内压信号的数字特征图
答:
图6-11是伪随机序列信号的改变输入每段数据长度L分别为:512,256,128,64,32 ,16。输入段数N分别为:2,4,8,16,32,64。
12-17是心电信号的改变输入每段数据长度L分别为:512,256,128,64,32 ,16。输入段数N分别为:2,4,8,16,32,64。
18-23是脑电信号的改变输入每段数据长度L分别为:512,256,128,64,32 ,16。输入段数N分别为:2,4,8,16,32,64。
24-29是呼吸信号的改变输入每段数据长度L分别为:512,256,128,64,32 ,16。输入段数N分别为:2,4,8,16,32,64。
30-35是颅内压信号的改变输入每段数据长度L分别为:512,256,128,64,32 ,16。输入段数N分别为:2,4,8,16,32,64。
注意参数控制,每次选取的L,N都是2的n次幂,N≥2,每个L,N都是一一对应,L*N=1024。观察它们的各段数字特征的分布情况,五种信号,改变它们每段数据的长度,它们的均值,均方值,方差的变化趋势是相似的,平坦程度差不多,并且随着N取值的增大,它的数字特征越接近。
2) 观察伪随机序列,心电信号、脑电、呼吸和颅内压信号的直方图,它们之间是否相似?
36 L=512,N=2的伪随机序列、心电、脑电、呼吸和颅内压信号的信号直方图
37 L=256,N=4的伪随机序列、心电、脑电、呼吸和颅内压信号的信号直方图
38 L=128,N=8的伪随机序列、心电、脑电、呼吸和颅内压信号的信号直方图
图39 L=64,N=16的伪随机序列、心电、脑电、呼吸和颅内压信号的信号直方图
40 L=32,N=32的伪随机序列、心电、脑电、呼吸和颅内压信号的信号直方图
41 L=16,N=64的伪随机序列、心电、脑电、呼吸和颅内压信号的信号直方图
答:
36-41是改变输入每段数据长度L分别为:512,256,128,64,32 ,16。输入段数N分别为:2,4,8,16,32,64。不同的L,N长度的伪随机序列、心电、脑电、呼吸和颅内压信号的信号直方图,通过查看它们的直方图可以发现,不同的L,N长度的伪随机序列信号的直方图在区间[-5  5]之间是相似的;不同的L,N长度的心电信号的直方图在区间[-1  1]之间都是相似的;不同的L,N长度的脑电信号的直方图在区间[-10  10]之间都是相似的;不同的L,N长度的呼吸信号的直方图在区间[0  10]之间都是相似的;不同的L,N长度的颅内压信号的直方图在区间[0  1000]之间是相似的。
(2)过同一数据分段估计数字特征,大致判断该数据是否可以看作广义平稳。
导入信号为4 :实际测量的呼吸信号
 
42 L=512,N=2的呼吸信号的数字特征图      图43 L=256,N=4的呼吸信号的数字特征图
 
44 L=128,N=8的呼吸信号的数字特征图      图45 L=64,N=16的呼吸信号的数字特征图
 
46 L=32,N=32的呼吸信号的数字特征图    图47 L=16,N=64的呼吸信号的数字特征图
答:
广义平稳的概念:如果随机信号的概率特性不随时间变化而变化,就称为广义平稳随机过程。所以要看我们设置的参数的各段的均值,均方值,方差变化是否相等,要是相等,则该数据可以看做广义平稳,否则不行。不同数据的各段估计数字特征所形成是否广义平稳可能不同,具体情况,具体分析;
42-47分别是呼吸信号的分段估计数字特征,不同的L、N长度的数字特征图的均值、均方值、方差分别在区间[1  2],[0  4],[0  10],[0 20],[0  40][0  100]的变化趋势都是大致相等的,不随着L、N长度的变化而变化,所以可以看成广义平稳;
五、实验小结:
(包括主要实验问题的最终结果描述、详细的收获体会,待解决的问题等)
在实验中应注意的点:
实验之前要先选择有四种信号的文件夹目录,以便导入我们需要的信号,这样才不会出错;
注意参数的设置,L*N=1024,L,N一一对应每次选取的L,N都是2的n次幂,N≥2;
搞清楚样本的均值,,均方值,方差,自相关函数,自协方差和自功率谱的概念和它们的
matalab函数表达式的应用,才能编写出程序;
看问题要认真,分析问题要全面。
不同取值范围,不同信号等都有可能导致结果不同,所以下结论的时候要严谨。
手写签名:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。