一、常用的随机信号分析函数(Matlab)

1.独立同分布白噪声序列的产生

(1) (0,1)均匀分布的白噪声序列 rand()

用法:x=rand(m,n)
功能:产生 m×n 的均匀分布随机数矩阵,例如,x=rand(100,1),产生一个 100 个样本的
均匀分布白噪声列矢量。

  1. b=rand(5,2)

image.png% 产生5*2 的均匀分布随机数矩阵

(2) 正态分布白噪声序列 randn()

用法:x=randn(m,n)
功能:产生 m×n 的标准正态分布随机数矩阵,例如,x=randn(100,1),产生一个 100 个
样本的正态分布白噪声列矢量。
如果要产生服从 N(µ,σ2)分布的随机矢量,则可以通过标准正态随机矢量来产生,
MATLAB 的语句为: x=µ+σ.*randn(100,1)。

a=randn(5,2)

image.png% 产生5*2 的标准正态分布随机数矩阵

2.随机序列数字特征的估计

对于各态历经过程,我们可以通过对随机序列的一条样本函数来获得该过程的统计特性,利用 MATLAB 的统计分析函数我们可以分析随机序列的统计特性。在以下的介绍中,我们假定随机序列 X(n)和 Y(n)是各态历经过程,他们的样本分别为 x(n)和 y(n),其中 n=0,1,2,…N-1。

(1)均值函数 mean()

%用法
m=mean(x)

image.png

(2) 方差函数 var()

%用法
sigma2=var(x)

image.png(3)互相关函数估计 xcorr

c = xcorr(x,y)
c = xcorr(x)
c = xcorr(x,y,'option')
c = xcorr(x,'option')

image.png

(4)功率谱估计Periodogram()

%功率谱密度估计方法很多,这里暂只介绍 Periodogram()函数。用法:
pxx = periodogram(x)
pxx = periodogram(x,window)
pxx = periodogram(x,window,nfft)
pxx = periodogram(x,window,nfft,fs)
periodogram(x,window,nfft,fs)

image.png

(5)概率密度估计ksdensity(),hist()

% ksdensity()函数直接估计随机序列概率密度的估计。用法:
[f,xi] = ksdensity(x)
f = ksdensity(x,xi)

image.png

hist(x) 
hist(x,nbins) %将 x 有序划分入标量 nbins 所指定数量的 bin 中。
hist(x,xbins) %使用由向量 xbins 确定的间隔或类别将 x 有序划分入 bin 中。

image.png

3.函数

(1)normrnd()(产生正态分布随机数)

(2)pwelch()(求功率谱)

(3)fft()(快速傅里叶变换)

(4)normpdf()(正态概率密度函数)

(5)normcdf()(正态分布函数值)

(6)unifpdf()(均匀分布)

(7)unifcdf()

(8)raylpdf()(瑞利分布)

(9)raylcdf()

(10)exppdf() (指数分布)

(11)expcdf()

(12)chol()(Cholesky分解)

4.补充函数

