空间分集自由空间光通信的误码率性能分析

需积分: 10 0 下载量 201 浏览量 更新于2024-09-14 收藏 198KB PDF 举报
"这篇文章主要探讨了自由空间光学(Free-Space Optical, FSO)通信中采用空间分集技术来改善误码率(Bit Error Rate, BER)性能的问题。在FSO通信系统中,大气湍流会导致严重的信号衰落,从而降低链路性能。通过部署多个激光发射器/接收器实现空间分集,可以有效缓解这一问题,提高错误率性能。作者们分析了在对数正态大气湍流衰落信道中,FSO链接采用空间分集时的BER性能,考虑了发射器/接收器孔径之间独立和相关的通道情况。分析基于对相关对数正态随机变量求和的近似方法,得出的BER解析表达式对于理解和优化FSO通信系统的设计具有重要意义。" 在自由空间光学通信中,光信号在大气中传播时会受到各种因素的影响,特别是大气湍流。这种湍流会导致光束的折射指数随机变化,进而引起信号强度的快变衰落,严重影响通信质量。为了提高系统的稳定性和可靠性,空间分集技术被引入到FSO通信中。通过使用多个发射器和接收器,可以在不同的空间位置捕获信号,利用它们之间的相关性来抵消由于大气湍流引起的衰落。 在该研究中,作者们分析了两种情况下的BER性能:一是发射器/接收器孔径之间的通道独立,即各接收端接收到的信号互不影响;二是通道相关,意味着不同接收端接收到的信号之间存在一定的关联性。通过对数正态模型来描述大气湍流的影响,他们推导出了一种近似计算相关对数正态随机变量之和的方法,以此来估算FSO链路的BER。 这个近似方法有助于简化复杂的数学分析,使我们能够更好地理解在特定条件下,如何通过调整空间分集参数(如接收器的数量、间距等)来优化系统的BER性能。此外,这些结果对于设计和优化FSO通信系统,尤其是在恶劣的环境条件或长距离通信场景下,提供了重要的理论指导。 "BER Performance of Free-Space Optical Transmission with Spatial Diversity" 这篇文章深入探讨了FSO通信中的关键挑战——大气湍流导致的信号衰落,并提出了解决方案,即利用空间分集技术提高通信的可靠性。通过精确的数学模型和分析,文章为实际应用中的系统设计提供了宝贵的参考。

clear all; Tx_n = 2; Rx_n = 2; %---------------SNR vector------------- SNRindB = 2:1:10; SNR = 10.^(SNRindB/10); %------------modulation----------------- L = 20000; BitPerSymbol = 2; s0 = randi(1,1,L); h_1 = pskmod('M',2^BitPerSymbol,'gray','InputType','Bit'); s = modulate(h_1,s0.').'; %-------------seperation-------------- s1 = zeros(Tx_n,length(s)); for ii = 1:Tx_n:(length(s)-1) %stbc s1(1,ii) = s(ii); s1(2,ii) = s(ii+1); s1(1,ii+1) = conj(s(ii+1)); s1(2,ii+1) = -conj(s(ii)); end L1 = length(s1(1,:)); %----------noise and channel-------------- S = zeros(2, 2); S1 = zeros(1, L1); rx = zeros(L, 1); BER = zeros(length(SNR), 1); SER = zeros(length(SNR), 1); for ii = 1:length(SNR) sigma = 1/(sqrt(2*SNR(ii))); for iii = 1:2:L1-1 noise = sigma*(randn(Rx_n,1)+1i*randn(Rx_n,1)); H = sqrt(0.5)*(randn(Rx_n, Tx_n) + 1i*randn(Rx_n, Tx_n)); %----------add noise------------------------ R1 = H*s1(:,iii)+noise; %接收信号1,Rx_n * 1 R2 = H*s1(:,iii+1)+noise; %接收信号2,Rx_n * 1 %----------receive MMSE------------------- hh = H(:,1).*conj(H(:,1)) + H(:,2).*conj(H(:,2)); S_t1 = conj(H(:,1)).*R1-H(:,2).*conj(R2); S_t2 = conj(H(:,2)).*R1+H(:,1).*conj(R2); S(:,1) = S_t1./hh; S(:,2) = S_t2./hh; for si = 1:1:Rx_n S1(1,iii) = S1(1,iii) + S(si,1); S1(1,iii+1) = S1(1,iii+1) + S(si,2); end S1(1,iii) = S1(1,iii)/Rx_n; S1(1,iii+1) = S1(1,iii+1)/Rx_n; end h_2 = modem.pskdemod('M', 2^BitPerSymbol,'SymbolOrder','gray', 'OutputType', 'Bit'); rx = demodulate(h_2,S1.'); remod = modulate(h_1, rx); %------------calculate ber--------------------------- SER(ii,:) = symerr(remod.',s)/L1; BER(ii,:) = biterr(rx.',s0)/L; end semilogy(SNRindB,BER,'g-^'); hold on; semilogy(SNRindB,SER,'m-^'); grid on; xlabel('SNR(dB)'); ylabel('BER'); title('STBC SNR-BER curve'); legend('BER 2x1','SER 2x1','BER 2x2','SER 2x2');代码有误,帮忙修改一下

2023-05-30 上传