您现在的位置:首页 >> 通信 >> 内容

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

时间:2022/12/25 16:02:22 点击:

  核心提示:01_192m包括程序操作录像+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y5qbmZpt

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览




3.算法概述

        可见光通信技术(Visible Light Communication,VLC)是指利用可见光波段的光作为信息载体,在空气中直接传输光信号的通信方式。可见光通信技术绿色低碳、可实现近乎零耗能通信,还可有效避免无线电通信电磁信号泄露等弱点,快速构建抗干扰、抗截获的安全信息空间。未来,可见光通信也将与WiFi、蜂窝网络(3G、4G、甚至5G)等通信技术交互融合,在物联网、智慧城市(家庭)、航空、航海、地铁、高铁、室内导航和井下作业等领域带来创新应用和价值体验。

       可见光无线通信是以LED为载体,在不影响正常照明前提下,将信息通过调制器进行调制后,将数字信号载频到LED灯具上,利用LED发出快速的光脉冲无线传输信息。接收端利用光电转换器(PD)接收含有信息的可见光,并转换为电信号,然后进行滤波、整形和放大,并从中解调出相应的模拟信息。如果需要双向传输(即下行和上行)或多路传输,则需要进行频谱区分或多路取样调制,并加入同步识别信号和同步检测信号。对于可见光通信基站,通过信号源连接线将各个基站并联连接,在只有下行信号传输系统中,无“信息接收部分”,只能通过“信息发射部分”将光信号下行,由带有光电接收器/信号解调器的电脑或手机接收。

4.部分源码

............................

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

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168