第5章 噪声信号分布函数与MATLAB实现 信号处理涉及对噪声的处理,在图像处理、通信信道模拟以及滤波等内容中,都有大量噪声存在,因此需要对噪声信号进行分类和处理。本章所介绍的噪声信号包括均匀分布噪声、正态分布噪声、卡方分布噪声、F分布噪声、T分布噪声、指数分布噪声、伽马分布噪声、对数正态分布噪声、瑞利分布噪声、威布尔分布噪声、二项分布噪声、几何分布噪声和泊松分布噪声等典型噪声信号。 5.1均匀分布 在概率论和统计学中,均匀分布也叫矩形分布,表示为对称概率分布,相同长度间隔的分布概率是等可能的。均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b)。 使用rand(m,n)生成的是m*n阶均匀矩阵,其中,m代表行数,n代表列数,并且要求m和n均是正整数。当需要生成一个5*5的均匀分布的矩阵时,使用如下命令: rand(5,5) %生成一个5*5的均匀分布的矩阵 工作窗口的变量显示为ans,值为value,指令窗口的结果输出如下: >>rand(5,5) ans = 0.79520.70940.16260.58530.6991 0.18690.75470.11900.22380.8909 0.48980.27600.49840.75130.9593 0.44560.67970.95970.25510.5472 0.64630.65510.34040.50600.1386 可以使用rand(5)命令生成5*5的均匀分布的矩阵,此时的指令窗口结果输出如下: >> rand(5) ans = 0.14930.24350.61600.54970.3804 0.25750.92930.47330.91720.5678 0.84070.35000.35170.28580.0759 0.25430.19660.83080.75720.0540 0.81430.25110.58530.75370.5308 在rand(m,n)基础之上,需要产生一个U(0,2)的均匀分布,可以令端点a=0,b=2,指令如下: Ans = 0 + (2-0).*rand(6,6)%在区间(0,2)上产生6*6的随机数矩阵 结果显示如下: ans = 1.60010.27211.24410.24661.88960.2224 0.86281.73860.70190.36780.98171.5605 1.82131.15941.02650.47990.97850.7795 0.36371.09970.80360.83450.67540.4834 0.52760.28990.15190.09931.80010.8078 0.29111.70610.47981.80540.73850.1929 执行rand(500); hist(ans); 运行程序执行的随机数分布如图51所示。 图51随机数均匀分布 5.2正态分布 由于一般的正态总体图像不一定关于纵轴对称,对于任一正态总体,其取值小于x的概率,只要用它求正态总体在某个特定区间的概率即可。为了便于描述和应用,将正态变量做数据转换,将一般正态分布转换成标准正态分布。图形特征包括如下3点。 (1) 集中性: 正态曲线的高峰位于正中央,即均数所在的位置。 (2) 对称性: 正态曲线以均数为中心,左右对称,曲线两端永远不与横轴相交。 (3) 均匀变动性: 正态曲线由均数所在处开始,分别向左右两侧逐渐均匀下降。曲线与横轴间的面积总等于1,相当于概率密度函数的函数从正无穷到负无穷积分的概率为1,即频率的总和为100%。 通过normpdf函数生成标准正态分布概率密度函数的数据,程序如下: x=-1:0.05:1; norm=normpdf(x,0,1); %产生μ=0,σ=1的标准正态分布概率密度函数的数据 plot(x,norm,'r*-','LineWidth',1) set(gca,'FontSize',10,'TickDir','out','TickLength',[0.02,0.02]) xlabel('X','FontSize',15); ylabel('PDF','FontSize',15) title('正态分布概率密度函数'); 运行程序执行的分布如图52所示。 图52正态分布PDF 5.3卡方分布 多个独立同分布的随机变量,且其分布为标准正态分布,它们的平方和构成一个新的随机变量,其分布就是卡方分布。卡方分布的自由度为它们的总个数。 chi2cdf(X,V)用来计算自由度为V的卡方分布在任意X点处的分布函数值,X和V可以是具有相同规模的向量、矩阵或多维数组。与计算分布函数值用chi2cdf函数相对应,计算密度值用chi2pdf函数,对于不同自由度分布PDF有相应的分布图。卡方分布实现程序如下: x=0:0.8:100; N=1; y=chi2pdf(x,1*N); %自由度为1的chi2pdf y1=chi2pdf(x,4*N); %自由度为4*N的chi2pdf y2=chi2pdf(x,6*N); %自由度为6*N的chi2pdf y3=chi2pdf(x,10*N); %自由度为10*N的chi2pdf y4=chi2pdf(x,20*N); %自由度为20*N的chi2pdf plot(x,y,'>r',x,y1,'.r',x,y2,'ob',x,y3,'+b',x,y4,'^b'); legend('自由度N','自由度4*N','自由度6*N','自由度10*N','自由度20*N'); axis([0,80,0,0.19]); title('卡方分布PDF'); 运行程序执行的分布如图53所示。 图53不同自由度定义下的卡方分布PDF 5.4F分布 在数理统计中,F分布是重要的抽样分布之一。设随机变量x与y相互独立,且x服从自由度为m的卡方分布,y服从自由度为n的卡方分布。因此有统计量(x*n)/(y*m)服从自由度为(m,n)的F分布,表示为F(m,n),其中,(m,n)为其参数。F分布的实现程序如下: x=0:0.4:80; y=fpdf(x,10,50); %自由度为(10,50) y1=fpdf(x,10,5); %自由度为(10,5) y2=fpdf(x,50,10); %自由度为(50,10) y3=fpdf(x,5,10); %自由度为(5,10) y4=fpdf(x,1,10); %自由度为(1,10) plot(x,y,'>r',x,y1,'.r',x,y2,'ob',x,y3,'+b',x,y4,'^b'); legend('自由度(10,50)','自由度(10,5)','自由度(50,10)','自由度(5,10)','自由度(1,10)'); xlabel('X','FontSize',10); ylabel('PDF','FontSize',10) axis([0,14,0,0.19]); title('F分布PDF'); 运行程序执行的分布如图54所示。 图54不同自由度定义下的F分布PDF 5.5T分布 数理统计中,T分布是三大抽样分布之一。假设x服从标准正态分布,y服从自由度为n的卡方分布,且两个随机变量相互独立,那么,x/sqrt(y/n)作为一个整体服从T分布,且其自由度也为n。 描述自由度分别为1、2、10、20和50时的T分布曲线。实现程序如下: x=-10:0.2:10; y=tpdf(x,1); %自由度为(1) y1=tpdf(x,2); %自由度为(2) y2=tpdf(x,10); %自由度为(10) y3=tpdf(x,20); %自由度为(20) y4=tpdf(x,50); %自由度为(50) plot(x,y,'>r',x,y1,'.r',x,y2,'ob',x,y3,'+b',x,y4,'^b'); xlabel('X','FontSize',10); ylabel('PDF','FontSize',10) legend('自由度(1)','自由度(2)','自由度(10)','自由度(20)','自由度(50)'); axis([0,4,0,0.5]); title('T分布PDF'); 运行程序执行的分布如图55所示。 图55不同自由度定义下的T分布PDF示意图 5.6指数分布 指数分布可以用exprnd函数实现,可以生成符合指数分布的随机数样本,如R=exprnd(MU,M,N,…) 以及R=exprnd(MU,[M,N,…])。 其中,R=exprnd(MU) 生成服从参数为MU的指数分布的随机数,输入MU与输出R的形式相同,参数 MU为平均值(mean parameter)。要生成均值为MU的一组随机数分布,实现程序如下: exp_number = 2000; Mu = 5; a=exprnd(Mu, 1, exp_number); plot(a); mean = sum(a) /exp_number; 运行结果显示为: mean = 4.9280 与程序中设置的MU基本吻合,数值分布如图56所示。 图56exprnd指令生成的随机数样本分布 5.7伽马分布 作为概率统计中一种较重要的分布,伽马分布是统计学的一种连续概率函数。基于伽马分布密度函数的表达,随机变量X为直到第α件事发生所需的等候时间,当两个独立随机变量X和Y,且X~Ga(a,γ),Y~Ga(b,γ),则Z=X+Y~Ga(a+b,γ),注意,X和Y的尺度参数必须一样。 Gamma分布的特殊形式分为如下两种。 (1) 当形状参数α=1时,伽马分布即为参数为γ的指数分布,即X~Exp(γ)。 (2) 当α=n/2(n为自由度),β=1/2时,α和β中α称为形状参数,β称为尺度参数,伽马分布就是自由度为n的卡方分布,即X~2(n)。 设置不同参数值时的伽马分布的实现程序如下: t=0:0.4:35 syms c a1=1,b1=0.3 d=int(c^(a1-1)*exp(-c),0,inf) g=b1.^a1*(t.^(a1-1)).*exp(-b1*t)/d g=double(g) plot(t,g,'*r','linewidth',1) hold on; %第1组a1=1,b1=0.3 a2=2,b2=0.3 d=int(c^(a2-1)*exp(-c),0,inf) g=b2.^a2*(t.^(a2-1)).*exp(-b2*t)/d g=double(g) plot(t,g,'g>','linewidth',1) hold on; %第2组a2=2,b2=0.3 a3=5,b3=0.3 d=int(c^(a3-1)*exp(-c),0,inf) g=b3.^a3*(t.^(a3-1)).*exp(-b3*t)/d g=double(g) plot(t,g,'bo','linewidth',1) hold on; %第3组a3=5,b3=0.3 a4=10,b4=3 d=int(c^(a4-1)*exp(-c),0,inf) g=b4.^a4*(t.^(a4-1)).*exp(-b4*t)/d g=double(g) plot(t,g,'b+','linewidth',1) hold on; %第4组a4=10,b4=3 a5=15,b5=5 d=int(c^(a5-1)*exp(-c),0,inf) g=b5.^a5*(t.^(a5-1)).*exp(-b5*t)/d g=double(g) plot(t,g,'b^','linewidth',1) hold on; %第5组a5=15,b5=5 legend('a=1,b=0.3','a=2,b=0.3','a=5,b=0.3','a=10,b=3','a=15,b=5'); 程序运行结果如图57所示。 图57基于不同参数值的伽马分布数值 基于gampdf函数的伽马分布实现程序如下: x = gaminv((0.005:0.05:0.995),100,10); y1_gamma = gampdf(x,100,10); y2_norm = normpdf(x,1000,100); plot(x,y1_gamma,'*',x,y2_norm,'+') title('伽马分布与正态分布 PDF') legend('Gamma','Normal') 程序运行结果如图58所示。 图58基于gampdf函数实现的伽马分布 5.8对数正态分布 随机变量X的对数服从正态分布,则该随机变量服从对数正态分布。对数正态分布从短期来看,与正态分布非常接近,而长期来看,对数正态分布向上分布的数值更多一些。由正态分布的密度函数,可以根据可靠度与不可靠度函数的定义计算出该分布的可靠度函数和不可靠度函数的表达式。 在信号处理中,对数正态分布还具有如下性质。 (1) 正态分布经指数变换后即为对数正态分布,对数正态分布经对数变换后即为正态分布。 (2) 对数正态总是右偏的。 (3) 对数正态分布的均值和方差是其给定参数的增函数。 (4) 对给定参数的数学期望μ,当方差趋于0时,对数正态分布的均值趋于exp(μ),方差趋于0。 通过调整不同参数,得到的PDF形状将随之改变,实现程序如下。 x = (0:0.08:20); y= lognpdf(x,0.73,0.32); y1 = normpdf(x,5.73,0.32); y2= lognpdf(x,0.63,0.32); y3= lognpdf(x,0.63,0.82); plot(x,y,'>',x,y1,'*',x,y2,'o',x,y3,'^'); xlabel('x'); ylabel('p') title('对数分布与正态分布 PDF') legend('lognpdf-0.73,0.32','normpdf-5.73,0.32','lognpdf-0.63,0.32','lognpdf-0.63,0.82') grid on; 程序运行结果如图59所示。 图59对数正态分布PDF 5.9瑞利分布 一个随机二维向量的两个分量呈独立的、有着相同方差的正态分布时,这个向量的模为瑞利分布。瑞利分布可描述信号处理中平坦衰落信号接收包络,或独立多径分量接收包络统计时变特性的一种分布,如两个正交高斯噪声信号之和的包络即服从瑞利分布。 不同参数下瑞利分布PDF实现程序如下: x = [0:0.06:6]; y = raylpdf(x,0.5); y1 = raylpdf(x,0.6); y2 = raylpdf(x,0.9); y3 = raylpdf(x,1.5); plot(x,y,'>',x,y1,'*',x,y2,'+',x,y3,'^') xlabel('x'); ylabel('p') title('瑞利 PDF') legend('b-0.5','b-0.6','b-0.9','b-1.5') grid on; 程序运行结果如图510所示。 图510瑞利分布PDF 5.10威布尔分布 随机变量X服从威布尔分布,表征参数包括比例参数λ(scale parameter)以及形状参数k(shape parameter)。当k=1时,威布尔分布变为指数分布; 当k=2时,威布尔分布变为瑞利分布。 比例参数与形状参数选择不同值时,威布尔分布实现程序如下: y= wblrnd (3,2,60,1); y1 = wblrnd (3,1,60,1); y2 = wblrnd (0.3,1,60,1); y3 = wblrnd (0.3,5,60,1); subplot(2,2,1); plot(y,'>-') title('威布尔分布(3,2)'); grid on; subplot(2,2,2); plot(y1,'>-') title('威布尔分布(3,1)'); grid on; subplot(2,2,3); plot(y2,'>-') title('威布尔分布(0.3,1)'); grid on; subplot(2,2,4); plot(y3,'>-') title('威布尔分布(0.3,5)'); grid on; 程序运行结果如图511所示。 图511威布尔分布 5.11二项分布 在每次试验中只有两种可能的结果,而且两种结果的发生互相对立,与其他各次试验结果无关,事件发生与否的概率在每一次独立试验中都保持不变,则这一系列试验总称为n重伯努利试验,重复n次独立的伯努利试验即为二项分布。当试验次数为1时,二项分布服从0-1分布。对于伯努利试验,具体要求有如下3点。 (1) 在每次试验中只有两种可能的结果,而且是互相对立的。 (2) 每次试验是独立的,与其他各次试验结果无关。 (3) 结果事件发生的概率在整个系列试验中保持不变。 用binornd函数可以产生二项分布随机数据,二项分布为N~B(n,p),binornd(N,P,m,n)返回参数为N,P的二项分布随机数,其中,m,n表示m行乘n列矩阵。 因为二项分布随机数表示n次试验成功的次数,每次试验成功的概率为p,故n次成功的概率为np,因此对于参数分别为(10,0.2,8,8)的随机数矩阵,其程序表示为: binornd(10,0.2,8,8) 输出结果为: ans = 0 1 1 5 2 4 6 1 2 1 0 1 0 1 1 0 2 2 0 2 1 5 2 3 0 0 1 1 4 2 0 2 3 0 2 3 2 5 2 1 0 2 0 2 2 2 3 3 3 3 3 4 3 1 4 2 2 0 4 2 3 1 1 3 二项分布B(N,p)的概率和累计概率曲线生成程序如下: N=80;%N取值 p=0.3; %p取值 k=0:5:N; PDF=binopdf(k,N,p);%PDF生成 CDF=binocdf(k,N,p);%CDF生成 subplot(1,2,1); h=plotyy(k,PDF,k,CDF); %同时绘制PDF和CDF在参数(N,p)下的曲线 set(get(h(1),'Children'),'Color','b','Marker','>','MarkerSize',6) set(get(h(1),'Ylabel'),'String','pdf') set(h(2),'Ycolor',[1,0,0]) set(get(h(2),'Children'),'Color','r','Marker','+','MarkerSize',6) % set(get(h(2),'Ylabel'),'String','cdf') xlabel('k') grid on subplot(1,2,2); p=0.7; PDF=binopdf(k,N,p); CDF=binocdf(k,N,p); h=plotyy(k,PDF,k,CDF); set(get(h(1),'Children'),'Color','b','Marker','>','MarkerSize',6) % set(get(h(1),'Ylabel'),'String','pdf') set(h(2),'Ycolor',[1,0,0]) set(get(h(2),'Children'),'Color','r','Marker','+','MarkerSize',6) set(get(h(2),'Ylabel'),'String','cdf') xlabel('k') grid on; 程序运行结果如图512所示。 图512二项分布PDF描述曲线图 5.12几何分布 在n次伯努利试验中,试验k次才得到第1次成功的概率,即前k-1次皆失败,第k次成功的概率,几何分布是帕斯卡分布当r=1时的特例。描述几何分布的实现程序如下: k=1:20; P1=0.3; z=geopdf(k,P1)%p=0.3 subplot(1,2,1); stem(z); xlabel('k'); ylabel('PDF'); grid on; P2=0.9 z=geopdf(k,P2)%p=0.9 subplot(1,2,2); stem(z); xlabel('k'); ylabel('PDF'); grid on; 命令窗口数据结果如下: z1 = Columns 1 through 8 0.21000.14700.10290.07200.05040.03530.02470.0173 Columns 9 through 16 0.01210.00850.00590.00420.00290.00200.00140.0010 Columns 17 through 20 0.00070.00050.00030.0002 z2 = Columns 1 through 8 0.09000.00900.00090.00010.00000.00000.00000.0000 Columns 9 through 16 0.00000.00000.00000.00000.00000.00000.00000.0000 Columns 17 through 20 0.00000.00000.00000.0000 生成的PDF几何分布图如图513所示。 图513几何分布PDF 5.13泊松分布 泊松分布是一种重要的离散分布,多出现在当随机变量表示在一定的时间或空间内,出现的事件个数这种场合。理论证明可知,泊松分布可由二项分布的极限得到,即二项分布中n较大,概率p较小时,因n与p的乘积结果不会太大,使得随机变量的分布接近于泊松分布,因此,可将计算量较复杂的二项分布转换为泊松分布。 泊松分布适合于描述单位时间(或空间)内随机事件发生的次数,包括:服务设施在一定时间内到达的人数、电话交换机接到呼叫的次数、售票窗口的候客人数、机器出现的故障数、自然灾害发生的次数、产品的缺陷数、显微镜下单位分区内的细菌分布数等情况。泊松分布的PDF实现程序如下: k = 0:1:20; px = poisspdf (k,2) %生成泊松分布的PDF subplot(1,2,1); plot(k,px) xlabel('k'); ylabel('PDF'); grid on; py = poisspdf (k,10) %生成泊松分布的PDF subplot(1,2,2); plot(k,py) xlabel('k'); ylabel('PDF'); grid on; 命令窗口数据结果如下: px = Columns 1 through 8 0.13530.27070.27070.18040.09020.03610.01200.0034 Columns 9 through 16 0.00090.00020.00000.00000.00000.00000.00000.0000 Columns 17 through 21 0.00000.00000.00000.00000.0000 py = Columns 1 through 8 0.00000.00050.00230.00760.01890.03780.06310.0901 Columns 9 through 16 0.11260.12510.12510.11370.09480.07290.05210.0347 Columns 17 through 21 0.02170.01280.00710.00370.0019 生成的泊松分布PDF曲线如图514所示。 图514泊松分布PDF曲线图 5.14本章小结 概率分布函数是一种描述随机变量取值分布规律的数学表示方法,常用的离散型随机变量分布模型有几何分布、二项分布及泊松分布等; 连续型随机变量分布模型有均匀分布、正态分布及瑞利分布。本章针对典型的离散型随机变量和连续型随机变量,描述了其实现过程和概率分布规律。