matlab求均值,方差_第1页
matlab求均值,方差_第2页
matlab求均值,方差_第3页
matlab求均值,方差_第4页
matlab求均值,方差_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、随机过程及在生物医学工程中的应用实验报告实验报告随机信号的数字特征分析一、 实验目的1.了解随机信号自身的特性,包括均值(数学期望)、方差、均方值等;2. 掌握随机信号的分析方法;二、实验原理1.均值测量方法均值表示集合平均值或数学期望值。基于随机过程的各态历经性,最常用的方法是取N个样本数据并简单地进行平均,即其中,样本信号的采样数据记为,为采样间隔。2.均方误差的测量方法随机序列的均方误差定义为:3.方差测量方法如果信号的均值是已知的,则其方差估计设计为它是无偏的与渐进一致的。三、实验内容利用MATLAB中的伪随机序列产生函数randn()产生多段1000点的序列,编制一个程序,计算随机信

2、号的数字特征,包括均值、方差、均方值、最后把计算结果平均,绘制数字特征图形。源程序如下:clear all;clc;%产生50个1000以内点的伪随机序列x=randn(50,1000);%计算随机产生的50个点序列的均值,方差,均方average=zeros(1,50);variance=zeros(1,50);square=zeros(1,50);%计算均值for i=1:50 for j=1:1000 average(i)=average(i)+x(i,j); end average(i)=average(i)/1000;end%计算方差for i=1:50 for j=1:1000 v

3、ariance(i)=variance(i)+(x(i,j)-average(i).2; end variance(i)=variance(i)/1000;end%计算均方值for i=1:50 for j=1:1000 square(i)=square(i)+x(i,j).2; end square(i)=square(i)/1000;endEX=sum(average)/50;DX=sum(variance)/50;RMS=sum(square)/50;plot(average);title('50个随机序列的均值');figure;plot(variance);title

4、('50个随机序列的方差');figure;plot(square);title('50个随机序列的均方值');四、实验结果及分析由上结果可知:将图中的计算结果平均后,得到的结果为:产生的50个点的随机序列均值的平均值为:EX=0.0090197;产生的50个点的随机序列方差的平均值为DX=1.0078;产生的50个点的随机序列均方值的平均值为RMS=1.0087。由上面所得到的图形可以看出50个点的伪随机序列的均值都在0附近,方差以及均方差都在1附近,将这些均值平均后得出的均值也是在0值附近,方差在1附近,与统计的结果相符合。实验二 数字相关和数字卷积程序一、

5、实验目的熟悉数字相关和数字卷积运算。二、实验原理1.线性以及循环相关的原理1.1 线性相关的原理假定x1(n)是列长为N的有限长序列,x2(n)是列长为M的有限长序列,两者的线性相关的结果为:1.2 循环相关的原理假定x1(n)是列长为N的有限长序列,x2(n)是列长为M的有限长序列,两者循环相关的结果为:2.线性以及循环卷积的原理2.1 线性卷积的原理假定x1(n)是列长为N的有限长序列,x2(n)是列长为M的有限长序列,两者的线性卷积的结果为:2.2 循环卷积的原理循环卷积的矩阵表示形式如下所示:其中x和H是两个输入的序列,y是循环卷积得到的实验结果。其中,三、实验内容编写函数实现两个随机

6、序列的线性、循环相关和线性、循环卷积的程序:源程序如下:两个序列线性相关的函数:clear allclcx=ones(1,8);h=ones(1,10);nx = length(x);nh = length(h);n = nx + nh - 1;for i = nh+1:n h(i) = 0;endfor i=nx+1:n x(i) = 0;endfor i=1:n for j=1:n H(i,j) = h(mod(i+j-2,n)+1); endendy = H * x' subplot(3, 1, 1);stem(x);title('随机序列1');subplot(

7、3, 1, 2);stem(h);title('随机序列2');subplot(3, 1, 3);stem(y);title('线性相关结果');两个序列循环相关的函数:clear allclcx=ones(1,8);h=ones(1,10);nx = length(x);nh = length(h);n = nx;if (nx>nh) for i = nh+1:n h(i) = 0; endendif (nx<nh) n = nh; for i=nx+1:n x(i) = 0; endendfor i=1:n for j=1:n H(i,j) =

8、h(mod(i+j-2,n)+1); endendy = H * x' subplot(3, 1, 1);stem(x);title('随机序列1');subplot(3, 1, 2);stem(h);title('随机序列2');subplot(3, 1, 3);stem(y);title('循环相关结果');两个序列线性卷积的函数:clear allclcx=ones(1,8);h=ones(1,10);nx = length(x);nh = length(h);n = nx + nh - 1;for i = nx+1:n x(i)