函数名 调用形式 注 释
Unifrnd unifrnd ( A,B,m,n) [A,B]上均匀分布(连续) 随机数
Unidrnd unidrnd(N,m,n) 均匀分布(离散)随机数
Exprnd exprnd(Lambda,m,n) 参数为Lambda的指数分布随机数
Normrnd normrnd(MU,SIGMA,m,n) 参数为MU,SIGMA的正态分布随机数
chi2rnd chi2rnd(N,m,n) 自由度为N的卡方分布随机数
Trnd trnd(N,m,n) 自由度为N的t分布随机数
Frnd frnd(N1, N2,m,n) 第一自由度为N1,第二自由度为N2的F分布随机数
gamrnd gamrnd(A, B,m,n) 参数为A, B的分布随机数
betarnd betarnd(A, B,m,n) 参数为A, B的分布随机数
lognrnd lognrnd(MU, SIGMA,m,n) 参数为MU, SIGMA的对数正态分布随机数
nbinrnd nbinrnd(R, P,m,n) 参数为R,P的负二项式分布随机数
ncfrnd ncfrnd(N1, N2, delta,m,n) 参数为N1,N2,delta的非中心F分布随机数
nctrnd nctrnd(N, delta,m,n) 参数为N,delta的非中心t分布随机数
ncx2rnd ncx2rnd(N, delta,m,n) 参数为N,delta的非中心卡方分布随机数
raylrnd raylrnd(B,m,n) 参数为B的瑞利分布随机数
weibrnd weibrnd(A, B,m,n) 参数为A, B的韦伯分布随机数
binornd binornd(N,P,m,n) 参数为N, p的二项分布随机数
geornd geornd(P,m,n) 参数为 p的几何分布随机数
hygernd hygernd(M,K,N,m,n) 参数为 M,K,N的超几何分布随机数
Poissrnd poissrnd(Lambda,m,n) 参数为Lambda的泊松分布随机数
函数名 调用形式 注 释
Unifpdf unifpdf (x, a, b) [a,b]上均匀分布(连续)概率密度在X=x处的函数值
unidpdf Unidpdf(x,n) 均匀分布(离散)概率密度函数值
Exppdf exppdf(x, Lambda) 参数为Lambda的指数分布概率密度函数值
normpdf normpdf(x, mu, sigma) 参数为mu,sigma的正态分布概率密度函数值
chi2pdf chi2pdf(x, n) 自由度为n的卡方分布概率密度函数值
Tpdf tpdf(x, n) 自由度为n的t分布概率密度函数值
Fpdf fpdf(x, n1, n2) 第一自由度为n1,第二自由度为n2的F分布概率密度函数值
gampdf gampdf(x, a, b) 参数为a, b的分布概率密度函数值
betapdf betapdf(x, a, b) 参数为a, b的分布概率密度函数值
lognpdf lognpdf(x, mu, sigma) 参数为mu, sigma的对数正态分布概率密度函数值
nbinpdf nbinpdf(x, R, P) 参数为R,P的负二项式分布概率密度函数值
Ncfpdf ncfpdf(x, n1, n2, delta) 参数为n1,n2,delta的非中心F分布概率密度函数值
Nctpdf nctpdf(x, n, delta) 参数为n,delta的非中心t分布概率密度函数值
ncx2pdf ncx2pdf(x, n, delta) 参数为n,delta的非中心卡方分布概率密度函数值
raylpdf raylpdf(x, b) 参数为b的瑞利分布概率密度函数值
weibpdf weibpdf(x, a, b) 参数为a, b的韦伯分布概率密度函数值
binopdf binopdf(x,n,p) 参数为n, p的二项分布的概率密度函数值
geopdf geopdf(x,p) 参数为 p的几何分布的概率密度函数值
hygepdf hygepdf(x,M,K,N) 参数为 M,K,N的超几何分布的概率密度函数值
poisspdf poisspdf(x,Lambda) 参数为Lambda的泊松分布的概率密度函数值
函数名 调用形式 注 释
Unifpdf unifpdf (x, a, b) [a,b]上均匀分布(连续)概率密度在X=x处的函数值
unidpdf Unidpdf(x,n) 均匀分布(离散)概率密度函数值
Exppdf exppdf(x, Lambda) 参数为Lambda的指数分布概率密度函数值
normpdf normpdf(x, mu, sigma) 参数为mu,sigma的正态分布概率密度函数值
chi2pdf chi2pdf(x, n) 自由度为n的卡方分布概率密度函数值
Tpdf tpdf(x, n) 自由度为n的t分布概率密度函数值
Fpdf fpdf(x, n1, n2) 第一自由度为n1,第二自由度为n2的F分布概率密度函数值
gampdf gampdf(x, a, b) 参数为a, b的分布概率密度函数值
betapdf betapdf(x, a, b) 参数为a, b的分布概率密度函数值
lognpdf lognpdf(x, mu, sigma) 参数为mu, sigma的对数正态分布概率密度函数值
nbinpdf nbinpdf(x, R, P) 参数为R,P的负二项式分布概率密度函数值
Ncfpdf ncfpdf(x, n1, n2, delta) 参数为n1,n2,delta的非中心F分布概率密度函数值
Nctpdf nctpdf(x, n, delta) 参数为n,delta的非中心t分布概率密度函数值
ncx2pdf ncx2pdf(x, n, delta) 参数为n,delta的非中心卡方分布概率密度函数值
raylpdf raylpdf(x, b) 参数为b的瑞利分布概率密度函数值
weibpdf weibpdf(x, a, b) 参数为a, b的韦伯分布概率密度函数值
binopdf binopdf(x,n,p) 参数为n, p的二项分布的概率密度函数值
geopdf geopdf(x,p) 参数为 p的几何分布的概率密度函数值
hygepdf hygepdf(x,M,K,N) 参数为 M,K,N的超几何分布的概率密度函数值
poisspdf poisspdf(x,Lambda) 参数为Lambda的泊松分布的概率密度函数值
函数名 调用形式 注 释
Unifpdf unifpdf (x, a, b) [a,b]上均匀分布(连续)概率密度在X=x处的函数值
unidpdf Unidpdf(x,n) 均匀分布(离散)概率密度函数值
Exppdf exppdf(x, Lambda) 参数为Lambda的指数分布概率密度函数值
normpdf normpdf(x, mu, sigma) 参数为mu,sigma的正态分布概率密度函数值
chi2pdf chi2pdf(x, n) 自由度为n的卡方分布概率密度函数值
Tpdf tpdf(x, n) 自由度为n的t分布概率密度函数值
Fpdf fpdf(x, n1, n2) 第一自由度为n1,第二自由度为n2的F分布概率密度函数值
gampdf gampdf(x, a, b) 参数为a, b的分布概率密度函数值
betapdf betapdf(x, a, b) 参数为a, b的分布概率密度函数值
lognpdf lognpdf(x, mu, sigma) 参数为mu, sigma的对数正态分布概率密度函数值
nbinpdf nbinpdf(x, R, P) 参数为R,P的负二项式分布概率密度函数值
Ncfpdf ncfpdf(x, n1, n2, delta) 参数为n1,n2,delta的非中心F分布概率密度函数值
Nctpdf nctpdf(x, n, delta) 参数为n,delta的非中心t分布概率密度函数值
ncx2pdf ncx2pdf(x, n, delta) 参数为n,delta的非中心卡方分布概率密度函数值
raylpdf raylpdf(x, b) 参数为b的瑞利分布概率密度函数值
weibpdf weibpdf(x, a, b) 参数为a, b的韦伯分布概率密度函数值
binopdf binopdf(x,n,p) 参数为n, p的二项分布的概率密度函数值
geopdf geopdf(x,p) 参数为 p的几何分布的概率密度函数值
hygepdf hygepdf(x,M,K,N) 参数为 M,K,N的超几何分布的概率密度函数值
poisspdf poisspdf(x,Lambda) 参数为Lambda的泊松分布的概率密度函数值

