北理工随机信号分析实验报告

  • 格式:docx
  • 大小:1.18 MB
  • 文档页数:32

本科实验报告

实验名称: 随机信号分析实验

课程名称: 随机信号分析实验 实验时间:

任课教师:

实验地点:

实验教师:

实验类型: □ 原理验证

□ 综合设计

□ 自主创新 学生姓名:

学号/班级:

组 号:

学 院:

同组搭档:

专 业:

成 绩:

实验一 随机序列的产生及数字特征估计

一、实验目的

1、学习和掌握随机数的产生方法。

2、实现随机序列的数字特征估计。

二、实验原理

1、随机数的产生

随机数指的是各种不同分布随机变量的抽样序列(样本值序列) 。进行随机信号仿真分 析时,需要模拟产生各种分布的随机数。

在计算机仿真时, 通常利用数学方法产生随机数, 这种随机数称为伪随机数。 伪随机数 是按照一定的计算公式产生的,这个公式称为随机数发生器。伪随机数本质上不是随机的, 而且存在周期性, 但是如果计算公式选择适当, 所产生的数据看似随机的, 与真正的随机数 具有相近的统计特性,可以作为随机数使用。

(0, 1)均匀分布随机数是最最基本、最简单的随机数。 (0, 1)均匀分布指的是在 [0,1]

区间上的均匀分布,即 U(0, 1)。实际应用中有许多现成的随机数发生器可以用于产生 (0,

1)均匀分布随机数,通常采用的方法为线性同余法,公式如下:

y0 1, ynkyn 1(mod N)

xn yn/ N

序列 xn 为产生的 (0, 1)均匀分布随机数。

下面给出了上式的 3 组常用参数:

1、N 1010 , k 7,周期 5 107 ;

2、(IBM 随机数发生器) N 231,k 216 3,周期 5 108 ;

31 5 9

3、(ran0) N 231 1,k 75, 周期 2 109 ; 由均匀分布随机数,可以利用反函数构造出任意分布的随机数。

定理 1.1 若随机变量 X 具有连续分布函数 F X (x),而 R 为(0,1)均匀分布随机变量,则

X Fx 1(R)

由这一定理可知,分布函数为 F X (x)的随机数可以由 (0,1)均匀分布随机数按上式进行变

换得到。

2、MATLAB中 产生随机序列的函数

(1) (0, 1)均匀分布的随机序列

函数: rand

用法: x = rand(m,n)

功能:产生 m× n 的均匀分布随机数矩阵。

(2) 正态分布的随机序列

函数: randn

用法: x = randn(m,n)

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

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

MATLAB 上还提供了其他多种分布的随机数的产生函数,下表列出了部分函数。

MATLAB中 产生随机数的一些函数

3、随机序列的数字特征估计

对于遍历过程, 可以通过随机序列的一条样本函数来获得该过程的统计特性。 这里我们 假定随机序列 X

(n)为遍历过程,样本函数为 x(n),其中 n=0,1,2,⋯,N-1。那么, X (n)的均

值、方差和自相关函数的估计为

利用 MATLAB 的统计分析函数可以分析随机序列的数字特征。

(1) 均值函数

函数: mean

用法: m = mean(x) 功能:返回按上面第一式估计 X (n)的均值,其中 x 为样本序列 x(n)。

(2) 方差函数

函数: var

用法: sigma2 = var(x)

功能:返回按上面第二式估计 X (n)的方差,其中 x 为样本序列 x(n) ,这一估计为无偏 估计。

(3) 互相关函数

函数: 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' 不做归一化处理。

三、实验内容

1、采用线性同余法产生均匀分布随机数 1000 个,计算该序列均值和方差与理论 值之间的误差大小。改变样本个数重新计算。

num=input( 'num=' );

n=2^31;

k=2^16+3;

y=zeros(1,num);

x=zeros(1,num);

y(1)=1;

for i=2:num

y(i)=mod(k*y(i-1),num);

end

x=y/num;

m=mean(x);

si=var(x);

plot(x, 'k' );

xlabel( 'n' );

ylabel( 'x(n)' );

axis tight ;

已知理论值均值为 0.5

方差为 0.0833

Num=1000

m =

0.4900 >> si si =

0.0834 NUM=5000 m m =

0.4950

>> si si =

0.0834

Num=3000 m

m =

0.4833

>> si

si =

0.0832

Num=5000 m m =

0.4980

>> si

si =

0.0833

2、参数为 的指数分布的分布函数为

x Fx 1 e x

利用反函数法产生参数为 0.5 的指数分布随机数 1000 个,测试其方差和相

关函数。

R=rand(1,1000);

lambda=0.5;

x=-log(1-R)/lambda;

Dx=var(x);

[Rm,m]=xcorr(x);

subplot(211);

plot(x, 'k' );xlabel( 'n' );ylabel( 'x(n)' );axis tight ;

subplot(212);plot(m,Rm, 'k' );xlabel( 'm' );ylabel( 'R(m)' );axis tight ;

Dx

Dx =

4.0781

理论上方差的值为 1/(0.5^2)=4 ,实际值为 4.1201 ,因为取样个数有限,导致存在 定偏差。但大体相近。

3、产生一组 N(1,4) 分布的高斯随机数( 1000 个样本),估计该序列的均值、方 差和相关函数。

x=normrnd(1,2,[1,1000]);

Mx=mean(x);

Dx=var(x);

[Rm,m]=xcorr(x);

subplot(211);

plot(x, 'k' );xlabel( 'n' );ylabel( 'x(n)' );axis tight ; subplot(212);plot(m,Rm, 'k' );xlabel( 'm' );ylabel( 'R(m)' );axis tight ;

Mx

Mx =

1.0934 >> Dx

Dx =

4.1071

理论上的均值为 1,方差为 4。而在实验中得到的均值为 1.0934 ,方差为

4.1071 。考虑到取样点有限,误差可以接受,理论值和实验值基本相同。

四、 实验体会

本次实验内容是随机序列的产生及数字特征估计, 通过实验我学习和掌握随 机数的产生方法,比如线性同余法, 生成已知分布函数的随机数, rand 函数等, 也实现了对随机序列数字特征的估计,初步达到了实验的预期目的。

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

实验目的

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

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

二、实 验原理

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

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

函数: randn

用法: x = randn(m,n)

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

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

N(0,1) ,则 X ~ N( , 2)。

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 选项可以设定为:

不做归一化处理。

3、功率谱估计

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 为归一化的频率向量; 'biased'

'unbiased' 有偏估计。

无偏估计。

'coeff' m=0 时的相关函数值归一化为 1。

'none'