《随机信号分析》试验报告
班级班
学号_______________
姓名_________________
实验一
1、熟悉并练习使用下列 Matlab 的函数,给出各个函数的功能说明和内部参数 的意义,
并给出至少一个使用例子和运行结果:
1)randn()
产生随机数数组或矩阵,其元素服从均值为 0,方差为 1 的正态分布
1) Y = randn
产生一个伪随机数 2) Y = randn(n) 产生 n x n 的矩阵, 的正态分布
其元素服从均值为
0,
方差为 1
3)
Y = randn(m,n)
产生 m x n 的矩阵, 的正态分布
其元素服从均值为
0,
方差为 1
4) Y= randn([m n]) 产生 m x n 的矩阵, 的正态分布
其元素服从均值为
0,
方差为 1
选择( 2)作为例子,运行结果如下: >> Y = randn(3)
1.3005 0.0342 0.9792
0.2691 0.9913 -0.8863 -0.1551 -1.3618 -0.3562
生成n 々随机矩阵,其元素在(0, 1)内 生成mxn 随机矩阵 生成m x n 随机矩阵
生成mxn 和x …随机矩阵或数组 生成m x n 和x …随机矩阵或数
组 生成与矩阵 A 相同大小的随机矩阵 选择( 3)作为例子,运行结果如下:
>> Y = rand([3 4])
Y =
0.0579
0.0099 0.1987 0.1988
3)normrnd()
产生服从均值为mu 标准差为sigma 的随机数, mu 和
sigma 可以为向量、矩阵、或多维数组。
(2)R = normrnd (mu,sigma,v ) 产生服从均值为 mu 标准差为 sigma 的随机数,
v 是一个行向量。如果v 是一个1 X 2的向量, 则R 为一个1行2列的矩阵。如果v 是1X n 的, 那么R 是一个n 维数组
(3)R = normrnd (mu,sigma,m,n ) 产生服从均值为 mu 标准差为 sigma 的随机数,
2)rand()
(1)Y = rand(n) (2)Y = rand(m,n) (3)Y = rand([m n])
(4) Y = rand(m,n,p,…) (5) Y = rand([m n p …]) (6) Y = rand(size(A)) 0.3529 0.8132
0.1389 0.2028 0.6038 0.2722 0.0153 0.7468
产生服从正态分布的随机数
(1)R= normrnd(mu,sigma)
标量m和n是R的行数和列数。
选择(3)作为例子,运行结果如下:
>> R = normrnd(1,1,3,4)
R =
1.4117
2.1139 1.9044 0.6638
4.1832 3.0668 1.1677 2.7143
1.8636
2.0593 2.2944
3.6236
4)mean()
(1)M = mean(A) 如果A是一个向量,则返回A的均值。如果A是一个矩
阵,则把A的每一列看成一个矩阵,返回一个均值(每一
列的均值)行矩阵
(2)M= mean(A,dim) 返回由标量dim标定的那个维度的平均值。如(A,2)是
一个列向量,包含着A中每一行的均值。
选择(2)作为例子,运行结果如下:>>A =
3 4 5 6 7
4
5) var()
r、、 . 、$.
求方差
(1)V = var(X)
(2)V = var(X,w) 返回X的每一列的方差,即返回一个行向量。计算方差时加上权重w
选择(2)作为例子,运行结果如下:
>> X=[1:1:5;1:2:10];V=var(X,1)V =
0 0.2500 1.0000 2.2500 4.0000
6)xcorr()
计算互相关
(1) c=xcorr(x,y)
(2)c=xcorr(x) 计算x,y 的互相关计算x 的自相关
选择(2)作为例子,运行结果如下:R=normrnd(1,2,3)
c=xcorr(R)
c =
-2.0953 0.8081 5.4014 -1.6986 0.6551 4.3787
1.6072 -0.6198 -4.1432
-1.2036-0.8064 -4.4636 -3.2012 0.2046 2.1184 1.4050 0.4327 2.1818
9.1743 1.7032 -8.7548 1.7032 2.2426 -0.3519 -8.7548 -0.3519 12.8829
-1.2036-3.2012 1.4050 -0.8064 0.2046 0.4327 -4.4636 2.1184 2.1818
-2.0953-1.6986 1.6072 0.8081 0.6551 -0.6198 5.4014 4.3787 -4.1432
7) periodogram()
计算功率谱密度
[Pxx,w]=periodogram(x) 计算x的功率谱密度
运行结果如下:
X=[-20:4:20];Y=periodogram(X);plot(Y)
8) fft()
离散傅里叶变换
(1)Y = fft(X)
返回向量X用快速傅里叶算法得到的离散傅里叶变换,
如果X是一个矩阵,则返回矩阵每一列的傅里叶变换(2)Y = fft(X,n) 返回n点的离散傅里叶变换,如果X的长度小于n,X
的末尾填零。如果X的长度大于n,则X被截断。当X
是一个矩阵时,列的长度也服从同样的操作。
选择(1)作为例子,运行结果如下:
X=0:0.1:1;
Y=fft(X)
Y =
Columns 1 through 5
5.5000 -0.5500 + 1.8731i -0.5500 + 0.8558i -0.5500 + 0.4766i
-0.5500 + 0.2512i
Columns 6 through 10
-0.5500 + 0.0791i -0.5500 - 0.0791i -0.5500 - 0.2512i -0.5500 - 0.4766i -0.5500 - 0.8558i
Colum n 11
-0.5500 - 1.8731i
9) n ormpdf()
求正态分布概率密度函数值
Y = normpdf(X,mu,sigma)
对每一个X 中的值返回参数为 mu,sigma 的正 态分布概率密度函数值
运行结果如下:
>> x=-5:0.1:5;y=normpdf(x,1,2);plot(x,y)
10) normcdf()
求正态分布概率分布函数值
P = normcdf(X,mu,sigma)
对每一个X 中的值返回参数为 mu,sigma 的 累计分布函数值
运行结果如下:
>> p = no rmcdf(1:4,0,1) p =
0.8413 0.9772 0.9987 1.0000
11) u nifpdf()
求连续均匀分布的概率密度函数值 Y = un ifpdf(X,A,B) 运行结果如下:
对每一个X 中的值返回参数为A,B 的均匀分布函数值
>> x = 1:0.1:3; y = un ifpdf(x,1,2) y =
□
n.12
O.D6
0 D2
Colum ns 1 through 10
1 1 1 1 1 1 1 1 1 1
Colum ns 11 through 20
1 0 0 0 0 0 0 0 0 0
Colum n 21
12) un ifcdf()
求连续均匀分布的概率分布函数值
P = un ifcdf(X,A,B) 对每一个X中的值返回参数为A,B的均匀分布累计
分布函数值
运行结果如下:
>> y=u nifcdf(0.5,-1,1) y =
0.7500
13) raylpdf()
求瑞利概率密度分布函数值
Y = raylpdf(X,B) 对每一个X中的值返回参数为B的瑞利概率分布函数值
运行结果如下:
x = 0:024;
p = raylpdf(x,1);
14) raylcdf()
求瑞利分布的概率分布函数值
P = raylcdf(X,B) 对每一个X中的值返回参数为B的瑞利分布的累计
分布函数值
运行结果如下: x = 0:025; p = raylcdf(x,1);
Plot(x,p)
15) exppdf()
求指数分布的概率密度函数值
Y = exppdf(X,mu) 对每一个X中的值返回参数为mu的瑞利分布的概
率密度函数值
运行结果如下:
>> y = exppdf(3,2:6)
y =
0.1116 0.1226 0.1181 0.1098 0.1011
16) expcdf()
求指数分布的概率分布函数值
P = expcdf(X,mu) 对每一个X中的值返回参数为mu的瑞利分布的概
率分布函数值
运行结果如下:
>> x = 0:0.2:5;
p = expcdf(x,2);
plot(x,p)
17) chol()
对称正定矩阵的Cholesky 分解 (1) R=chol(X) 产生一个上三角阵R,使R'R=%若X 为非对称正定,
则输出一个出错信息
(2) [R,p]=chol(X) 不输出出错信息。当X 为对称正定的,则p=0, R 与上
述格式得到的结果相同;否则 p 为一个正整数。如果 X 为满秩矩阵,则R 为一个阶数为q=p-1的上三角阵, 且满足
R'R=X(1:q,1:q)。
选择(2)作为例子,运行结果如下
>> n =4;
X = pascal( n);R = chol(X) R =
1 1 1 1 0 1
2
3 0 0 1 3 0 0
0 1
18) ksde nsity()
计算概率密度估计
R = n ormrnd(2,1);[f, xi] = ksde nsity(R);plot(xi,f)
(1) [f,xi] = ksdensity(x)
(2)f = ksdensity(x,xi)
选择(1)作为例子,运行结果如下:
计算向量x 样本的一个概率密度估计,返 回向量f 是在xi 各个点估计出的密度值 计算在确定点xi 处的估计值
19)hist()
画直方图 (1)n = hist(Y) (2) n = hist(Y,x) (3) n = hist(Y,nbins) 运行结果如下:
将向量丫中的元素分成10个等长的区间,再返 回每区间中元素个数,是个行向量 画以x 元素为中心的柱状图 画以n bi ns 为宽度的柱状图
20) int()
对符号表达式s 中确定的符号变量计算计算不定积分 对符号表达式s 中指定的符号变量V 计算不定积分? 符号表达式s 的定积分,a,b 分别为积分的上、下限 符号表达式s 关于变量v 的定积分,a,b 为积分的上下限
1/2*x A 2
2、产生高斯随机变量 (1) 产生数学期望为0,方差为1的高斯随机变量; (2) 产生数学期望为2,方差为5的高斯随机变量;
(3) 利用计算机求上述随机变量的100个样本的数学期望和方差,并与理论 值比较;
解:(1) randn (3,4)
ans =
0.9572 0.1419 0.7922 0.0357 0.4854 0.4218 0.9595 0.8491 0.8003 0.9157 0.6557 0.9340 (2) normrnd(2,5A0.5,3,4) ans =
0.4658 3.8036
6.5414 3.8154
6.0902 2.3977 -1.4405 -2.8379 1.3752 1.9891 -1.3931 3.8373
(3) 若 x=randn(1,100) y=mea n(x)
z=var(x,1) 经matlab 运行后得到:
-0.0102 z =
Y=ra nd(80,2);hist(Y,8)
计算积分 (1) int(s) (2) int(s,v) (3) int(s,a,b) (4) int(s,v,a,b) 运行结果如
下: >> syms x;i
nt(x) ans =
1.0122 计算结果中均值与方差均为随机变量,经多次运算,均值与方差均变化较大,但他们的值均可近似认为是0和1。
若x= normrnd(2,5A0.5,100,1)
y=mean(x)
z=var(x)
经matlab 运行后得到:
y =
2.0457 z =
5.1945
计算结果中均值与方差均为随机变量,经多次运算,均值与方差均变化较大,但他们的值均可以近似认为是 2 和5。
3、产生分布的随机变量
( 1) 产生自由度为2,数学期望为2,方差为4 的具有中心分布的随机变量; ( 2) 产生自由度为2,数学期望为4,方差为12 的具有非中心分布的随机变量;
( 3) 利用计算机求上述随机变量的100 个样本的数学期望和方差,并与理论值比较;解:( 1 ) 由于n=2,
所以x=randn(1,2)
y=x.A2
z=y(1)+y(2)
经matlab 运行后得到
x =
-0.5456 0.1972
y =
0.2977 0.0389 z =
0.3366
(2)由于n=2,令Q2=1 , m i=1,得到?=2,则m y=4, d y=12。
x=normrnd(1,1,1,2)
y=x.A2 z=y(1)+y(2)
经matlab 运行输出后得到:
x =
1.3761 1.7455
y =
1.8938 3.0469
z =
4.9407
(3)若for i=1:100 x=randn(1,2)
y=x.A2
z(i)=y(1)+y (2)
end
a=mean(z) b=var(z)
经matlab 运行输出后得到:
a =
1.9943
b=
3.9654 计算结果中均值与方差均为随机变量,经多次运算,均值与方差均变化较大,但他们的值均可以近似认为是 2 和4。
若for i=1:100
x=normrnd(1,1,1,2)
y=x.A2
z(i)=y(1)+y (2)
end a=mean(z) b=var(z)
经matlab 运行输出后得到:
a =
4.2003
b =
10.7584 计算结果中均值与方差均为随机变量,经多次运算,均值与方差均变化较大,但他们值均可以近似认为是4和12。
4、利用Matlab 现有pdf 和cdf 函数,画出均值为零、方差为4 的高
斯随机变量的概率密度曲线和概率分布曲线。
解:x=-10:0.1:10; y=normpdf(x, 0, 2); plot(x, y);
title( ‘均值为0,方差为4 的高斯随机变量的概率密度曲线' )
0.2
0.18
0.16
0.14
0.12
0.1
0.08
0.06
0.04
0.02
-10 -8 -6 -4 -2 0 2 4 6 8 10
均值为0 ,方差为4的高斯随机变量的概率密度曲线-6 -4 -2 0 2 4 6 均值为0 ,方差为4的高斯随机变量的概率分布曲线
x=-6:0.1:6;
y=no rmcdf(x, 0, 2);
plot(x, y);
title ('均值为0,方差为4的高斯随机变量的概率分布曲线’) 1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
5、产生长度为1000数学期望为5,方差为10的高斯随机序列,并根据该序列值画出其概率密度曲线。(不使用pdf函数)
解:clc
clear
R=normrnd(5,sqrt(10),1000,1);
[Y s]=ksde nsity(R);
plot(s,Y)
经matlab 运行输出后得到:
由图可知高斯分布且均值在 5处。
6、利用Matlab 求随机变量的统计特性
L24己知二堆fifi 机变的联合槪率密度为
[Aexpt^~ (2x -h y)] 工 2W 二 <
lo 其他
利用MATLAB 的符号运算功能(l)f$定系数八I (2)P(X>2.y>l}t (3)边蝶分布 心2)和 解:仿照例1,编写如下程序: syms A x y; f=A*exp(-(2*x+y));
C=i nt(i nt(f,x,0,i nf),y,0,i nf); % P=i nt(i nt(f,x,2,i nf),y,1,i nf); % fx=i nt(f,y,0,i nf); % fy=i nt(f,x,0,i nf); % 经matlab 运行后,结果如下:
(1) C =
1/2*A ,由于 C=1,故 A=2。
(2) P =
1/2*A*exp(-4)*exp(-1)=exp(-5)
(3) fx =
A*exp(-2*x)=2*exp(-2*x) 。
(4) fy =
1/2*A*exp(-y)=exp(-y) 。
求Y=X2的数学期望和方差。
解:仿照例题,编写 matlab 语句如下:
syms x ;
fx=0.5*exp(-x);
f0=x A 2*fx;
E=2*int(f0,x,0,inf);% 计算均值。
0.14
求待定系数 A 求概率密度P 求边缘分布fx 求边缘分布fy 0.12
0.1
0.08
0.06
0.04
0.02
经matlab 运行后,输出结果:
E =
2
再输入:
f1=xA4*fx;
EY2=2*int(f1,x,0,inf);
DY=EY2-EA2;% 计算方差
经matlab 运行后,输出结果:
DY =
20