您好,欢迎来到好兔宠物网。
搜索
您的当前位置:首页随机信号分析报告实验:随机过程的模拟与数字特征

随机信号分析报告实验:随机过程的模拟与数字特征

来源:好兔宠物网


实验二 随机过程的模拟与数字特征

实验目的

1. 学习利用MATLAB模拟产生随机过程的方法。 2. 熟悉和掌握特征估计的基本方法及其MATLAB实现。

实验原理

1.正态分布白噪声序列的产生

MATLAB提供了许多产生各种分布白噪声序列的函数,其中产生正态分布白噪声序列的函数为randn。

函数:randn

用法:x = randn(m,n)

功能:产生m×n的标准正态分布随机数矩阵。

如果要产生服从N(,)分布的随机序列,则可以由标准正态随机序列产生。如果

2X~N(0,1),则X~N(,)。

2.相关函数估计

MATLAB提供了函数xcorr用于自相关函数的估计。 函数:xcorr

用法:c = xcorr(x,y)

c = xcorr(x)

c = xcorr(x,y,'opition') c = xcorr(x,'opition')

功能:xcorr(x,y)计算X(n)与Y(n)的互相关,xcorr(x)计算X(n)的自相关。 option选项可以设定为: 'biased' 有偏估计。 'unbiased' 无偏估计。

'coeff' m = 0时的相关函数值归一化为1。 'none' 不做归一化处理。

3.功率谱估计

对于平稳随机序列X(n),如果它的相关函数满足

mRX(m) (2.1)

那么它的功率谱定义为自相关函数RX(m)的傅里叶变换:

SX()mRX(m)ejm (2.2)

功率谱表示随机信号频域的统计特性,有着重要的物理意义。我们实际所能得到的随机信号的长度总是有限的,用有限长度的信号所得的功率谱只是真实功率谱的估计,称为谱估计或谱分析。功率谱估计的方法有很多种,这里我们介绍基于傅里叶分析的两种通用谱估计方法。

(1)自相关法

ˆ(m),然后对自相关函数做傅里叶变换 先求自相关函数的估计RXˆ()SXm(N1)ˆRN1X(m)ejm (2.3)

其中N表示用于估计样本序列的样本个数。

(2)周期图法

先对样本序列x(n)做傅里叶变换

X()x(n)ejn (2.4)

n0N1其中0nN1,则功率谱估计为

ˆ()1X()2 (2.5) SNMATLAB函数periodogram实现了周期图法的功率谱估计。 函数:periodogram

用法:[Pxx,w] = periodogram(x)

[Pxx,w] = periodogram(x,window) [Pxx,w] = periodogram(x,window,nfft) [Pxx,f] = periodogram(x,window,nfft,fs) periodogram(...)

功能:实现周期图法的功率谱估计。其中: Pxx为输出的功率谱估计值; f为频率向量; w为归一化的频率向量;

window代表窗函数,这种用法种对数据进行了加窗,对数据加窗是为了减少功率谱估计中因为数据截断产生的截断误差,表2.1列出了产生常用窗函数的MATLAB函数

表2.1 常用窗函数及产生窗函数的MATLAB函数

窗函数 矩形窗 三角窗 Hanning窗 Hamming窗

MATLAB函数 boxcar triang hann hamming

窗函数 Blackman窗 Chebyshev窗 Bartlett窗 Kaiser窗

MATLAB函数 blackman chebwin bartlett kaiser

nfft设定FFT算法的长度; fs表示采样频率;

如果不指定输出参数(最后一种用法),则直接会出功率谱估计的波形。

实验内容

1. 按如下模型产生一组随机序列

x(n)0.8x(n1)(n)

其中(n)是均值为1,方差为4的正态分布白噪声序列。估计过程的自相关函数和功率谱。 MATLAB代码:

注解:

>> w=randn(1001,1); 产生一个标准正态分布 >> x(1)=0; >> for i=2:1001;

x(i)=0.8*x(i-1)+1+2*w(i);

>> end; 产生题目要求的随机序列 >> plot(x); 画出随机序列 >> periodogram(x); 画出功率谱 >> c=xcorr(x); 求出自相关函数

>> n=-1000:1000; 确定自相关函数的图像范围 >> plot(n,c); 画出自相关函数图