9、= 0;endfor i=nh+1:n h(i) = 0;endfor i=1:n for j=1:n H(i,j) = h(mod(i+n-j,n)+1); endendy = H * x'subplot(3, 1, 1);stem(x);title('随机序列1');subplot(3, 1, 2);stem(h);title('随机序列2');subplot(3, 1, 3);stem(y);title('线性卷积结果');两个序列循环卷积的函数:clear allclcx=ones(1,8);h=ones(1,10);n=15;n

10、x = length(x);nh = length(h);if (n<nx|n<nh) fprintf('输入圆周卷积的点数不正确'); breakendfor k=nh+1:n h(k) = 0;endfor k=nx+1:n x(k) = 0;endfor k=1:n for l=1:n H(k,l)=h(mod(k+n-l,n)+1); endendy = H*x'subplot(3, 1, 1);stem(x);title('随机序列1');subplot(3, 1, 2);stem(h);title('随机序列2')

11、;subplot(3, 1, 3);stem(y);title('循环卷积结果');四、实验结果及分析1.线性相关实现的程序及结果y= 8 8 8 6 5 4 3 2 1 1 2 3 4 5 6 72.循环相关实现的程序及结果y= 8 8 8 8 8 8 8 8 8 83.线性卷积实现的程序及结果y= 1 2 3 4 5 6 7 8 8 8 7 6 5 4 3 2 14.循环卷积实现的程序及结果当n=15时y= 3 3 3 4 5 6 7 8 8 8 7 6 5 4 3当n=17时y= 1 2 3 4 5 6 7 8 8 8 7 6 5 4 3 2 1由上图可知:15点循环卷积

12、结果与线性卷积的结果是不一致的,但是17点循环卷积结果与线性卷积的结果是一致的。实验三 维纳霍夫方程的求解一、实验目的学习使用Matlab实现W-H程序的编写。二、实验原理一个线性系统,如果它的单位样本响应为h(n),当输入一个随机信号x(n) :其中s(n)表示信号,表示噪声,则输出y(n)为 我们希望x(n)通过线性系统h(n)后得到的y(n)尽量接近于s(n),因此称y(n)为s(n)的估计值,用表示,即 维纳滤波的标准方程 如果我们以分别表示信号的真值与估计值,而用e(n)表示它们之间的误差目标:均方误差 min (MMSE准则) 上式可看成输出等于现在和过去各输入的加权之和 ,其中现

13、在的问题是需要求得使最小的,为此,将这式对求偏导,并令其结果等于0,得于是这样就得到维纳滤波的标准方程 FIR维纳滤波器设h(n)是一个因果序列可以用有限长(长度为N)的序列去逼近它 ,有上述得到W-H方程的矩阵形式为:即:,其中自相关矩阵称,为x与s的互相关矩阵 这样得到W-H方程的解为:三、实验内容编写函数解W-H方程,寻找最优的滤波器,并检验该程序的准确性。源程序如下:clear all;clc;%输入信号A = 1;f = 1000;fs = 105; t = (0:999); Mlag = 100; x = A*cos(2*pi*f*t/fs); %给正弦波信号加入信噪比为20dB的

14、高斯白噪声xn = awgn(x,5); figure;subplot(2,2,1)plot(t,xn) title('输入信号图像')%计算输入信号自相关函数Rxn=xcorr(xn,Mlag,'biased'); subplot(2,2,2)plot(-Mlag:Mlag),Rxn) title('输入信号自相关函数')%维纳滤波N = 100; Rxnx = xcorr(xn,x,Mlag,'biased'); rxnx = zeros(N,1);rxnx(:) = Rxnx(101:101+N-1);Rxx = zeros

15、(N,N); Rxx = diag(Rxn(101)*ones(1,N);for i = 2:N c = Rxn(101+i)*ones(1,N+1-i); Rxx = Rxx+diag(c,i-1)+diag(c,-i+1);endRxx;h = zeros(N,1);h = inv(Rxx)*rxnx; yn = filter(h,1,xn); subplot(2,2,3)plot(yn);title('经过维纳滤波器后信号信号');Ryn=xcorr(yn,Mlag,'biased'); subplot(2,2,4);plot(-Mlag:Mlag),Ry

16、n); title('经过维纳滤波器后信号自相关函数');四、实验结果从图中可以看出,滤波后得到的正弦信号仍然有一定的误差,但是输入信号的自相关函数在0点出有明显的噪声成分,通过维纳滤波以后得到的信号的自相关函数在0点处已经的噪声给消除了很多。实验四  YuleWalker方程的求解一、实验目的学习使用Matlab实现Y-W程序的编写。二、实验原理1.AR模型的 YuleWalker方程AR模型,又称为自回归模型,是一个全极点的模型,可用如下差分方程来表示: (1)其中是均值为零、方差为的白噪声序列, p是AR模型的阶数, a( k), k= 1, 2, ,

