m可见光通信的空间调制(sm)误码率matlab仿真

news2024/11/25 11:59:34

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

      可见光通信技术(Visible Light Communication,VLC)是指利用可见光波段的光作为信息载体,在空气中直接传输光信号的通信方式。可见光通信技术绿色低碳、可实现近乎零耗能通信,还可有效避免无线电通信电磁信号泄露等弱点,快速构建抗干扰、抗截获的安全信息空间。未来,可见光通信也将与WiFi、蜂窝网络(3G、4G、甚至5G)等通信技术交互融合,在物联网、智慧城市(家庭)、航空、航海、地铁、高铁、室内导航和井下作业等领域带来创新应用和价值体验。
       可见光无线通信是以LED为载体,在不影响正常照明前提下,将信息通过调制器进行调制后,将数字信号载频到LED灯具上,利用LED发出快速的光脉冲无线传输信息。接收端利用光电转换器(PD)接收含有信息的可见光,并转换为电信号,然后进行滤波、整形和放大,并从中解调出相应的模拟信息。如果需要双向传输(即下行和上行)或多路传输,则需要进行频谱区分或多路取样调制,并加入同步识别信号和同步检测信号。对于可见光通信基站,通过信号源连接线将各个基站并联连接,在只有下行信号传输系统中,无“信息接收部分”,只能通过“信息发射部分”将光信号下行,由带有光电接收器/信号解调器的电脑或手机接收。

       空间调制技术是近年来提出的一种多天线空间复用技术.由于其单射频传输特性,空间调制结构发送端不需要天线间同步,接收机仅需要一个简单的单数据流检测器.另外,空间调制还能够利用无源天线传递信息.因此,空间调制相比传统的多天线技术具有更高的能量效率,一经提出就引起了国内外学者的广泛关注. 

        目前,以空间调制(Spatial Modulation,SM)、广义空间调制(Generalized Spatial Modulation,GSM)为代表的新型MIMO技术,成为4G以及5G的关键技术。空间调制系统在一个符号周期内,发送端只选择部分发送天线发送信号,从而大大提高了频谱效率,是大规模MIMO系统的重大突破。空间调制是将待发送的比特信息分成两部分,一部分用于进行数字调制符号的映射,另一部分则用于选择发射天线。

     空间调制(Spatial Modulation,SM),顾名思义,可以视为调制的一种。一般所说的调制如 QAM,是根据 0/1 比特序列对发射信号的幅度或是相位进行对应的改变,而 SM 则是根据对应比特序列来改变发射信号的“空间”特性,具体来说,是发射信号的信道特性。   
  假设在传输信息的过程中,某个时隙的信息比特序列为u ( 1 × N ) ∈ R u_{(1\times N)}\in\Ru 
(1×N)∈R。经过比特分割后得到u 1 ( 1 × N 1 ) ∈ R u_{1(1\times N_1)}\in\Ru 1(1×N 1)∈R,用于选择天线,其中N 1 N_1N 1为用于选择天线的比特数;u 2 ( 1 × ( N − N 1 ) ) ∈ R u_{2(1\times (N-N_1))}\in\Ru 2(1×(N−N 1))∈R,用于调制符号的映射。空间调制系统模型如图1-1所示。

    空间调制(Spatial Modulation,SM),顾名思义,可以视为调制的一种。一般所说的调制如 QAM,是根据 0/1 比特序列对发射信号的幅度或是相位进行对应的改变,而 SM 则是根据对应比特序列来改变发射信号的“空间”特性,具体来说,是发射信号的信道特性。

    SM 的优势在于能够通过相互独立的信道来发送额外的比特信息。频谱效率得到提升。同时,由于每一时刻被激活工作的发射天线只有一根,因此原本 MIMO 中存在的 ICI 问题也就被避免了,并且发射机的射频链每一时刻只需要一条,功耗可控。另外,这一方案对接收机的天线数目要求并不高,可适用于移动终端。

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

3.MATLAB核心程序

