《随机信号分析》
实验一
班 级 学 号 姓 名
实验一 实验内容: 1 . 熟悉并练习使用下列Matlab的函数,给出各个函数的功能说明和内部参数的意义,并给出至少一个使用例子和运行结果: (1)randn() 产生随机数数组或矩阵,其元素服从均值为0,方差为1的正态分布 例:以(2)为例 Y = randn(4) (1)Y = randn 产生一个伪随机数 (2)Y = randn(n) 产生n×n的矩阵,其元素服从均值为0,方差为1的正态分布 (3)Y = randn(m,n) 产生m×n的矩阵,其元素服从均值为0,方差为1的正态分布 (4)Y= randn([m n]) 产生m×n的矩阵,其元结果为: Y = -0.1941 -1.0722 -1.9609 0.8252 -2.1384 0.9610 -0.1977 1.3790 -0.8396 0.1240 -1.2078 -1.0582 1.3546 1.4367 2.9080 -0.4686 素服从均值为0,方差为1的正态分布 (2)rand() (1)Y = rand(n) 生成n×n 随机矩阵,其元素在(0,1)内 (2)Y = rand(m,n) 生成m×n 随机矩阵 (3)Y = rand([m n]) 生成m×n 随机矩阵 (4)Y = rand(m,n,p,…) 生成m×n×p×…随机矩阵或数组 (5)Y = rand([m n p…]) 生成m×n×p×…随机矩阵或 数组 (6)Y = rand(size(A)) 生成与矩阵A 相同大小的随机矩阵 例:以(2)为例 Y = rand(3,4) 结果为: Y = 0.5797 0.8530 0.5132 0.2399 0.5499 0.6221 0.4018 0.1233 0.1450 0.3510 0.0760 0.1839 (3)normrnd() 产生服从正态分布的随机数 例:以(2)为例 Y = normrnd(1,1,3) (1)Y = normrnd(mu,sigma) 产生服从均值为mu,标准差为sigma的随机数,mu和sigma可以为向量、矩阵、或数组。 (2)Y = normrnd(mu,sigma,v) 产生服从均值为mu 标准差为sigma的随机数,v是一个行向量。如果v是一个1×2的向量,则R为一个1行2列的矩阵。如果v是1×n的,那么R是一个n维数组 (3)Y = normrnd(mu,sigma,m,n) 产生服从均值为mu 标准差为sigma的随机结果为: Y = -0.3617 0.6651 -0.1176 1.4550 1.5528 2.2607 0.1513 2.0391 1.6601 数,标量m和n是R的行数和列数。 (4)mean() (1)Y = mean(A) 如果A是一个向量,则返回A的均值。如果A是一个矩阵,则把A的每一列看成一个矩阵,返回一个均 值(每一列的均值)行矩阵 例:以(2)为例 A = [1 2 3; 3 3 6; 4 6 8; 4 7 7] Y = mean(A,2) 结果为: A = 1 2 3 3 3 6 4 6 8 4 7 7 Y = 2 4 6 (2)Y = mean(A,dim) 返回由标量dim标定的那个维度的平均值。如(A,2)是一个列向量,包含着A中每一行的均值。 (5) var() 求方差 例:以(2)为例 A = [1 2 3; 3 3 6; 4 6 8; 4 7 7]; V = var(A,1) (1)V = var(X) 返回X的每一列的方差,即返回一个行向量。 (2)V = var(X,w) 计算方差时加上权重w 结果为: V = 1.5000 4.2500 3.5000 (6)xcorr() 计算互相关 例:以(2)为例 A = [1 2 3; 3 3 6] X = xcorr(A) (1)A=xcorr(x,y) 计算x,y的互相关 (2)A=xcorr(x) 计算x的自相关 结果为: A = 1 2 3 3 3 6 X = 3 3 6 6 6 12 9 9 18 10 11 21 11 13 24 21 24 45 3 6 9 3 6 9 6 12 18 (7)periodogram() 计算功率谱密度 Y=periodogram(x) 计算x的功率谱密度 例: X=[-20:6:20]; Y=periodogram(X); plot(Y,'B') 结果为: (8) fft() 离散傅里叶变换 例:以(2)为例 X=0:0.5:4; Y=fft(X,3) (1)Y =fft(X) 返回向量X用快速傅里叶算法得到的离散傅里叶变换,如果X是一个矩阵,则返回矩阵每一列的傅里叶变换 结果为: Y = 1.5000 + 0.0000i -0.7500 + 0.4330i -0.7500 - 0.4330i (2)Y = fft(X,n) 返回n点的离散傅里叶变换, 如果X的长度小于n,X的末尾填零。如果X的长度大于n,则X被截断。当X是一个矩阵时,列的长度也服从同样的操作。 (9)normpdf() 例: x=-5:0.1:5; y=normpdf(x,1,2); 求正态分布概率密度函数值 Y = normpdf(X,mu,sigma) 对每一个X中的值返回plot(x,y) 参数为mu,sigma的正结果为: 态分布概率密度函数值 (10)normcdf() 求正态分布概率分布函数值 例: X=[2,2,4;2,4,5]; P = normcdf(X,0,1) 结果为: P = normcdf(X,mu,sigma) 对每一个X中的值返P = 回参数为mu,sigma 0.9772 0.9772 1.0000 的累计分布函数值 0.9772 1.0000 1.0000 例: x = 1:0.1:3; (11)unifpdf() y = unifpdf(x,1,2) 求连续均匀分布的概率密度函数值 Y = unifpdf(X,A,B) 对每一个X中的值返回参数为A,B的均匀分布函数值 结果为: y = 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 (12) unifcdf() 例: Y=unifcdf(0.2,-1,1) 求连续均匀分布的概率分布函数值 结果为: P = unifcdf(X,A,B) 对每一个X中的值返回参Y = 0.6000 数为A,B的均匀分布累计分布函数值 例: (13)raylpdf() x = 0:0.2:4; 求瑞利概率密度分布函数值 p = raylpdf(x,1); Y = raylpdf(X,B) 对每一个X中的值返回参数为B的瑞plot(x,p) 利概率分布函数值 结果为: (14)raylcdf() 例: x = 0:0.1:4; p = raylcdf(x,1); 求瑞利分布的概率分布函数值 P = raylcdf(X,B) 对每一个X中的值返回参数plot(x,p) 为B的瑞利分布的累计分布结果为: 函数值 (15)exppdf() 求指数分布的概率密度函数值 Y = exppdf(X,mu) 对每一个X中的值返回参数为mu的瑞利分布的概率密度函数值 例: X=[2,1;3,5]; Y = exppdf(X,1) 结果为: Y = 0.1353 0.3679 0.0498 0.0067 (16)expcdf() 例: X = 0:0.1:5; P = expcdf(x,2); 求指数分布的概率分布函数值 P = expcdf(X,mu) 对每一个X中的值返回参数plot(P) 为mu的瑞利分布的概率分布函数值 结果为: 以(2)作为例 (17)chol() n = 3; X = pascal(n); 对称正定矩阵的Cholesky分解 (1)R=chol(X) 产生一个上三角阵R,使R'R=X。R = chol(X) 若X为非对称正定,则输出一个出错信息 结果为: (2)[R,p]=chol(X) 不输出出错信息。当X为R = 1 1 1 0 1 2 0 0 1 对称正定的,则p=0,R与上述格式得到的结果相同;否则p为一个正整数。如果X为满秩矩阵,则R为一个阶数为q=p-1的上三角阵,且满足R'R=X(1:q,1:q)。 (18)ksdensity() 以(1)作为例 R = normrnd(2,1); [f,xi] = ksdensity(R); 计算概率密度估计 (1)[f,xi] = ksdensity(x) 计算向量x样本的plot(xi,f) 一个概率密度估计,返回向量f是结果为:在xi各个点估计出的密度值 (2)f = ksdensity(x,xi) 计算在确定点xi处的估计值 (19)hist() 例: Y=rand(50,3); hist(Y,4) 画直方图 (1)n = hist(Y) 将向量Y中的元素分成10结果为: 个等长的区间,再返回每区间中元素个数,是个行向量 (2)n = hist(Y,x) 画以x元素为中心的柱状图 (3)n = hist(Y,nbins) 画以nbins为宽度的柱状图 (20)int() 计算积分 (1)int(s) 对符号表达式s中确定的符号变量计算计算不定积分 (2)int(s,v) 对符号表达式s中指定的符号变量v计算不定积分. (3)int(s,a,b) 符号表达式s的定积分,a,b分别为积分的上、下限 例: syms x; int(x) 结果为: ans = x^2/2 (4)int(s,v,a,b) 符号表达式s关于变量v的定积分,a,b为积分的上下限 2、产生高斯随机变量 (1)产生数学期望为0,方差为1的高斯随机变量; (2)产生数学期望为2,方差为5的高斯随机变量; (3)利用计算机求上述随机变量的100个样本的数学期望和方差,并与理论值比较; (1)程序 y=normrnd(0,1,100,1); muy=mean(y); sigmay=var(y); 结果 sigmay = 1.0101 3、 (2)程序 y=normrnd(2,sqrt(5),100,1); muy=mean(y); sigmay=var(y); 结果 sigmay = 5.1403 (1)产生自由度为2,数学期望为2,方差为4的具有中心2分布的随机变量; (2)产生自由度为2,数学期望为4,方差为12的具有非中心2分布的随机变量; (3)利用计算机求上述随机变量的100个样本的数学期望和方差,并与理论值比较; (1) (2) 程序: 程序: y=chi2rnd(2,100,1); y=ncx2rnd(2,2,100,1); muy=mean(y); mux=mean(x); sigmay=var(y) sigmax=var(y) 结果 结果 sigmay = sigmax = 3.1337 15.2972 4、利用Matlab现有pdf和cdf函数,画出均值为零、方差为4的高斯随机变量的概率密度曲线和概率分布曲线 实验程序: x=-10:0.01:10; 实验结果: y1=normpdf(x,0,2); y2=normcdf(x,0,2); figure(1); plot(x,y1); xlabel('x'); ylabel('f(x)'); title('概率密度函数'); figure(2); plot(x,y2); xlabel('x'); ylabel('F(x)'); title('概率分布函数'); 5、产生长度为1000数学期望为5,方差为10的高斯随机序列,并根据该序列值画出其概率密度曲线。(不使用pdf函数) 实验程序: x=normrnd(5,sqrt(10),1000,1); [f,xi]=ksdensity(x); plot(xi,f); xlabel('x'); ylabel('f(x)'); title('概率密度函数'); 实验结果: 6、参照例题,求: 实验程序: syms x y A; f=A*exp(-(2*x+y)); C=int(int(f,x,0,inf),y,0,inf) P=int(int(f,x,2,inf),y,1,inf) fx=int(f,y,0,inf) fy=int(f,x,0,inf) 实验结果: C = A/2 P = (A*exp(-5))/2 fx = A*exp(-2*x) fy = (A*exp(-y))/2 7、设随机变量X的概率密度为 求:Y的数学期望和方差。 实验程序: syms x; fx=0.5*exp(-x); f=x^2*fx; E=2*int(f,x,0,inf) f=x^4*fx; EY2=2*int(f,x,0,inf); D[Y]=EY2-E^2 实验结果: E = 2 D[Y] = 20