(14)MATLAB莱斯(Rician)衰落信道仿真4

文章目录


前言

本文通过将接收信号总功率设置为1,重写了莱斯衰落信道上接收信号幅度的理论PDF式。然后用MATLAB代码生成了在具有不同莱斯因子K的Ricean平坦衰落信道下接收到的信号样本,并计算了PDF的估计值。最终通过画图给出仿真结果。


一、改写莱斯分布概率密度函数的理论值

对于《(11)MATLAB莱斯(Rician)衰落信道仿真2》和《(13)MATLAB莱斯(Rician)衰落信道仿真3》中描述的一般莱斯过程,接收信号幅度的概率密度函数服从莱斯分布:

式中,I0()为第一类零阶修正贝塞尔函数。

另外,平坦莱斯衰落信道模型可以用Ω和K两个参数来描述。Ω为直射路径和反射路径的总功率:

K为直射路径与反射路径的功率比:

根据式(2)和式(3),莱斯衰落信道上接收信号幅度的理论PDF式(1)可改写如下:

下面使用该理论PDF式对莱斯衰落信道进行MATLAB建模仿真。

二、仿真代码

以下代码生成了在具有不同莱斯因子K的Ricean平坦衰落信道下接收到的信号样本。仿真中,假设直射路径和反射路径的总功率为1,即Ω = β^2 + 2σ^2 = 1。仿真结果将给出接收信号样本幅度的直方图。

代码如下:

c 复制代码
clc
close all
clear all

%% Simulate receieved signal samples due to Ricean flat-fading

K_factors = [0, 3, 7, 12, 20];                         % 莱斯因子K,直接设置线性值
colors = {'b', 'r', 'k', 'g', 'm'};
index = 1;                                             % 多条曲线的颜色索引
N = 1e5;                                               % 样本数
figure()
for K = K_factors                                      % 每个循环,对应一个莱斯因子K
    mu = sqrt(K/(2*(K+1)));                            % 均值
    sigma = sqrt(1/(2*(K+1)));                         % 标准差
    ric = mu + sigma.*randn(1,N) + 1j*(mu + sigma.*randn(1,N)); % 生成平均功率为1的莱斯衰落样本samples
    
    % 平均功率
    display(['Average power : ', num2str(mean(abs(ric).^2))]);

    [elements_number,bin] = hist(abs(ric),50);         % 使用samples估计PDF
    plot(bin,elements_number/trapz(bin,elements_number),[colors{index}, '*']);
    
    
    % 莱斯分布的PDF理论值
    x = 0: 0.05: 3;                                    % 莱斯随机变量
    Omega = 1;                                         % 总平均功率设为1
    z = 2*x*sqrt(K*(K+1 )/Omega);                      % 修正贝塞尔函数用
    I0_z = besseli(0,z);                               % 第一类零阶修正贝塞尔函数
    pdf = (2*x*(K+1)/Omega) .* exp(-K-(x.^2*(K+1)/Omega)) .* I0_z; % 莱斯分布的PDF理论式
    hold on;
    plot(x, pdf, colors{index},'LineWidth', 1.5);
    index = index + 1 ;
end
grid on;
title('莱斯分布随机变量的概率密度');
xlabel('随机变量x');
ylabel('概率密度pdf(x)');
legend('K=0估计值', 'K=0理论值', ...
       'K=3估计值', 'K=3理论值', ...
       'K=7估计值', 'K=7理论值', ...
       'K=12估计值', 'K=12理论值', ...
       'K=20估计值', 'K=20理论值');
xlim([0 3]);

三、仿真结果

仿真结果给出接收信号样本幅度的概率密度估计:

总结

至此,通过7篇文章分析了瑞利衰落信道和莱斯衰落信道的理论和MATLAB仿真:
(8)MATLAB瑞利衰落信道仿真1
(9)MATLAB瑞利衰落信道仿真2
(10)MATLAB莱斯(Rician)衰落信道仿真1
(11)MATLAB莱斯(Rician)衰落信道仿真2
(12)MATLAB莱斯(Rician)衰落信道仿真2补充:莱斯衰落信道与莱斯随机变量
(13)MATLAB莱斯(Rician)衰落信道仿真3
(14)MATLAB莱斯(Rician)衰落信道仿真4

瑞利分布和莱斯分布都是通过数学方法对信道模型的物理特性进行建模的。然而,一些实验数据并不能很好地符合这两种分布。因此,有必要寻找一种更通用的衰落分布,使其可以适应多种实测数据,这种分布就是Nakagami衰落分布。后续将对Nakagami衰落分布进行介绍,并给出MATLAB仿真代码。


相关推荐
T型码农要学习1 小时前
开源项目5|FileBrowser:免费在线文件管理器!随时随地管控服务器文件
运维·服务器·人工智能·开源
智恒百亿1 小时前
8 卡 RTX 5090 服务器深度实测:256GB 显存能否支撑 70B 模型微调?选型参考
大数据·运维·服务器·人工智能
ai小陈3 小时前
PyTorch DataLoader数据加载性能排查:GPU利用率低的实操指南
人工智能·pytorch·python·深度学习·ai·gpu算力
测试者家园5 小时前
为什么意图驱动测试是自动化测试的下一站,而不是替代品
自动化测试·软件测试·人工智能·持续测试·ai赋能·智能化测试·软件测试变革
D202020206 小时前
TikTok Shop禁止AI语音直播落地后,跨境卖家如何通过达秘合规调整带货内容
人工智能
像风一样自由20206 小时前
20.Milvus常见问题检索不到维度错误和数据一致性
人工智能·大模型·milvus
2601_962071576 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
现代野蛮人6 小时前
【深度学习实验】—— 基于 LSTM 与 Optuna 调参的丙型肝炎预测
人工智能·深度学习·lstm
支支დ7 小时前
VO by Vercel 前端特定优势:为什么它是构建 AI 应用的新范式
前端·人工智能
ZGIAI7 小时前
ZGI 让那些"等你去处理"的事,真正跑起来
人工智能·架构