评分 | |
大理大学实验报告
课程名称 生物医学信号处理
实验名称 随机信号的数字特征分析
专业班级
姓 名 羽卒兰cl
学 号
实验日期
实验地点
2015—2016学年度第 3 学期
一、实验目的 了解随机信号的特征。 掌握随机信号的数字特征分析算法。 |
二、实验环境 1、硬件配置:Intel(R) 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小时内删除。
发表评论