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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

一、实验目的

1. 学习利用MATLAB模拟产生随机过程的方法。

2. 熟悉和掌握特征估计的基本方法及其MATLAB 实现。

二、实验原理

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

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

函数:randn

用法:x = randn(m,n)

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

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

X ~ N(0,1),则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),如果它的相关函数满足

(2.1)

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

(2.2)

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

(1)自相关法

先求自相关函数的估计X(m),然后对自相关函数做傅里叶变换

(2.3)

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

(2)周期图法

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

(2.4)

其中0n N-1,则功率谱估计为

(2.5)

MATLAB函数 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函数

nfft设定 FFT算法的长度;

fs表示采样频率;

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

三、实验内容

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

x(n)=0.8x(n-1)(n)

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

(1)实验程序

m.文件如下:

#输入变量p表示x(n)里n的数值#

function f=func1(p)

w=randn(1,p)*2+1;

#或 f=normrnd(1,2,1000,1)#

x=zeros(1,p);

for n = 2:1:p

x(n)=0.8*x(n-1)+ w(n); end

figure(1)

plot(x);

c=xcorr(x);

plot(c);

figure(2);

title(' 'x(n)的自相关函数'); figure(3);

periodogram(x);

title('x(n)的功率谱');

end

(2)实验过程及结果:

在command命令栏里输入:

func1(5000)

得到三个图的结果:

2. 设信号为

x(n)=(n) n=0,1,,N-1

其中f1 =0 .05,f2 =0 .12为正态分布白噪声序列,试在N =256和N= 1024点时,分别产生随机序列x(n),画出x(n)的波形并估计x(n)的相关函数和功率谱。

(1)实验程序:

写出m.文件

#输入变量p表示x(n)里n的数值#

function f=func2(p)

f1 = 0.05;

f2 = 0.12;

w=randn(1,p);

x = zeros(1,p);

for n=0:1:p-1

x(n+1) = sin(2*pi*f1*n) + 2*cos(2*pi*f2*n) + w(n+1);

end

figure(1);

plot(x);

title(' N=p时x(n)的波形');

c = xcorr (x);

figure(2);

subplot(1,2,1);

plot(c);

title(' N=p时x(n)的相关函数 '); subplot(1,2,2);

periodogram(x);

end

(2)实验过程及结果

在command命令栏里输入:

Func2(256)

得到三个图的结果:

相关文档
最新文档