【通信】基于matlab模拟室内VLC模型(含BER和SNR)附matlab代码

news2025/7/19 15:42:26

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

In this paper, an optical wireless communication system that uses white LEDs is described. Equalization is employed at the receiver to improve the data rate. Simulation shows a highly reliable communication channel with an SNR of up to 81 dB. Moreover, the data rate can be improved from 16 Mb/s to 32 Mb/s NRZ-OOK at a BER of 10-6.

论文部分复现

⛄ 部分代码

clear all; clc;

[length,width] = meshgrid(0.5:0.05:5);

height = 3;

q=1.602176487E-19;

Aroom = length.*width;

Arx = 50;%接收区域

d = 2.15;%墙高度

psi = 30;%

psic = 70;%半角功率

nLED = 4;%LED数量

phi_half = pi/3;

PLED = 0.02; %单LED功率

Rf = 0.15;  %地面反射

Rc = 0.8; %天花板反射

Rw = 0.9; %墙面反射

Af = Aroom;%地面面积

Ac = Aroom;%天花板面积

Aw = length*height;%墙面面积

Ptotal= nLED*PLED; %总功率

g = 6;%光集中器增益

Tf = 1;%光滤波器传输系数

I2=0.562;  %the noise-bandwidth factor

Rb =5120000;%data rate

R=0.55;%光电二极管的响应率 

m=-log(2)./log(cos(phi_half));%the order of Lambertian emission 

Ro=real(((m+1)./2*pi)*cos(phi_half*2)^m);%Lambertian radiant intensity

Ptx =PLED*Ro;   %发射功率

%SNR 

SNR = (R*Prx)^2./sigmatotal;%Signal-to-Noise Ratio

SNRdb = 10*log10(SNR);

figure

mesh(length,width,SNRdb)

xlabel('Roomlength');ylabel('Roomwidth');zlabel('SNRdb')

%BER

Q = (1/2)*erfc((sigmatotal./(R*Prx.^2)./sqrt(2)));% Error Function

BER = Q*sqrt(SNR);% Bit Error Rate

figure   % Plot 3D

mesh(length,width,BER)

xlabel('Roomlength');ylabel('Roomwidth');zlabel('BER');

⛄ 运行结果

⛄ 参考文献

Improvement of data rate by using equalization  in an indoor visible light communication system (2008)" by Lubin Zeng, Dominic O'Brien, Hoa Le-Minh, Kyungwoo Lee, Daekwang Jung, and Yunje Oh

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短视频平台如何保证内容安全问题?

本文首发于:行者AI谛听 近些年,短视频的安全意识越来越强,随着各大平台的用户暴增,平台的一些审核及运营都有着巨大的挑战。那么对于平台来说,如何保证内容安全呢? 很多短视频平台的内容有着爆炸式的增长&a…

Vue3动态路由(Vite+Vue3+TS+Mock)

一、动态路由简介 Vue通过路由进行页面管理,不同的路由绑定到不同的页面。一般来说,前端直接写好的路由为静态路由,在不修改代码的情况下,路由表是不会改变的。对于不需要动态改变路由表的网站,静态路由就已经足够了&…

关于数据治理工具的选型,你了解多少?

数据治理的本质是盘点数据资产、治理数据质量,实施数据全生命周期的管理,这里面包括了建组织、立制度或者使用一款数据治理的软件帮助企业开展数据治理的相关工作等等。根据不同的数据治理项目特点,会用到不同的技术或工具。拥有一套趁手好用…

功率放大器的三种类型是什么意思

很多人都知道功率放大器,但是却不知道同样都是功率放大器,但是名字相同,作用却是完全不同的,总是会有工程师发出这样的疑问“功率放大器的三种类型是什么以及功率放大器怎么选择型号”等等,今天就请安泰电子来为我们解…

SpringBoot整合Alibaba-Dubbo和Apache-Dubbo

文章目录1 Alibaba整合Dubbo1.1 服务提供者1.1.1 服务提供者接口1.1.2 服务提供者实现类1.1.2.1 项目结构图1.1.2.2 pom.xml1.1.2.3 服务实现类1.1.2.4 配置文件1.1.2.5 启动类1.2 服务消费者1.2.1 项目结构图示1.2.2 请求入口1.2.3 配置文件1.2.4 启动类2 Apache整合Dubbo2.1 …

Pytorch学习笔记(四)官方60min入门教程之图像分类器

你已经了解了如何定义神经网络,计算损失值和网络里权重的更新。 现在你也许会想应该怎么处理数据? 通常来说,当你处理图像,文本,语音或者视频数据时,你可以使用标准 python 包将数据加载成 numpy 数组格式…

