前言
通信中广泛使用的加性高斯白噪声信道,实际上就是对输入信号增加高斯随机噪声,而所谓的高斯随机噪声即取值大小服从高斯分布的随机变量。本文使用MATLAB中的randn函数,生成特定的高斯随机变量,并根据所生成的随机变量计算出其概率密度函数估计值,最终,使用高斯分布的概率密度函数理论值,验证了所计算的概率密度函数估计值的正确性。
一、高斯分布的概率密度函数
高斯分布,也即正态分布。均值为μ、标准差为σ以及方差为σ^2的高斯分布的概率密度函数是:
二、仿真代码
MATLAB仿真代码如下:
clc
close all
% 生成 10,000 个均值为 5、标准差为 2 的正态分布随机数。
% 在 Normalization 设为 'pdf' 的情况下绘制直方图可生成概率密度函数的估计值。
mu = 5; % 高斯分布均值
sigma = 2; % 高斯分布标准差
N = 10000; % 样本数
x = sigma*randn(N,1) + mu; % 生成高斯随机变量
figure()
histogram(x,'Normalization','pdf') % 如果不指定 nbins,则 histogram 基于 X 中的值自动计算将使用多少个 bin。
y = -5:0.1:15;
f = exp(-(y-mu).^2./(2*sigma^2))./(sigma*sqrt(2*pi)); % 高斯分布概率密度函数理论值
% 对于均值为5、标准差为2的正态分布,叠加概率密度函数理论值曲线
hold on
plot(y,f,'Color','#D95319','LineWidth',1.5)
title('高斯分布的概率密度')
legend('概率密度函数的估计值','概率密度函数的理论值')
三、仿真结果
MATLAB仿真结果如下:
备注
histogram是在MATLAB R2014b版本中引入的, R2014a及以前的版本,需要使用hist,并做适当的修改。后续将给出其他例子说明如何使用hist得到概率密度函数的估计值。