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

需积分: 9 3 下载量 84 浏览量 更新于2024-09-21 收藏 192KB PDF 举报
"这篇论文研究了自由空间光学(Free-Space Optical, FSO)通信在大气湍流导致的衰落信道中的误码率(Bit Error Rate, BER)性能,特别是利用空间分集技术来改善这种性能。" FSO通信是一种成本效益高、带宽大的接入技术,近年来随着商业化成功而受到越来越多的关注。然而,大气湍流是FSO链路中的主要损耗因素,会严重降低链接性能。为了解决这个问题并提升错误率性能,可以采用空间分集策略,即部署多个激光发射器/接收器。 在这篇发表于2007年《IEEE无线通信 Transactions on Wireless Communications》卷6期8月刊的文章中,作者S. Mohammad Navidpour, Murat Uysal和Mohsen Kavehrad深入探讨了具有空间分集的FSO链路的误码率表现。他们分析了在对数正态大气湍流衰落信道中的BER性能,考虑了发射器/接收器孔径之间独立和相关的信道条件。 分析建立在相关对数正态随机变量之和的近似基础上,从而推导出BER的表达式。这种近似方法有助于理解和预测在不同大气条件和空间配置下,FSO系统可能出现的性能变化。通过这种方式,作者们为设计更健壮、适应性强的FSO通信系统提供了理论支持。 FSO通信系统利用光束在大气中传输信息,但大气湍流会引起光束的随机扩散和强度变化,导致信号质量下降。空间分集通过在不同的地理位置布置多个发射和接收单元,利用这些单元间可能存在的独立性,来减少由大气湍流引起的衰落影响。当多个接收器接收到的信号是独立的,它们可以合并以提高信噪比,从而降低BER。 文章的贡献在于为FSO通信在实际应用中如何利用空间分集技术提供理论分析,这对于优化系统设计、预测性能并制定有效的纠错策略至关重要。这不仅有助于提升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 上传