实验结果:

随机序列

功率谱

相关函数

实验原理:

本题要求按它所给的公式产生一个伪随机序列,我们采用的方法依然是上次课所学的方法,只是在这里我们利用了randm函数,用它来产生高斯白噪声,方程式为

(n)12randm(1,1001)

这样,我们就可以得到了题目要求均值和方差的高斯白噪声。

然后通过一个循环就产生了题目要求的随机序列。

接着,我们求出了这个随机序列的功率谱密度,方法是使用了periodogram函数,这个函数的作用就是产生随机序列的功率谱,其具体的使用方法已经在上面的描述中给出了。

然后我们画出了它的自相关函数,用的是系统的xcorr函数,并将画出的自相关函数的自变量范围定在了-1000到1000之间,从而得了实验结果中的图。

2. 设信号为

x(n)sin(2f1n)2cos(2f2n)(n), n0,1,,N1

其中f10.05,f20.12,为(n)正态分布白噪声序列,试在N256和N1024点时,分别产生随机序列x(n),画出x(n)的波形并估计x(n)的相关函数和功率谱。 (1)当N=256时 MATLAB代码

>> k=256; >> w=randn(1,k); >> x=randn(1,k); >> for i=1:(k-1); x(i)=sin(0.1*pi*i)+2*cos(0.24*pi*i)+w(i);

end; >> plot(x); >> periodogram(x); >> r=xcorr(x); >> n=-k+1:k-1; >> plot(n,r); 实验结果

注释: 选取点值为256

产生标准高斯分布的高斯白噪声 生成随机序列 画出随机序列图谱 画出功率谱密度 求出自相关函数

选定自相关函数的横坐标范围 画出自相关函数图谱

随机序列

相关函数

功率谱密度

(2)当N=1024时 MATLAB代码:

注释:

>> k=1024; 选取点值为1024

>> w=randn(1,k); 产生标准高斯分布的高斯白噪声 >> x=randn(1,k); >> for i=1:(k-1);

x(i)=sin(0.1*pi*i)+2*cos(0.24*pi*i)+w(i);

end; 生成随机序列 >> plot(x); 画出随机序列图谱 >> periodogram(x); 求出功率谱 >> r=xcorr(x); 求出自相关函数

>> n=-k+1:k-1; 选定自相关函数的横坐标范围 >> plot(n,r); 画出自相关函数图谱 实验结果:

随机序列

自相关函数

功率谱密度

实验原理:

本题的要求是在N256和N1024处分别产生随机序列,并分别画出它们的功率谱密度和自相关函数,这里我们看到(n)是均值为0,方差为1的高斯白噪声,所以我们用生成高斯分布的函数randm直接产生高斯白噪声,然后产生所要求的随机序列,并将其画出。

接下来我们求出了功率谱密度,用的也是这次试验刚学的periodogram函数,它的作用是实现周期图的功率谱估计,这样我们就估计出了它的功率谱密度。

然后再次使用了xcorr函数,实现了对自相关函数的求解。

这两次实验我们使用了类似于C语言中的全局变量性质的变量k,这样可以在不改变源程序的情况下,只需要改变k,就可以求出任意N值处的随机序列,并对他们分析,这给我们带来了巨大的方便。 结果分析:

我们可以比较一下两次实验结果,在不同的N处,我们得到了两组不同的图,在两组图中,我们可以看出,在N较大时,我们的图比较密集,我们将它放大后可以看出,当N较大时,我们得到的结果精度较高,但是,图的整体形状基本不变的,只有一些细小的差别由于N小的时候精度不够而没有体现出来,但是从总体上看,两图还是基本上是一致的,都表示出了这个随机序列的特性。

实验心得体会:

本次实验的目的是进行特征估计,而实验中我们主要是研究了功率谱密度和自相关函数的估计,我们分别使用了系统中相关的求解函数并画出了他们的图,这样我们就观察到了我们所生成的随机序列,通过本次实验,我们可以清晰地观察到随机序列的功率谱和自相关函数的图形,从而对随机信号这部分内容有了更加深刻的了解与认识,对我随机信号的学习产生了巨大的帮助。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto1234.com 版权所有 湘ICP备2023017662号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务