• 宝马汇国际

    全国服务热线 400-033-8869
    语言
    关于宝马汇国际

    Company Profile

    MIMO是如何实现可靠性的提升?

    09-06

    宝马汇国际都知道MIMO有两种方式,分集和复用;MIMO也有两个显著的特点——可靠性与有效性。

    MIMO采用多进多出的天线,来实现可靠性和有效性的提升。公网采用MIMO用来提升通信容量——有效性,专网通信用MIMO来提升系统的可靠性。

    今天主要来讲一讲MIMO是如何实现可靠性的提升。

    分集

    分集是在多条独立通道传输相同的数据,接收端顺利获得分集合并技术,抵抗信道衰落,提升信道传输的可靠性。

    图片

    复用

    复用是在多条独立信道传输不同的数据,提升频谱利用率,增加信道容量。

    图片

    在分析分集提升抗干扰性之前,宝马汇国际先分析两个概念。

    瑞利衰落和多径效应。

    瑞利衰落是指信号在传输过程中,由于多普勒效应的影响使得信号的相位和幅度发生快速变化,这种变化被称为快速衰落。

    图片

    多径衰落则是指信号在传输过程中经历了多条路径,不同路径的信号到达时相位不同引起信号的叠加干扰,导致信号的衰落。

    图片

    瑞利衰落和多径衰落都是无线传输中不可避免的信道影响,但它们的产生机理不同。多径衰落是由于信号在传播时经历了不同路径的干涉导致信号衰减,而瑞利衰落则是由于信号振荡和干扰造成的快速衰落。在环境较为简单的开放区域,多径效应相对弱,主要由瑞利衰落引起;而在城市、山地等复杂环境下,多径效应很强,是主要的信道衰落因子。

    瑞利衰落和多径衰落都衰落的一种,衰落具有独立性,即只要接收距离足够大,则接收到的信号衰落不具备相关性,这就是MIMO分集抗衰落的设计原则。

    在信道中,使用1根发射天线n根接收天线,发送信号顺利获得n个不同的路径。分集在天线设计时,都会保证各个天线之间无相关,所以天线之间的衰落是独立的,可以取得最大的分集增益为n,平均误差概率可以减小 。

    图片

    对于发射分集技术来说,同样是利用多条路径的增益来提高系统的可靠性。在一个具有m根发射天线n根接收天线的系统中,如果天线对之间的路径增益是独立均匀分布的瑞利衰落,可以取得的最大分集增益为mn。

    图片

    对比仿真

    图片

    从仿真结果看,2T1R的效果好于1T1R,1T2R的效果好于2T1R,这也能理解4G手机是1发多收,而不是多发1收。

    附仿真代码

    frmLen = 100;       % frame length
    numPackets = 1000;    % number of packets
    EbNo = 0:2:20;      % Eb/No varying to 20 dB
    N = 2;           % maximum number of Tx antennas
    M = 2;           % maximum number of Rx antennas
    % Create comm.BPSKModulator and comm.BPSKDemodulator System objects(TM)
    P = 2; % modulation order
    bpskMod = comm.BPSKModulator;
    bpskDemod = comm.BPSKDemodulator('OutputDataType','double');
    % Create comm.OSTBCEncoder and comm.OSTBCCombiner System objects
    ostbcEnc = comm.OSTBCEncoder;
    ostbcComb = comm.OSTBCCombiner;
    awgn1Rx = comm.AWGNChannel(...
    'NoiseMethod', 'Signal to noise ratio (Eb/No)', ...
    'SignalPower', 1);
    awgn2Rx = clone(awgn1Rx);
    errorCalc1 = comm.ErrorRate;
    errorCalc2 = comm.ErrorRate;
    errorCalc3 = comm.ErrorRate;
    s = rng(55408);
    H = zeros(frmLen, N, M);
    ber_noDiver  = zeros(3,length(EbNo));
    ber_Alamouti = zeros(3,length(EbNo));
    ber_MaxRatio = zeros(3,length(EbNo));
    ber_thy2     = zeros(1,length(EbNo));
    fig = figure;
    grid on;
    ax = fig.CurrentAxes;
    hold(ax,'on');
    ax.YScale = 'log';
    xlim(ax,[EbNo(1), EbNo(end)]);
    ylim(ax,[1e-4 1]);
    xlabel(ax,'Eb/No (dB)');
    ylabel(ax,'BER');
    fig.NumberTitle = 'off';
    fig.Renderer = 'zbuffer';
    fig.Name = 'Transmit vs. Receive Diversity';
    title(ax,'Transmit vs. Receive Diversity');
    set(fig, 'DefaultLegendAutoUpdate', 'off');
    fig.Position = figposition([15 50 25 30]);
    for idx = 1:length(EbNo)
    reset(errorCalc1);
    reset(errorCalc2);
    reset(errorCalc3);
    % Set the EbNo property of the AWGNChannel System objects
    awgn1Rx.EbNo = EbNo(idx);
    awgn2Rx.EbNo = EbNo(idx);
    % Loop over the number of packets
    for packetIdx = 1:numPackets
    % Generate data vector per frame
    data = randi([0 P-1], frmLen, 1);
    % Modulate data
    modData = bpskMod(data);
    % Alamouti Space-Time Block Encoder
    encData = ostbcEnc(modData);
    % Create the Rayleigh distributed channel response matrix
    %   for two transmit and two receive antennas
    H(1:N:end, :, :) = (randn(frmLen/2, N, M) + ...
    1i*randn(frmLen/2, N, M))/sqrt(2);
    %   assume held constant for 2 symbol periods
    H(2:N:end, :, :) = H(1:N:end, :, :);
    % Extract part of H to represent the 1x1, 2x1 and 1x2 channels
    H11 = H(:,1,1);
    H21 = H(:,:,1)/sqrt(2);
    H12 = squeeze(H(:,1,:));
    % Pass through the channels
    chanOut11 = H11 .* modData;
    chanOut21 = sum(H21.* encData, 2);
    chanOut12 = H12 .* repmat(modData, 1, 2);
    % Add AWGN
    rxSig11 = awgn1Rx(chanOut11);
    rxSig21 = awgn1Rx(chanOut21);
    rxSig12 = awgn2Rx(chanOut12);
    % Alamouti Space-Time Block Combiner
    decData = ostbcComb(rxSig21, H21);
    % ML Detector (minimum Euclidean distance)
    demod11 = bpskDemod(rxSig11.*conj(H11));
    demod21 = bpskDemod(decData);
    demod12 = bpskDemod(sum(rxSig12.*conj(H12), 2));
    % Calculate and update BER for current EbNo value
    %   for uncoded 1x1 system
    ber_noDiver(:,idx)  = errorCalc1(data, demod11);
    %   for Alamouti coded 2x1 system
    ber_Alamouti(:,idx) = errorCalc2(data, demod21);
    %   for Maximal-ratio combined 1x2 system
    ber_MaxRatio(:,idx) = errorCalc3(data, demod12);
    end % end of FOR loop for numPackets
    % Calculate theoretical second-order diversity BER for current EbNo
    ber_thy2(idx) = berfading(EbNo(idx), 'psk', 2, 2);
    % Plot results
    semilogy(ax,EbNo(1:idx), ber_noDiver(1,1:idx), 'r*', ...
    EbNo(1:idx), ber_Alamouti(1,1:idx), 'go', ...
    EbNo(1:idx), ber_MaxRatio(1,1:idx), 'bs', ...
    EbNo(1:idx), ber_thy2(1:idx), 'm');
    legend(ax,'No Diversity (1Tx, 1Rx)', 'Alamouti (2Tx, 1Rx)',...
    'Maximal-Ratio Combining (1Tx, 2Rx)', ...
    'Theoretical 2nd-Order Diversity');
    drawnow;
    end  % end of for loop for EbNo
    % Perform curve fitting and replot the results
    fitBER11 = berfit(EbNo, ber_noDiver(1,:));
    fitBER21 = berfit(EbNo, ber_Alamouti(1,:));
    fitBER12 = berfit(EbNo, ber_MaxRatio(1,:));
    semilogy(ax,EbNo, fitBER11, 'r', EbNo, fitBER21, 'g', EbNo, fitBER12, 'b');
    hold(ax,'off');
    % Restore default stream
    rng(s);

    总结

    当下对MIMO的主流应用主要在增加通信容量上。在专网领域,通信地形的复杂,采用MIMO分集技术可以提升通信系统的通信可靠性。


    友情链接:
    三北智测 丹阳华神 西安电子科大 华东理工 哈尔滨电子 航空无线电 海希工业 辽宁仪表 九华信 科威智能 蓝波视讯 行业资讯

    联系宝马汇国际

    关注宝马汇国际

    • 关注微博
    • 关注微信
    • 关注公众号
    • 关注抖音号
    Copyright © 2011-2023  北京宝马汇国际科技有限公司 版权所有 京ICP备2023011416号-1 All Rights Reserved