白噪声产生程序

  • 格式:doc
  • 大小:41.00 KB
  • 文档页数:3

下载文档原格式

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

第二章的白噪声产生程序

例2.2 用乘同余法产生(见光盘FLch2bzsheg2.m)

①编程如下:

A=6; x0=1; M=255; f=2; N=100;%初始化;

x0=1; M=255;

for k=1: N %乘同余法递推100次;

x2=A*x0; %分别用x2和x0表示x i+1和x i-1;

x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(x i)中;

v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中;

)减去0.5再乘以存储器f中的系数,存放在v(:,k)=(v1-0.5 )*f; %将v1中的数(

i

矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环

次数变化;

x0=x1; % x i-1= x i;

v0=v1;

end %递推100次结束;

v2=v %该语句后无‘;’,实现矩阵存储器v中随机数放在v2中,且

可直接显示在MATLAB的window中;

k1=k;

%grapher %以下是绘图程序;

k=1:k1;

plot(k,v,k,v,'r');

xlabel('k'), ylabel('v');tktle(' (-1,+1)均匀分布的白噪声')

②程序运行结果如图2.6所示。

图2.6 采用MA TLAB产生的(-1,+1)均匀分布的白噪声序列

③产生的(-1,1)均匀分布的白噪声序列

在程序运行结束后,产生的(-1,1)均匀分布的白噪声序列,直接从MATLAB的window 界面中copy出来如下(v2中每行存6个随机数):

v2 =

-0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219

0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672

0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188

0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531

-0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328

0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359

-0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844

0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359

-0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219

0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672

0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188

0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531

-0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328

0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359

-0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844

0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359

-0.9531 -0.7188 0.6875 -0.8359

*另外,书中图2.3白噪声的产生如下:

显然,只要在例2.2程序的初始化部分中给N=300,f=6,运行程序就可以得到如图2.3所示的(-3,3)的白噪声过程.

①编程如下:

A=6; x0=1; M=255; f=6; N=300;%初始化;

x0=1; M=255;

for k=1: N %乘同余法递推100次;

x2=A*x0; %分别用x2和x0表示x i+1和x i-1;

x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(x i)中;

v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中;

)减去0.5再乘以存储器f中的系数,存放在v(:,k)=(v1-0.5 )*f; %将v1中的数(

i

矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环

次数变化;

x0=x1; % x i-1= x i;

v0=v1;

end %递推100次结束;

v2=v %该语句后无‘;’,实现矩阵存储器v中随机数放在v2中,且

可直接显示在MATLAB的window中;

k1=k;

%grapher %以下是绘图程序;

k=1:k1;

plot(k,v,k,v,'r');

xlabel('k'), ylabel('v');tktle(' (-1,+1)均匀分布的白噪声')

②程序运行结果如图2.3所示。

图2.3 白噪声过程