当前位置: 首页 > news >正文

(11)MATLAB莱斯(Rician)衰落信道仿真2

文章目录

  • 前言
  • 一、莱斯衰落信道仿真模型
  • 二、仿真代码与结果
    • 1.仿真代码
    • 2.仿真结果画图
  • 三、后续:
  • 四、参考文献:


前言

首先给出莱斯衰落信道仿真模型,该模型由直射路径分量和反射路径分量组成,其中反射路径分量由瑞利衰落信道模型构成,该模型可以很方便地建立瑞利衰落信道的仿真。给出莱斯衰落信道的MATLAB仿真代码,并对比了莱斯衰落信道和瑞利衰落信道,揭示了两者之间的内在关系。


一、莱斯衰落信道仿真模型

根据《(10)MATLAB莱斯(Rician)衰落信道仿真1》知道,在莱斯衰落信道中,接收信号为直射路径信号和反射路径信号之和,而莱斯因子K正是直射路径与反射路径信号的相对功率。

若K>>1,则信道趋近于直射路径(高斯信道);若K<<1,则信道趋近于瑞利衰落。

在莱斯衰落信道仿真模型中,一般使用直射路径部分和瑞利衰落部分是分开的方法,仿真模型如下图所示:

莱斯衰落信道仿真模型

其中,
在这里插入图片描述

由图1可写出莱斯衰落信道模型的表示式:

在这里插入图片描述

下面使用该仿真模型,给出莱斯衰落信道的MATLAB仿真代码。

二、仿真代码与结果

1.仿真代码

首先,建立瑞利衰落信道仿真函数:

function Rayleigh_ch = Rayleigh_channel(nSamples)
% Rayleigh Channel Model
% Input : nSamples    - number of channel samples
% Output: Rayleigh_ch - complex channel vectorsigma = sqrt(0.5);Rayleigh_ch = sigma*(randn(1,nSamples) + 1j*randn(1,nSamples));
end

注:该代码详细说明请参考:(9)MATLAB瑞利衰落信道仿真2

其次,使用瑞利衰落信道函数,建立莱斯衰落信道仿真函数:

function Rician_ch = Rician_channel(K_dB, nSamples)
% Rician Channel Model
% Input : K_dB      - K factor in dB
%         nSamples  - number of channel  samples
% Output: Rician_ch - complex channel vector
K = 10^(K_dB/10);
Rician_ch = sqrt(K/(K+1)) + sqrt(1/(K+1))*Rayleigh_channel(nSamples);

最后,给出莱斯衰落信道仿真模型

close all
clear all
clcsamples_number = 1e5;
bins_number = 50;                                      % number of bins in the histogram% Rayleigh channel model
Rayleigh_ch = Rayleigh_channel(samples_number);[elements_number,x] = hist(abs(Rayleigh_ch),bins_number);
px = elements_number/samples_number/mean(diff(x));
figure()
plot(x,px,'r-','LineWidth',1.5)
hold on
grid on% Rician channel model
K_dB = [-50, 15];                                       % K in dB
Rician_ch = zeros(2,samples_number);
color = ['b','m'];
line = ['-','--'];
marker = ['o','*'];
for i=1:length(K_dB)Rician_ch(i,:) = Rician_channel(K_dB(i),samples_number);[elements_number,x] = hist(abs(Rician_ch(i,:)),bins_number);px = elements_number/samples_number/mean(diff(x));plot(x, px, [color(i),line(i),marker(i)],'LineWidth',1.5);
endtitle('The PDF of Rayleigh fading channel and Rician fading channel')
xlabel('x')
ylabel('Occurance of x: px')                            % Occurance rate
legend('Rayleigh','Rician, K=-50dB','Rician, K=15dB')

2.仿真结果画图

仿真代码运行结果画图如下:

在这里插入图片描述

从仿真图中可以看到,若K>>1,则莱斯衰落信道趋近于高斯信道;若K<<1,则信道趋近于瑞利衰落信道。该仿真结果与理论分析一致。

三、后续:

下一篇文章将会给出莱斯随机变量的概率密度函数的MATLAB代码。

四、参考文献:

Michel C. Jeruchim, Philip Balaban, and K. Sam Shanmugan , Simulation of Communication Systems, Second Edition : Methodology, Modeling, and Techniques


http://www.lryc.cn/news/452632.html

相关文章:

  • ComfyUI局部重绘换衣讲解
  • Android——添加联系人
  • 高级 Java Redis 客户端 有哪些?
  • jenkins项目发布基础
  • 前缀和算法详解
  • Android-Handle消息传递和线程通信
  • 【Kubernetes】常见面试题汇总(四十七)
  • grafana全家桶-loki promtail收集k8s容器日志
  • HTML5+CSS+JavaScript剪子石头布游戏
  • Flask-3
  • Redis的基本使用
  • [241004] Linux 系统中配置文件的区别 | VirtualBox 7.1.2 发布,修复多项问题并提升性能
  • hbuilderx+uniapp+Android宠物用品商城领养服务系统的设计与实现 微信小程序沙箱支付
  • SVN 迁移到 GIT,并保留提交记录
  • 【数据结构与算法】LeetCode:堆和快排
  • 文档大师:打造一站式 Word 报告解决方案
  • Python 数字专题:全方位解析整数
  • IP协议报文
  • 【分布式微服务云原生】掌握分布式缓存:Redis与Memcached的深入解析与实战指南
  • 计算机毕业设计 基于Python的智能文献管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • 如何查看NVIDIA Container Toolkit是否配置成功
  • python全栈学习记录(二十一)类的继承、派生、组合
  • Go语言实现长连接并发框架 - 任务执行流
  • Flutter与原生代码通信
  • 每日读则推(三)
  • Android Studio | 无法识别Icons.Default.Spa中的Spa
  • SKD4(note上)
  • rabbitmq----数据管理模块
  • 【人工智能深度学习应用】妙笔API最佳实践
  • SOMEIP_ETS_150: SD_Send_triggerEventUINT8Multicast_Eventgroup_6