Random Signals for Engineers using MATLAB and Mathcad Copyright 1999 Springer Verlag NY Example 7.8 Gaussian Probability Graphs In the example we will demonstrate a technique of plotting Gaussian data that is often used to plot operating characteristics of receivers used for coherent and incoherent detection. These curves are based upon the so-called Gaussian probability paper where we plot the data that is transformed by the inverse Gaussian cumulative probability function. If we plot a set of data, a normal cumulative data curve is obtained and the results are shown below. We will use a data set generated by the build in gaussian random variable function - randn. N=800; x=randn(1,N); r=sort(x); The normal curve results when we plot the sorted values versus the fractional value of the index, which represents the probability plot(r,(1:N)./N) 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -3 -2 -1 0 1 2 3 We may normalize the probability values by using the inverse normal function or the Matlab erfinv. The values of m and can be taken as 0 and 1 respectively and if the data has another mean the line will be shifted and if the is other than 1 the slope will change. However, the data will align itself to a straight line since we are using the inverse of the cumulative normal curve applied to the cumulative normal data and therefore straight-line curve results. Plotting these results we find yp=sqrt(2)*1*erfinv(2/N.*(1:N) -1) + 0; plot(r,yp) xlabel 'value' ylabel 'Normalized Prob' 4 3 Normalized Prob 2 1 0 -1 -2 -3 -4 -3 -2 -1 0 value 1 2 3 Examination of the resultant curve shows that there is a slight deviation after the 2 value. This is to be expected since for a gaussian distribution we only have a small number of samples in this region. The y axis values can be calibrated in probability directly by using the following table of probabilities and labeling the ticks appropriately p=[ .001 .003 .01 .02 .05 .10 .25 .5 .75 .9 .95 .98 .99 .997 .999]; tick=sqrt(2)*1*erfinv(2*p -1) + 0; label1=str2mat('0.001','0.003','0.01','0.02','0.05','0.1','0.25','0.5') ; label2=str2mat('0.75','0.9','0.95','0.98','0.99','0.997','0.999' ); label=[label1;label2]; plot(r,yp) set(gca,'Ytick',tick,'YTickLabel',label); xlabel 'value' ylabel 'Prob' grid on; 0.999 0.997 0.99 0.98 0.95 0.9 Prob 0.75 0.5 0.25 0.1 0.05 0.02 0.01 0.003 0.001 -3 -2 -1 0 value 1 2 3 The values in the first column are the ordinates and the second column is the corresponding probabilities. In the next example we will express the results of the receiver tradeoff curves using this form of probability graphs.