Web3中文|10月份超48%的以太坊NFT交易额是假的

来源 | cryptoslate 编译 | BoweniNFTnews.com 10月份全球NFT销售额超过8.5亿美元,总交易量约为300万笔。 NFT月销售额 数据来源:Footprint Analytics 在市场状况不佳的情况下,仍有大量唯一买家与卖家。10月份有超过100 万的唯一买家和卖家…

第九章 哈希表 AcWing 1532. 找硬币

第九章 哈希表 AcWing 1532. 找硬币 原题链接 AcWing 1532. 找硬币 算法标签 哈希表 双指针 思路 使用哈希表集合 用一个哈希表存储硬币。 对于每一枚硬币 x,判断在集合中是否存在 y,使得 x y m。 如果存在,则是一组解,判…

Linux Command htpasswd 创建密码文件

文章目录Linux Command htpasswd 创建密码文件1. 简介2. 安装3. 语法4. 选项5. 示例6. 其他Linux Command htpasswd 创建密码文件 1. 简介 htpasswd是Apache的Web服务器内置的工具,用于创建和更新储存用户名和用户基本认证的密码文件。 2. 安装 centos 7、 redhat&#xff…

MCE | 靶向 cGAS-STING 通路或可治疗渐冻症

自从 12 年前被发现以来,STING 途径就吸引了众多TOP生物学家的关注,去年 3 月,陈志坚教授带领的研究团队和其合作者在 Nature 上同日发表三篇论文,让 cGAS-STING 通路大火了一把,并被认为是未来十年内肿瘤免疫靶点的“…

指静脉当前遇到的问题

一、《基于改进残差网络的指静脉识别算法》_易芮 2020.5.20 ①采集到的指静脉图像质量不高"边缘曝光"及手指的自由度导致图像存在的偏移问题 (传统的指静脉识别技术是基于图像的纹理、特征点等细节进行特征提取,若图像质量较差的话&#xff…

thymeleaf抽取公共页面

thymeleaf抽取公共页面Thymeleaf中th:include、th:replace、th:insert、th:fragment用法及区别th:include、th:replace、th:insert区别在开发Web网站的时候,HTML页面有很多是相同的,如果每一个页面都写一遍,不仅非常麻烦,而且非常…

基于粒子群算法的城轨列车牵引多目标能耗优化问题附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

python基础之元组

文章目录一、元组注意:二、创建元组怎么验证这个变量真的是一个元组类型:三、使用迭代遍历元组四、应用场景五、格式化字符串后面的()本质上就是元组六、元组和列表之间的转换一、元组 元组(Tuple)与列表类…

Python(PyQt5)制作帮助文档查看器(可显示后缀名为md的文件)同时显示文本和图片

先看完整效果图: 帮助文档查看器是很多程序中必备要素,而利用Qt中的QTreeView组件可以很方便的查看文件,而QTextBrowser可以直接显示格式化的MarkDown文本。因此可以利用这两个组件制作一个帮助文件查看器。 未优化 效果图: 问题优化: 你会发现QT treeView列宽设置不成功问题…

Mybatis-Plus 06 条件构造器和常用接口

一、wapper介绍 Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件 ​ QueryWrapper : 查询条件封装 ​ UpdateWrapper : Update 条件封装 AbstractL…

PG::Inclusiveness

nmap -Pn -p- -T4 --min-rate1000 192.168.134.14 nmap -Pn -p 21,22,80 -sCV 192.168.134.14 80端口是默认页面,先查看21端口FTP服务的匿名登录,并未发现可利用信息。 继续查看80端口,在robots.txt中得到提示。 https://www.howtogeek.co…

【Kubernetes | Pod 系列】Pod的 YAML 清单文件详解

目录3. Pod的 YAML 清单文件3.1 获取资源对象 YAML3.2 解析 YAML 清单文件(1)apiVersion查看 Kubernetes API 中全部的 API 组(2)kind查看 Kubernetes 中全部的对象资源类型(3)metadata(4&#…

SpringBoot整合Mybatis方式2:使用注解方式整合Mybatis

SpringBoot整合Mybatis简介SpringBoot整合Mybatis方式2:使用注解方式整合Mybatis1.先用idea创建一个添加mybatis需要的相关依赖的工程。2.准备数据库和表3.创建表映射类4.创建mapper代理接口5.创建Service层和Service的实现层6.创建控制层(也就是web层&a…

JQuery使用

简介 一个JavaScript的框架,简化了JS的语法和操作,定义了HTML属性操作、样式操作、DOM 操作等相关函数,实现了对ajax异步请求封装。提供了很多预定义函数的JS文件。 作用 简化部分JavaScript开发 使用步骤 1,引入Jquery 下载 地址1:http:/…