二.实例

1.产生高斯随机变量

(1) 产生数学期望为0,方差为1的高斯随机变量的样本10000个,画出直方图;

 x=normrnd(0,1,1,10000);
 histogram(x,100);

(2) 产生数学期望为2,方差为5的高斯随机变量的样本10000个,画出直方图;

x=normrnd(2, 2.236,1,10000);
histogram(x,100);

(3)利用mean()和var()函数求上述随机变量的数学期望和方差,并与理论值比较。

x=normrnd(0,1,1,10000);
y=normrnd(2, 2.236,1,10000)
u1=mean(x)
o1=var(x)
u2=mean(y)
o2=var(y)

2.产生分布的随机变量

(1) 产生自由度为2,数学期望为2,方差为4的中心c 2分布随机变量的样本10000个,并画出直方图;

(2) 产生自由度为 2,数学期望为 4,方差为 12 的非中心c 2分布随机变量的样本10000 个,并画出直方图;

y=ncx2rnd(2,2,1,10000);     % 产生非中心卡方分布
hist(y,100)

(3) 利用mean()和var()函数求上述随机变量的数学期望和方差,并与理论值较;

x1=normrnd(0,1,1,10000);
x2=normrnd(0,1,1,10000);
x3=normrnd(1,1,1,10000);
x4=normrnd(1,1,1,10000);
y1 = x1.^2 + x2.^2;
y2 = x3.^2 + x4.^2;
histogram(y2,100);
u1=mean(y1)
o1=var(y1)
u2=mean(y2)
o2=var(y2)

3.利用Matlab 现有pdf 和cdf 函数,画出均值为零、方差为4 的高斯随机变量的概率密度

x=-5:0.1:5;
y = cdf('normal',x,0,2);
plot(x,y)
figure
x=-5:0.1:5;
y = pdf('normal',x,0,2);
plot(x,y)

4.产生长度为1000 数学期望为5,方差为10 的高斯随机序列,并根据该序列值画出其概率密度曲线。(不使用pdf 函数)

x=normrnd(5,10^0.5,1,100000);
histogram(x,100)

5.产生一组(0,1)均匀分布的白噪声序列,画出其自相关函数和功率谱密度。

x=rand(1,300);
r=xcorr(x);
figure
plot(y,r);
figure
periodogram(x);

6.产生一组服从N ~ (2,5)的正态白噪声序列,画出其自相关函数和功率谱密度。

x = normrnd(2,10,1000,1);
periodogram(x)
figure
r=xcorr(x);
plot(r)

7.产生一组服从N ~ (2,5)的正态白噪声序列,画出其自相关函数和功率谱密度。

x=normrnd(2,5^0.5,100,1);
periodogram(x)
figure
r=xcorr(x);
plot(r)
title("N(2,5)的正态白噪声序列的自相关函数")

image.png

N=1024;fs=1000;
t=(0:N-1)/fs;
xn=cos(2*pi*50*t)+cos(2*pi*100*t)+randn(1,N);
Sx=abs(fft(xn).^2)/N;
f=(0:N/2-1)*fs/N;
plot(f,10*log10(Sx(1:N/2)));
figure
r=xcorr(Sx);
plot(r)

image.png

Fs=1000;
T=1/Fs;
L=1000;
t=(0:L-1)*T;
xi=2*cos(1000*pi*t+2*pi*rand(1,1000))
figure(1)
plot(xi)
y=xcorr(xi,'coeff')
figure(2)
plot(y)
[z,f]=periodogram(xi)
figure(3)
plot(f,10*log(z))