(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。仿真结果将给出接收信号样本幅度的直方图。

代码如下:

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仿真代码。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/886909.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode练习 路径总和II

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22 输出&a…

day04笔试练习

1.Fibonacci数列 题目链接:Fibonacci数列_牛客题霸_牛客网 题目思路: 定义 a b c 三个变量 使 c 一直加到比 n 大的最近的斐波那契数 此时比较 c 和 b 哪个数离得最近就好 public static void main(String[] args) {Scanner sc new Scanner(System.in…

基于facefusion的换脸

FaceFusion是一个引人注目的开源项目,它专注于利用深度学习技术实现视频或图片中的面部替换。作为下一代换脸器和增强器,FaceFusion在人脸识别和合成技术方面取得了革命性的突破,为用户提供了前所未有的视觉体验。 安装 安装基础软件 安装…

深入探究:在双链表的前面进行插入操作的顺序

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝惟有主动付出,才有丰富的果…

构建高效服装销售平台:Spring Boot与“衣依”案例

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…

hystrix微服务部署

目录 一.启动nacos和redis 1.查看是否有nacos和redis 二.开始项目 1.hystrix1工程(修改一下工程的注册名字) 2.运行登录nacos网站查看运行效果(默认密码nacos,nacos) 3.开启第二个项目 hystrix2工程 4.关闭第二个项目 hyst…

UE4 材质学习笔记02(数据类型/扭曲着色器)

一.什么是数据类型 首先为啥理解数据类型是很重要的。一些节点的接口插槽只接受特定类型的数据,如果连接了不匹配的数据就会出现错误,有些接口可以接受任何数据类型,但是实际上只会使用到其中的一些。并且有时可以将多个数据流合并成一个来编…

选择排序:直接选择排序、堆排序

目录 直接选择排序 1.选择排序的基本思想 2.直接选择排序的基本思想 3.直接插入排序的代码思路步骤 4.直接选择排序代码 5.直接选择排序的特性总结 堆排序 一、排升序,建大堆 1.利用向上调整函数建大堆 1.1.建立大堆的思路 1.2.以下是具体步骤&#xff1a…

【人人保-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

C++系列-多态

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 多态 多态就是不同类型的对象,去做同一个行为,但是产生的结果是不同的。 比如说: 都是动物叫声,猫是喵喵,狗是汪汪&am…

Flink集群部署

本次部署1.17版本 需要修改的配置文件地方为 Job为指挥中心,只能有一台主机,集群中所有的配置文件都这样配置 Rest为客户端UI显示使用,集群中所有的配置文件都这样配置 Task是每个节点工作使用的,每个节点的Task各不相同 conf配…

【mmengine】配置器(config)(进阶)继承与导出,命令行修改配置

一、配置文件的继承 1.1 继承机制概述 新建optimizer_cfg.py: optimizer dict(typeSGD, lr0.02, momentum0.9, weight_decay0.0001)新建runtime_cfg.py: device "cuda" gpu_ids [0, 1] batch_size 64 epochs 100 num_workers 8新建resnet50.py: _base_ […

数据结构-3.9.栈在递归中的应用

一.函数被调用背后的过程:最后被调用的函数最先结束也符合栈的后进先出 1.main函数为主函数即程序入口,运行时主函数先入栈,然后存入主函数里的数据; 2.func1函数加载在栈中时他后面的代码的地址#1(调用返回地址,不是…

OpenAI全新多模态内容审核模型上线:基于 GPT-4o,可检测文本和图像

在数字时代,内容安全问题愈发受到重视。9月26日,OpenAI 正式推出了一款全新的多模态内容审核模型,名为 “omni-moderation-latest”。 该模型基于最新的 GPT-4o 技术,能够准确地识别检测有害文本图像。这一更新将为开发者提供强大…

Woocommerce怎么分类显示产品?如何将Shopify的产品导入到Woocommerce?

WooCommerce作为WordPress的一个电子商务插件,功能强大、使用简洁,能够轻松集成到WordPress网站中,为用户提供了一个完整的在线商店解决方案,在国外还是挺受欢迎的。 Woocommerce怎么分类显示产品? 在Woocommerce中&a…

TCP Analysis Flags 之 TCP ZeroWindowProbe

前言 默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可…

【C++】空指针和野指针

文章目录 1.空指针2.野指针总结 1.空指针 概念:指针变量指向内存中编号为0的空间。 用途:初始化指针变量。 注意:空指针指向的内存是不可以访问的。 示例: int main(){//指针变量p指向内存地址编号为0的空间int *PNULL&#…

在java后端发送HTTPClient请求

简介 HttpClient遵循http协议的客户端编程工具包支持最新的http协议 部分依赖自动传递依赖了HttpClient的jar包 明明项目中没有引入 HttpClient 的Maven坐标,但是却可以直接使用HttpClient原因是:阿里云的sdk依赖中传递依赖了HttpClient的jar包 发送get请…

Django 配置邮箱服务,实现发送信息到指定邮箱

一、这里以qq邮箱为例,打开qq邮箱的SMTP服务 二、django项目目录设置setting.py 文件 setting.py 添加如下内容: # 发送邮件相关配置 EMAIL_BACKEND django.core.mail.backends.smtp.EmailBackend EMAIL_USE_TLS True EMAIL_HOST smtp.qq.com EMAIL…

1.2.2 计算机网络的分层结构(下)

水平视角 YSCS协议(压缩传输协议) 发送方先压缩然后接收方再解压。 为什么要分层?为什么要制定协议? 计算机网路功能负责->采用分层结构,将诸多功能合理地划分在不同层次->对等层之间制定协议,以…