17、 p 是p阶AR模型的参数。AR 模型系统H ( z ) 的转移函数为: (2)从而得到AR模型的功率谱估计的计算公式: (3)由上式可以看出, 要利用AR模型进行功率谱估计, 必须得到模型参数和白噪声序列的方差。将(1)式变形有: (4)式(4)的矩阵形式为: (5)式( 4)和( 5) 是AR模型的AR Yule-Walker方程。2.burg算法求解方法Burg算法是使序列x(n)的前后向预测误差功率之和: (6)最小。利用Burg法求解AR模型参数的步骤:第一步:由初始条件,根据公式(7)求出反射系数: (7)第二步:根据序列x(n)自相关函数,求出阶次m=1时的AR模型参数a(1,1

18、)=k1与前后向预测误差功率之和。第三步:由式(8)求出前向预测误差与后向预测误差, 然后由式(7)估计出反射系数k2; (8)第四步:由(9)Levinsion递推关系, 求出阶次m=2时的AR模型参数a(2,1)和; (9)第五步: 重复上述过程, 直到阶次m=p, 这样就求出了所有阶次的AR模型参数。Burg算法的递推过程是建立在数据序列基础上, 避开了序列的自相关函数的估计, 所以与自相关法相比, 具有较好的频率分辨率。三、实验内容已知观测信号,编写函数解Y-W方程,寻找参数系数,并检验该程序的准确性和掌握用法。源程序如下:clear all;x = cos(0:0.1:50);N =

19、 length(x);%周期图法FFTX = fft(x);POW = (abs(FFTX).2)/N; subplot(1,2,1),plot(1/N : 2*pi/N/2/pi : 0.5, POW(1:N/2);title('周期图求取功率谱');xlabel('f/Hz');%Burg法的AR谱估计p=8;a=zeros(p,p);%初始化前向和后向误差以及e=x;b=x;sigma=0;for i=1:N sigma=sigma+x(i).2;endsigma=sigma/N;for n=1:p sum1=0; sum2=0; for j=n+1:N

20、sum1=sum1+2*e(j)*b(j-1); sum2=sum2+e(j).2+b(j-1).2; end a(n,n)=-sum1/sum2; sigma=sigma*(1-abs(a(n,n).2); if n>=2 for i=1:n-1 a(n,i)=a(n-1,i)+a(n,n)*a(n-1,n-i); end end for j=n+1:N c(j)=e(j)+a(n,n)*b(j-1); d(j)=b(j-1)+a(n,n)*e(j); end e=c; b=d;end%计算并输出功率谱for m=1:N sum=0; for n=1:p sum = a(p,n)*ex

21、p(-sqrt(-1)*2*pi*n*m/N) + sum; end POW2(m)=sigma/(abs(1 + sum).2);endsubplot(1,2,2),plot(1/N : 2*pi/N/2/pi : 0.5, POW2(1:N/2);title('AR模型谱估计法求取功率谱');xlabel('f/Hz');四实验结果及分析实验中输入的信号为余弦信号,理想情况下其功率谱是在余弦信号频率上的一个冲击函数。从实验的结果图可以看出,用AR模型估计的功率谱同用周期图法估计的功率谱一样,说明了用该方法所计算的功率谱的准确性。实验五 自适应噪声抵消算法的软

22、件设计与实现一、实验目的学习使用MATLAB编写LMS自适应滤波器,以及如何在生物医学信号中进行应用。二、实验原理1、自适应干扰抵消的原理图1 自适应干扰抵消原理图图1所示的是自适应干扰抵消器的基本结构。期望信号d(n)是信号与噪声之和,即d(n)= x(n) +N(n),自适应处理器的输入是与N(n)相关的另一个噪声N(n)。当x(n) 和N(n)不相关时,自适应处理器将调整自己的参数,使y(n)成为N(n)的最佳估计。这样,e(n)将逼近信号x(n),且其均方差Ee2(n)为最小。噪声N(n)就得到了一定程度的抵消。2、LMS自适应滤波算法图2 单输入自适应线性组合器LMS算法使用的准则是使滤波器的期望输出值和实际输出值之间的均方误最小化的准则,即使用均方误差来做性能指标。自适应滤波的结果如图2所示。各符号的意义是:x(n)输入信号,y(n)为滤波器的输出,d(n)为y(n)想要趋

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论