白噪声测试
一、 实验目的
⑴ 了解白噪声信号的特性,包括均值(数学期望)、均方值、方差、相关函数、概率密度、频谱及功率谱密度等。
⑵ 掌握白噪声信号的分析方法。
二、 实验原理
所谓白噪声是指它的概率统计特性服从某种分布而它的功率谱密度又是均匀的。确切的说,白噪声只是一种理想化的模型,因为实际的噪声功率谱密度不可能具有无限宽的带宽,否则它的平均功率将是无限大,是物理上不可实现的。然而白噪声在数学处理上比较方便,所以它在通信及电子工程系统的分析中有十分重要的作用。一般地说,只要噪声的功率谱密度的宽度远大于它所作用的系统的带宽,并且在系统的带,它的功率谱密度基本上是常数,就可以作为白噪声处理了。白噪声的功率谱密度为:
2)(0
N f S n =
其中0N 为单边功率谱密度。 白噪声的自相关函数为:
)(2
τδτN R =
)( 白噪声的自相关函数是位于τ=0处、强度为
2
N 的冲击函数。这表明白噪声在任何两个不同的瞬间的取值是不相关的。同时也意味着白噪声能随时间无限快的变化,因为它的带宽是无限宽的。下面我们给出几种分布的白噪声。
随机过程的几种分布 前人已证明,要产生一个服从某种分布的随机数,可以先求出其分布函数的反函数的解析式,再将一个在[0,1]区间的均匀分布的随机数的值代入其中,就可以计算出服从某种分布的随机数。下面我们就求解这些随机数。
[0,1]区间均匀分布随机信号的产生: 采用混合同余法产生[0,1]区间的均匀分布随机数。混合同余法产生随机数的递推公式为:
c ay y n n +=+1 n=0,1,2……
M
y x n
n =
n=1,2,3…… 由上式的出如下实用算法:
][1M c
ax M c ax x n n n +-+=+
M
y x 0
0= 其中:
k M 2=,其中k 为计算几种数字尾部的字长 14+=t a ,t 为任意选定的正整数 0y ,为任意非负整数
c ,为奇数
Matlab 语言中的rand ()函数是服从[0,1]均匀分布的,所以在以后的实验中如果用到均匀分布的随机数,我们统一使用rand()函数。
正态分布(高斯分布)随机信号的产生: 高斯分布的密度函数为:
)2exp(21
)(2
x x f -=π
采用变换法产生正态分布随机数,若1R 、2R 示[0,1]均匀分布随机数,则有正态分布随机数:
212cos ln 2R R πξ-= 212sin ln 2R R πη-= 指数分布随机信号的产生:
指数分布的密度函数为:
x e x f αα-=*)( 当x>0时,当x ≤0时 f(x)=0,其中α>0
它的反函数(指数分布随机数)为:
)1ln(1
)(1r r F x --==-α
其中r 为[0,1]区间均匀分布的随机数。
三、 实验容与结果
1.产生五种概率分布的信号
Matlab 程序:
%生成各种分布的随机数
x1=unifrnd(-1,1,1,1024);%生成长度为1024的均匀分布
x2=normrnd(0,1,1,1024);%生成长度为1024的正态分布
x3=exprnd(1,1,1024);%生成长度为1024的指数分布均值为零
x4=raylrnd(1,1,1024);%生成长度为1024的瑞利分布
x5=chi2rnd(1,1,1024);%生成长度为1024的卡方分布
%时域特性曲线:
figure;
subplot(3,2,1),plot(1:1024,x1);grid on;title('均匀分布');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -2 2 ]); subplot(3,2,2),plot(1:1024,x2);grid on;title('正态分布');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -2 2 ]); subplot(3,2,3),plot(1:1024,x3);grid on;title('指数分布');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -1 5 ]); subplot(3,2,4),plot(1:1024,x4);grid on;title('瑞利分布');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -1 4 ]); subplot(3,2,5),plot(1:1024,x5);grid on;title('卡方分布');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -1 5 ]);
2.均值:
均值E[x(t)]表示集合平均值或数学期望值。基于随机过程的各态历经性,可用时间间隔t的幅值平均值表示:
均值表达了信号变化的中心趋势,或称之为直流分量。
在MATLAB中,可以用mean()函数来计算。
%求各种分布的均值
figure;
m1=mean(x1);m2=mean(x2);m3=mean(x3);m4=mean(x4);m5=mean(x5);
subplot(3,2,1),plot(1:1024,m1);title('均匀分布均值');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -2 2]); subplot(3,2,2),plot(1:1024,m2);title('高斯分布均值');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -2 2]); subplot(3,2,3),plot(1:1024,m3);title('指数分布均值');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -2 2]); subplot(3,2,4),plot(1:1024,m4);title('瑞利分布均值');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -2 2]); subplot(3,2,5),plot(1:1024,m5);title('卡方分布均值');xlabel('时间(t)');ylabel('幅度');axis([0 1024 -2 2]);
3.方差:
随机过程的方差函数描述了随机过程所有样本函数在t时刻的函数值相对于其数学期望的偏离程度。
定义:
其中σ(t)是随机过程的标准差。当随即过程表征的是接收机输出端的噪声电压时,σ2(t)表示小号在单位电阻上的瞬时交流功率统计平均值,而σ(t)表示噪声电压相对于电压统计平均值的交流分量。
在MATLAB中,可以用std()函数计算出标准差σ(t),再平方就可以得到方差。
%求各种分布的方差
figure;
v1=var(x1);v2=var(x2);v3=var(x3);v4=var(x4);v5=var(x5);
subplot(3,2,1),plot(1:1024,v1);grid on;title('均匀分布方差');xlabel('时间(t)');ylabel('幅度'); subplot(3,2,2),plot(1:1024,v2);grid on;title('高斯分布方差');xlabel('时间(t)');ylabel('幅度'); subplot(3,2,3),plot(1:1024,v3);grid on;title('指数分布方差');xlabel('时间(t)');ylabel('幅度'); subplot(3,2,4),plot(1:1024,v4);grid on;title('瑞利分布方差');xlabel('时间(t)');ylabel('幅度'); subplot(3,2,5),plot(1:1024,v5);grid on;title('卡方分布方差');xlabel('时间(t)');ylabel('幅度');
4.自相关:
信号的相关性是指客观事物变化量之间的相依关系。对于平稳随机过程x(t)和y(t)在两个不同时刻t和t+τ的起伏值的关联程度,可以用相关函数表示。在离散情况下,信号x(n)和y(n)的相关函数定义为:
随机信号的自相关函数表示波形自身不同时刻的相似程度。与波形分析、频谱分析相比,它具有能够在强噪声干扰情况下准确地识别信号周期的特点。
%求各种分布的自相关函数
figure;
title('自相关函数图');
[x_c1,lags]=xcorr(x1,200,'unbiased');[x_c2,lags]=xcorr(x2,200,'unbiased');[x_c3,lags]=xcorr(x3,200,'unbiased'); [x_c4,lags]=xcorr(x4,200,'unbiased');[x_c5,lags]=xcorr(x5,200,'unbiased');
subplot(3,2,1),plot(lags,x_c1);grid on;title('均匀分布自相关');
subplot(3,2,2),plot(lags,x_c2);grid on;title('正态分布自相关');
subplot(3,2,3),plot(lags,x_c3);grid on;title('指数分布自相关');
subplot(3,2,4),plot(lags,x_c4);grid on;title('瑞利分布自相关');
subplot(3,2,5),plot(lags,x_c5);grid on;title('卡方分布自相关');
5.概率密度函数:
一维分布函数为:
若F x (x 1;t 1)对x 1的一阶偏导存在,则一维概率密度为:
在MATLAB 中,可以用ksdensity()函数来计算一维概率密度。
%求各种分布的概率密度函数
y1=unifpdf(x1,-1,1);
y2=normpdf(x2,0,1);
y3=exppdf(x3,1);
y4=raylpdf(x4,1);
y5=chi2pdf(x5,1);
%各种分布的概率密度估计
figure;
[k1,n1]=ksdensity(x1); [k2,n2]=ksdensity(x2);[k3,n3]=ksdensity(x3);[k4,n4]=ksdensity(x4);[k5,n5]=ksdensity(x5); subplot(3,2,1),plot(n1,k1);grid on;title('均匀分布概率密度');xlabel('时间');ylabel('幅度')
subplot(3,2,2),plot(n2,k2);grid on;title('正态分布概率密度');xlabel('时间');ylabel('幅度')
subplot(3,2,3),plot(n3,k3);grid on;title('指数分布概率密度');xlabel('时间');ylabel('幅度')
subplot(3,2,4),plot(n4,k4);grid on;title('瑞利分布概率密度');xlabel('时间');ylabel('幅度')
subplot(3,2,5),plot(n5,k5);grid on;title('卡方分布概率密度');xlabel('时间');ylabel('幅度')
6.频谱:
信号频谱分析是采用傅立叶变换将时域信号x(t)变换为频域信号x(f),从另一个角度来了解信号的特征。时域信号x(t)的傅氏变换为:
在MATLAB中,对信号进行快速傅立叶变换fft()就可以得到频谱函数。
%幅频特性曲线
x1=unifrnd(-1,1,1,1024);%生成长度为1024的均匀分布
x2=normrnd(0,1,1,1024);%生成长度为1024的正态分布
x3=exprnd(1,1,1024);%生成长度为1024的指数分布均值为零
x4=raylrnd(1,1,1024);%生成长度为1024的瑞利分布
x5=chi2rnd(1,1,1024);%生成长度为1024的卡方分布
f1=fft(x1,1024);
f2=fft(x2,1024);
f3=fft(x3,1024);
f4=fft(x4,1024);
f5=fft(x5,1024);
figure;
subplot(3,2,1),plot(abs(f1)),axis([0 1023 0 50]);grid on;title('均匀分布幅频特性');Xlabel('频率Hz'); Ylabel('幅值V') subplot(3,2,2),plot(abs(f2));axis([0 1023 0 50]);grid on;title('正态分布');Xlabel('频率Hz'); Ylabel('幅值V')
subplot(3,2,3),plot(abs(f3)),axis([0 1023 0 100]);grid on;title('指数分布');Xlabel('频率Hz'); Ylabel('幅值V')
subplot(3,2,4),plot(abs(f4)),axis([0 1023 0 50]);grid on;title('瑞利分布');Xlabel('频率Hz'); Ylabel('幅值V')
subplot(3,2,5),plot(abs(f5)),axis([0 1023 0 100]);grid on;title('卡方分布');Xlabel('频率Hz'); Ylabel('幅值V')
7.功率谱密度:
随机信号的功率谱密度是随机信号的各个样本在单位频带的频谱分量消耗在一欧姆电阻上的平均功率的统计均值,是从频域描述随机信号的平均统计参量,表示x(t)的平均功率在频域上的分布。它只反映随机信号的振幅信息,而没有反映相位信息。
在MATLAB中,可由下式得到功率谱密度:
错误!未找到引用源。lim
∞
→
T
错误!未找到引用源。
%功率谱密度
figure;
f1=fft(x1,1024);
f2=fft(x2,1024);
f3=fft(x3,1024);
f4=fft(x4,1024);
f5=fft(x5,1024);
p1=mean(f1.*conj(f1))/1024; p2=mean(f2.*conj(f2))/1024; p3=mean(f3.*conj(f3))/1024;
p4=mean(f4.*conj(f4))/1024; p5=mean(f5.*conj(f5))/1024;
subplot(3,2,1),plot(1:1024,abs(p1));grid on;title('均匀分布功率谱密度');xlabel('频率Hz'); ylabel('幅值'); subplot(3,2,2),plot(1:1024,abs(p2));grid on;title('正态分布功率谱密度');xlabel('频率Hz'); ylabel('幅值'); subplot(3,2,3),plot(1:1024,abs(p3));grid on;title('指数分布功率谱密度');xlabel('频率Hz'); ylabel('幅值');
subplot(3,2,4),plot(1:1024,abs(p4));grid on;title('瑞利分布功率谱密度');xlabel('频率Hz'); ylabel('幅值'); subplot(3,2,5),plot(1:1024,abs(p5));grid on;title('卡方分布功率谱密度');xlabel('频率Hz'); ylabel('幅值');
8.取10240个点时的功率谱密度
%功率谱密度
x1=unifrnd(-1,1,1,10240);%生成长度为10240的均匀分布
x2=normrnd(0,1,1,10240);%生成长度为10240的正态分布
x3=exprnd(1,1,10240);%生成长度为10240的指数分布均值为零
x4=raylrnd(1,1,10240);%生成长度为10240的瑞利分布
x5=chi2rnd(1,1,10240);%生成长度为10240的卡方分布
figure;
f1=fft(x1,10240);
f2=fft(x2,10240);
f3=fft(x3,10240);
f4=fft(x4,10240);
f5=fft(x5,10240);
p1=mean(f1.*conj(f1))/10240; p2=mean(f2.*conj(f2))/10240; p3=mean(f3.*conj(f3))/10240;
p4=mean(f4.*conj(f4))/10240; p5=mean(f5.*conj(f5))/10240;
subplot(3,2,1),plot(1:10240,abs(p1));grid on;title('N=10240均匀分布功率谱密度');xlabel('频率Hz'); ylabel('幅值');
subplot(3,2,2),plot(1:10240,abs(p2));grid on;title('N=10240正态分布功率谱密度');xlabel('频率Hz'); ylabel('幅值'); subplot(3,2,3),plot(1:10240,abs(p3));grid on;title('N=10240指数分布功率谱密度');xlabel('频率Hz'); ylabel('幅值'); subplot(3,2,4),plot(1:10240,abs(p4));grid on;title('N=10240瑞利分布功率谱密度');xlabel('频率Hz'); ylabel('幅值'); subplot(3,2,5),plot(1:10240,abs(p5));grid on;title('N=10240卡方分布功率谱密度');xlabel('频率Hz'); ylabel('幅值');
9.随机信号叠加及高斯检验:
%判断是否是高斯分布
s=zeros(1,1024);
for i=0:4
z=unifrnd(0,1,1,1024);
s=s+z;
end
s1=zeros(1,1024);
for j=0:4
z1=exprnd(3,1,1024);
s1=s1+z1;
end
figure;
[j1,l1]=ksdensity(s);
[j2,l2]=ksdensity(s1);
subplot(2,2,1),hist(s);grid on;title('均匀分布叠加'); subplot(2,2,2),plot(l1,j1);grid on;title('均匀分布叠加'); subplot(2,2,3),hist(s1);grid on;title('指数分布叠加'); subplot(2,2,4),plot(l2,j2);grid on;title('指数分布叠加'); figure;
subplot(1,2,1),normplot(s);title('均匀分布正态检验'); subplot(1,2,2),normplot(s1);title('指数分布正态检验'); %参数估计
[muhat,sigmahat,muci,sigmaci]=normfit(s);
[muhat1,sigmahat1,muci1,sigmaci1]=normfit(s1);
%假设检验
[h,sig,ci]=ttest(s,muhat);
[h1,sig1,ci1]=ttest(s1,muhat1);