从理论到实践:均匀、高斯、瑞利、莱斯四大分布的MATLAB可视化解析

张开发
2026/4/12 16:28:23 15 分钟阅读

分享文章

从理论到实践:均匀、高斯、瑞利、莱斯四大分布的MATLAB可视化解析
1. 均匀分布从骰子到代码的直观理解均匀分布可能是概率论中最容易理解的概念之一。想象你掷一个六面骰子每个面朝上的概率都是1/6——这就是离散均匀分布的典型例子。而在连续情况下比如测量某工厂零件尺寸在2.3cm到2.5cm之间的误差如果所有误差值出现的概率相同我们就说它服从连续均匀分布。MATLAB实现均匀分布的核心在于rand函数。这个函数默认生成[0,1]区间内的均匀分布随机数。但实际工程中我们往往需要不同区间的分布。比如模拟一个电压在2V到5V之间随机波动的信号就需要进行线性变换a 2; % 下限 b 5; % 上限 n 10000; % 样本数 u rand(1,n); % [0,1]均匀分布 x (b-a)*u a; % [a,b]均匀分布绘制结果时直方图能直观验证分布特性。使用histogram函数时设置Normalization为pdf可以显示概率密度figure; subplot(2,1,1); plot(x(1:100)); % 展示前100个样本 title(均匀分布时序信号); xlabel(样本序号); ylabel(幅值); subplot(2,1,2); histogram(x,50,Normalization,pdf); title(均匀分布概率密度); xlabel(值域); ylabel(概率密度);实际工程中均匀分布常用于蒙特卡洛模拟的随机数生成数字信号处理的量化误差分析机械零件的公差建模有个常见误区是认为随机就等于均匀。实际上随机性可以服从各种分布均匀只是其中最简单的一种。在通信系统测试中我经常需要生成特定分布的随机信号来模拟信道噪声这时候理解分布特性就尤为重要。2. 高斯分布自然界的默认设置高斯分布也称正态分布可以说是概率论中的明星分布。从人的身高到测量误差从股票收益率到热噪声电压无数自然现象都遵循这个钟形曲线。它的数学表达式看似复杂f(x) (1/√(2πσ²)) * exp(-(x-μ)²/(2σ²))但在MATLAB中我们可以用normpdf函数轻松计算任意点的概率密度。比如绘制标准正态分布(μ0,σ1)x -5:0.01:5; y normpdf(x,0,1); plot(x,y); grid on; title(标准正态分布概率密度函数); xlabel(x); ylabel(f(x));参数μ和σ的实际意义很直观μ决定分布的中心位置σ决定曲线的胖瘦。在电子测量中σ往往代表测量精度。我曾用这个特性分析过一组电压测量数据measured_voltage [3.28, 3.30, 3.25, 3.27, 3.29]; % 实测电压 mu mean(measured_voltage); sigma std(measured_voltage); x linspace(min(measured_voltage)-0.1,max(measured_voltage)0.1,100); y normpdf(x,mu,sigma);高斯分布的一个重要特性是68-95-99.7规则约68%的值落在μ±σ内95%在μ±2σ内99.7%在μ±3σ内。这个特性在质量控制中非常有用比如判断产品参数是否超出3σ范围。在通信系统中高斯白噪声(AWGN)是最基础的噪声模型。模拟这种信道可以用randn函数clean_signal sin(2*pi*0.01*(1:1000)); % 干净信号 noise_power 0.1; % 噪声功率 noisy_signal clean_signal sqrt(noise_power)*randn(size(clean_signal));高斯分布在实际应用中有一个重要变体——对数正态分布当随机变量的对数服从正态分布时原变量就服从对数正态分布。这在模拟无线信道衰落时经常用到。3. 瑞利分布多径衰落的数学描述第一次接触瑞利分布时我被它的定义绕晕了两个独立同分布高斯随机变量的平方和的平方根。直到用MATLAB画出来才恍然大悟。瑞利分布描述的是这样一种场景当信号通过多条路径传播(如无线通信)每条路径的幅度变化服从高斯分布时接收信号的包络就呈现瑞利分布。生成瑞利分布随机数有两种常用方法。一种是基于高斯随机数N 10000; sigma 2; % 尺度参数 x sigma * randn(1,N); y sigma * randn(1,N); r sqrt(x.^2 y.^2); % 瑞利分布另一种更高效的方法是使用raylrnd函数r raylrnd(2,1,10000); % 参数b2绘制概率密度函数时可以明显看到它的非对称性xi linspace(0,10,100); pdf raylpdf(xi,2); % 理论PDF histogram(r,50,Normalization,pdf); % 模拟数据的归一化直方图 hold on; plot(xi,pdf,LineWidth,2); legend(模拟数据,理论PDF); title(瑞利分布(b2));瑞利分布的形状由尺度参数b决定。在无线通信中这个参数与信道条件有关。当b较小时衰落更严重信号质量下降。我曾用这个特性分析过不同环境下的信道质量urban_b 1.5; % 城市环境 suburban_b 2.5; % 郊区环境 rural_b 3.5; % 农村环境 r_urban raylrnd(urban_b,1,10000); r_suburban raylrnd(suburban_b,1,10000); r_rural raylrnd(rural_b,1,10000);瑞利分布的一个有趣特性是它的均值不是位于峰值处。计算表明当b2时峰值出现在x≈1.73而均值在x≈2.51。这个特性在信号检测中很重要因为大多数样本会集中在比均值低的位置。4. 莱斯分布当主导信号存在时莱斯分布可以看作是瑞利分布的升级版。当存在一条直射路径主导信号时接收信号的包络就不再是瑞利分布而是莱斯分布。比如在卫星通信中除了多径反射总存在一条直接的卫星-地面路径这时就应该使用莱斯分布建模。莱斯分布有两个参数s主导信号的幅度σ散射信号的尺度参数K s²/(2σ²)被称为莱斯因子表示主导信号功率与散射功率的比值。K0时退化为瑞利分布K→∞时接近高斯分布。在MATLAB中生成莱斯分布随机数K 2; % 莱斯因子 s sqrt(2*K); % 主导信号 sigma 1; % 散射信号参数 N 100000; % 方法1基于瑞利分布 x sigma*randn(1,N) s; y sigma*randn(1,N); r sqrt(x.^2 y.^2); % 方法2使用通信工具箱中的ricianrnd % r ricianrnd(s,sigma,1,N);绘制不同K值下的莱斯分布K_values [0,1,3,10]; % 对应瑞利、弱主导、中等主导、强主导 for i 1:length(K_values) s sqrt(2*K_values(i)); x s randn(1,10000); y randn(1,10000); r sqrt(x.^2 y.^2); histogram(r,Normalization,pdf); hold on; end legend(K0(瑞利),K1,K3,K10);在实际项目中我曾用莱斯分布来建模室内无线信道。靠近接入点时K值较大主导信号强远离时K值减小最终接近瑞利分布。这种建模帮助我优化了Wi-Fi覆盖范围。莱斯分布在雷达信号处理中也很重要。当检测目标存在时回波信号通常服从莱斯分布没有目标时则是瑞利分布。这个特性被用于目标检测算法中。

更多文章