✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
基于QPSK和16QAM的可见光信道误码 Rate,BER)仿真可以通过以下步骤1. 选择QPSK或16QAM调制方案。
- QPSK:每个符号携带两特,具有4个相位状态(0°、90°、180°、270°)。
- 16QAM:每个符号携带4特,具有16个不同的相幅组合。
- 确定可见光通信信道模型和参数,如光强衰减、噪声功率谱密度等。这些参数可以根据实际环境或文献中的经验值进行选择。
- 生成发送端的随机比特序列,并用选定的调制方案对其进行调制,产生相应的载波信号。
- 添加光强衰减和噪声,拟光信道中的传输效果。可以根据信道模型添加路径损耗、衰落和噪声。
- 在接收端解调接收到的光信号,并使用合适的解调算法将其转换为接收到的比特序列。
- 对比接收到的比特序列与发送端的原始比特序列,计算比特错误数。
- 重复步骤3至6多次,以获得统计性能,例如BER的平围。
- 根据所得的统计结果绘制BER性能曲线,可以通过改变信道参数、调制方案或其他相关因素来比较不同条件下的BER能。
需要注意的是,在进行可见光信道误码率仿真时,除了QPSK或16QAM调制案的选择和信道模型的建立,还应考虑其他可能的影响因素,如多径干扰、光照强度变化等。此外,实际可见光通信系统中也会采用一些误码率纠正编码和调制技术来提高系统的误码性能。
⛄ 部分代码
%%
clc;clear;
M=64;N=64;Lcp=16;K1=2.6;K2=3.2;
EbN0= 1:20;
SNR = 10.^(EbN0./10);
OFDM_block = 256;
h_los = 3.065774782638313e-06;
bit_rate = 1e9;
fb = 80e6;
t = 0:1/bit_rate:13/bit_rate;
hkk =h_los.*exp(-2*pi*fb*t);
Light = hkk./sum(hkk);
for i = 1:length(SNR)
ernum =0;
for kk = 1:OFDM_block
X1 = randi([0 3],1,N);
X1=X1';
QPSK = pskmod(X1,4);
signal =QPSK;
signal(1)=0;
signal(N/2+1)= 0;
for j =N/2+2:N
signal(j)=conj(signal(N+2-j));
end
signal_ifft =sqrt(N)*ifft(signal,N);
%4
x2 =signal_ifft.*signal_ifft;
signal_K=signal_ifft + K1*sqrt(mean(x2(:)));
%5
for j =1:N
if signal_K(j)<0
signal_K(j)=0;
end
end
%6
Tx_signal =[signal_K(N-Lcp+1:N)' signal_K'];
Tx_signal = Tx_signal';
%7
⛄ 运行结果
⛄ 参考文献
[1] 谭清元,潘学文.QPSK和16QAM调制下MIMO-OFDM系统Matlab仿真实现[J].电脑知识与技术:学术版, 2019, 15(12):2.
[2] 许斌,王传鑫,崔永,等.QPSK信号多径衰落信道的建模与误码率仿真[C]//全国青年通信学术会议.2009.
[3] 王林,刘金铸,段德平.QPSK系统仿真及误码率性能分析[J].电脑知识与技术:学术版, 2011(3X):2.DOI:10.3969/j.issn.1009-3044.2011.09.012.