............................
MTKL  = 500;        
%LED数量
LEDt  = 4;
LEDr  = 4; 
%每帧符号数 %下面几个为保存仿真的变量和统计数据长度使用
Flen  = 100;   
Blen  = log2(LEDt)+1;  
Alen  = log2(LEDt).*Flen; 
Mlen  = Flen; 
Fn    = zeros(1,LEDt);  
Hh    = zeros(LEDt,LEDr);  
 
for ij=1:length(SNRs)%开始循环,每次仿真不同的SNR
    for mt=1:MTKL%蒙特卡洛循环,计算平均,提高精度
        [ij,mt]
        %瑞利信道
        H1 = (randn(LEDt, LEDr) + randn(LEDt, LEDr)*1i)/sqrt(2);
        for i1=1:LEDt               
            Fn(i1)=norm(H1(i1,:),'fro'); 
            Hh(i1,:)=H1(i1,:)./Fn(i1)*sqrt(LEDr);   %计算瑞丽信道的范数作为最终的信道参数
        end
        %发送
        BitMod  = double(randn(1,Mlen)>=0.5);  %产生测试数据
        SymMod  = -2*BitMod+1;%数据0101变为-1,1,-1,1          
        BitAnt  = double(randn(1,Alen)>=0.5);  
        %进制转换
        IndexAnt= func_bit2dec(BitAnt,log2(LEDt))+1;  
        %发送矩阵,转换为空间调制方式发送
        Tdat    = zeros(Flen,LEDt);       
        for j1=1:Flen
            Tdat(j1,IndexAnt(j1)) = SymMod(j1);
        end
        %信道H+awgn
        Tdat2 = Tdat*Hh;    %信道H
        Rdat  = awgn(Tdat2,SNRs(ij),'measured');  %信道awgn
        
        %根据文献可知,使用最大似然ML检测
        [ML_dat1,ML_dat2] = func_ML(Rdat,LEDt,Hh,Flen);
        ML_dat3           = reshape(ML_dat1,1,log2(LEDt)*Flen);
        err1(ij,mt)       = sum(ML_dat3~=BitAnt);  
        err2(ij,mt)       = sum(ML_dat2~=BitMod);         
    end
    err3(ij)=[mean(err1(ij,:))+mean(err2(ij,:))]/(Alen+Mlen);%计算误码率
end
...............................................
01_192m

4.完整MATLAB

V

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

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

相关文章

virtio vring原理

vring原理 在 virtio 设备上进行批量数据传输的机制被称为 virtqueue 。每个设备可以拥有零个或多个 virtqueue ,当 Driver 想要向设备发送数据时,它会填充 Descriptor Table 中的一项(或将几项链接在一起),并将描述符…

圣诞树拼图游戏unity制作

2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 一、前言 提示:使用unity来制作一个拼图游戏,图片便是圣诞树。 二、创意名 圣诞树拼图游戏 三、效果展示 圣诞树拼图游戏最终效果。 游戏中效果如图: 游戏拼图完成后效果如图&am…

vue实现随机生成分享海报(内容动态)

大家好,我是雄雄。 前言 昨天写了篇文章:自己整理的vue实现生成分享海报(含二维码),看着网上的没实现 主要是介绍了如何使用vue实现,动态分享内容为海报,且附带二维码,扫描二维码能…

shell脚本四剑客之awk详解

文章目录awk的介绍awk能够干什么awk的格式工作原理:记录和域内建变量的用法1. FS2. OFS3.RS4. ORS5. NF6. NRBEGIN 和END语句块常见案例1. 使用NR行号提取ip2. 打印UID小于10的账号名称和UID信息3. 数学运算4. AWK打印硬盘设备名称,默认以空格为分割&…

UDP用户数据报协议(计算机网络-运输层)

目录 UDP 概述 UDP 的主要特点 UDP 的问题 UDP的多路分用模型 UDP 的首部格式 UDP 概述 用户数据报协议(User Datagram Protocol,UDP) UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能 虽…

计算机网络——网络层功能概述

网络层 网络层的主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层的传输单位成为数据报。 数据报是一组比较长的数据,分组则是将数据报划分为不同的片段 网络层的第一个功能:路由的选择和分组的转发。 网络层…

python词云图词频统计

