随机信号的数字特征分析实验报告.docx
《随机信号的数字特征分析实验报告.docx》由会员分享,可在线阅读,更多相关《随机信号的数字特征分析实验报告.docx(31页珍藏版)》请在冰豆网上搜索。
![随机信号的数字特征分析实验报告.docx](https://file1.bdocx.com/fileroot1/2022-10/18/3bf307f2-51f5-4acb-9591-5aa0ce940c6a/3bf307f2-51f5-4acb-9591-5aa0ce940c6a1.gif)
随机信号的数字特征分析实验报告
评分
大理大学实验报告
课程名称生物医学信号处理
实验名称随机信号的数字特征分析
专业班级
姓名羽卒兰cl
学号
实验日期
实验地点
2015—2016学年度第3学期
一、实验目的
了解随机信号的特征。
掌握随机信号的数字特征分析算法。
二、实验环境
1、硬件配置:
Intel(R)Core(TM)i5-4210UCPU@1.7GHz1.7GHz
安装内存(RAM):
4.00GB系统类型:
64位操作系统
2、软件环境:
MATLABR2013b软件
三、实验内容
用Matlab编制程序,分析信号的数字特征,包括均值、方差、均方值、协方差。
可以使用Matlab自带函数。
观察信号的直方图,粗略估计其概率分布。
信号1:
利用Matlab中的伪随机序列产生函数randn()产生的长1024点的序列;
信号2:
实际采集的生物医学信号(脑电,心电等)。
四、实验结果与分析
实验原理:
1.对于平稳各态遍历随机过程,可以用单一样本函数的时间平均代替集总平均,即通过测量过程的单一样本来估计信号的统计特征量。
样本均值:
样本均方值:
样本方差:
样本自相关函数:
样本自协方差:
2.平稳随机过程:
如果随机信号的概率特性不随时间变化而变化,则称为平稳随机过程,否则称为非平稳随机过程。
(1).一阶平稳过程:
信号的平均值与t无关;
(2).二阶平稳过程:
①信号的平均值与t无关;
②信号的均方值与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('信号:
');%在屏幕上显示:
信号:
,等待输入内容
switchb%输入序号,产生相应信号switch条件语句
case1%情况1
L=input('每段数据长度L\n');%每段数据长度L,作为一个字符(串),输入后回车赋值
N=input('数据共多少段N\n');%数据共多少段N,作为一个字符(串),输入后回车赋值
x=randn(1,L*N);%randn是生成随机数的函数,randn(1,L*N)表示生成L*N的矩阵,矩阵
的每个元素都是随机数。
case2%情况2
loadecgdata;%导入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心电信号
case3%情况3
loadeegdata;%导入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脑电信号
case4%情况4
loadicpdata;%导入实际测量的呼吸信号
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的矩阵的呼吸信号
case5%情况5
loadrespdata;%导入实际测量的颅内压信号
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);%
fork=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:
实际测量的心电信号
图1L=128,N=8的伪随机信号的数字特征图图2二L=128,N=8的心电信号的数字特征图
导入信号为3:
实际测量的脑电信号导入信号为4:
实际测量的呼吸信号
图3L=128,N=8的脑电信号的数字特征图图4L=128,N=8的呼吸信号的数字特征图
导入信号为5:
实际测量的颅内压信号
图5L=128,N=8的颅内压信号的数字特征图
分析:
图1是图1L=128,N=8的伪随机信号的数字特征图,从图中可以看出,在[-44]之间服从正态分布,m=0时,有最大的自相关;
图2是二L=128,N=8的心电信号的数字特征图,根据其直方图可以看出其概率函数集中分布在[-
11]之间,可以看出其大致服从正态分布,根据其自相关函数图谱可以看出当m=0时,其自相关达到最大。
图3是L=128,N=8的脑电信号的数字特征图,根据其直方图可以看出其概率函数集中分在
[-55]之间,可以看出其大致服从正态分布,根据其自相关函数图谱可以看出当m=0时,其自相关达到最大。
图4是L=128,N=8的呼吸信号的数字特征图,根据其直方图看出其概率函数集中分布在[16]之间,可以看出其大致服从正态分布;根据其自相关函数图谱可以看出当m=0时,其自相关达到最大。
图5是L=128,N=8的颅内压信号的数字特征图,根据其直方图看出其概率函数集中分布在[0500]之间,但由于中轴线的两侧走势并不无限趋近于零,所以其形状并不服从正态分布;根据其自相关函数图谱可以看出当m=0时,其自相关达到最大。
思考题
(1)改变每段数据长度,观察各段数字特征的分布情况。
数据长度对于数字特征估计值有什么样的影响?
导入信号为1:
伪随机序列randn()
图6L=512,N=2的伪随机信号的数字特征图图7L=256,N=4的伪随机信号的数字特征图
图8L=128,N=8的伪随机信号的数字特征图图9L=64,N=16的伪随机信号的数字特征图
图10L=32,N=32的伪随机信号的数字特征图图11L=16,N=64的伪随机信号的数字特征图
导入信号为2:
实际测量的心电信号
图12L=512,N=2的心电信号的数字特征图图13L=256,N=4的心电信号的数字特征图
图14L=128,N=8的心电信号的数字特征图图15L=64,N=16的心电信号的数字特征图
图16L=32,N=32的心电信号的数字特征图图17L=16,N=64的心电信号的数字特征图
导入信号为3:
实际测量的脑电信号
图18L=512,N=2的脑电信号的数字特征图图19L=256,N=4的脑电信号的数字特征图
图20L=128,N=8的脑电信号的数字特征图图21L=64,N=16的脑电信号的数字特征图
图22L=32,N=32的脑电信号的数字特征图图23L=16,N=64的脑电信号的数字特征图
导入信号为4:
实际测量的呼吸信号
图24L=512,N=2的呼吸信号的数字特征图图25L=256,N=4的呼吸信号的数字特征图
图26L=128,N=8的呼吸信号的数字特征图图27L=64,N=