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