目录 一:安装必要的库 二:数据分析 条形图可视化 三:数据分析 词频统计 词云图可视化 一:安装必要的库 导入必要的库 import collections # 词频统计库 import os import re # 正则表达式库 import urllib.error # 指定url&…

WRF进阶:antro_emiss工具处理全球大气人为排放(EDGRA_HTTPs)/人为排放清单前处理

本内容视频版讲解:全球人为排放处理 介绍 一般人为数据的排放前处理使用pre_chen_src工具,然而pre_chen_src处理后的文件并不是WRF所能读取的文件格式,需要使用onvert_emiss.exe,生成WRF需要的人为排放的nc数据。 在WRF-chem3.6…

煤矿视频监控分析检测 yolo

煤矿视频监控分析检测利用python基于yolo深度学习架构,对现场画面进行实时分析检测。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN),用于实时进行目标检测。该算法将单个神经网络应用于完整的图像,然后将图像…

单片机——LED点阵

1. 基本介绍 LED点阵 LED点阵是由发光二极管排列组成的显示器件,通常应用较多的是88点阵,然后通过多个88点阵组成不同分辨率的LED点阵显示屏,如4个88组成的1616点阵 8*8点阵由64个LED组成,每个LED是放置在行线和列线的交叉点上…

LVGL学习笔记3 - 样式Style

目录 1. 初始化样式 2. 设置样式 3. 添加和移除样式 4. 验证 5. 状态(State) 6. 部分(Parts) 样式用于设置对象的外观,比如颜色等属性,存储在 lv_style_t 变量中,这个变量应该是static…

不写一行代码(二):实现安卓基于PWM的LED设备驱动

文章目录一、前言二、系列文章三、准备工作3.1 查找PWM引脚3.2 原理图:确认引脚位置3.3 PWM Controller四、查阅PWM bindings五、编写设备树节点5.1 实现节点:pwm-leds5.2 测试命令六、后语一、前言 在完成了基于GPIO的LED设备驱动的文章后,…

3天学会撰写软件发明专利——3.生命周期

“无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。”。 一、专利授权生命周期…

4.1 协程:协程基础

1.协程 协程,又称微线程。协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机, 我们可…

C++类和对象概念及实现详解(上篇)

文章目录 一、什么是类和对象呢? 1、类的引入 2、类的定义 3、类的访问限定符 4、类对象的储存方式 5、this指针的特性 二、类的六个默认成员函数详解 1、构造函数 2、析构函数 3、未完待续…… 标题:类和对象概念及实现详解(上篇&#xff0…

vue3 antd table表格——自定义单元格样式(二)利用rowClassName给table添加行样式

vue3 antd项目实战——修改ant design vue组件中table表格的默认样式(二)知识调用场景复现修改table表格的行样式一、rowClassName添加行样式二、表格的不可控操作写在最后知识调用 文章中可能会用到的知识链接vue3ant design vuets实战【ant-design-vu…

从头开始用树莓派做一个NAS【最新超详细教程】

一、概述 众所周知在办公的时候两台电脑之间经常倒数据资料非常麻烦,而NAS可以很好的解决这个问题。树莓派搭建NAS方法有很多,我们之前也拍过直接用Samba、FTP这些来实现NAS功能,但是这些需要你会在命令行进行配置,而且对于新手用…

【Linux】Linux权限管理

目录一.Linux用户权限1.权限的概念2.用户分类3.切换用户4.sudo提权二.Linux文件权限1.文件属性2.文件类型3.文件角色划分4.基本权限三.文件访问权限的相关设置方法1.chmod2.chown3.charp4.file5.权限拒绝四.默认权限umask五.目录的权限六.粘滞位1.背景2.准备3.情况4.粘滞位一.L…

初识Docker:(1)什么是docker

初识Docker:(1)什么是docker项目部署的问题Docker总结项目部署的问题 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题开发、测试、生产环境有差…

git revert以及revert的恢复

一:背景与方案 在工作中遇见的这样的场景: 场景一: 已经merge到待发布的版本分支中的功能需要移除当前的分支,改在后续版本发布,示意图如下,展示的是commit序列, 这里想要移除的功能是commi…