MIMO spatial diversity: Аламоути, DET и прочее пространственное разнесение

в 17:39, , рубрики: griat-csp, Matlab, MIMO, Алгоритмы, математика, сотовая связь

Чтобы передать сообщение от базовой станции мобильному устройству (и наоборот), электромагнитной волне приходится преодолевать значительное количество препон: отражения, преломления, рассеивания, затенения, доплеровские смещения частот и так далее. Во-первых, все эти воздействия принято называть мультипликативными (от англ. multiplication — умножение) — по математической модели таких воздействий. А, во-вторых, можно собрать под общим термином замирания (fading).

От стандарта к стандарту, от поколения к поколению, от технологии к технологии ученые и инженеры бились и бьются над проблемой нивелирования этих замираний (fading mitigation).

И некоторые решения нашли широкое распространение. Скажем больше: почти все из них, так или иначе, связаны с понятием разнесения (diversity).

MIMO spatial diversity: Аламоути, DET и прочее пространственное разнесение - 1

Источник иллюстрации (нет, это не реклама, просто удачное сочетание нужного термина и кота).

Пример таких решений:

  1. Frequency hopping — против частотно-селективных замираний;
  2. Оценка и выравнивание канала (channel estimation and equalization) через обратную связь — GSM, для подавления изменений во временной области;
  3. Расширение спектра (UMTS);
  4. Пилотные сигналы (начиная с UMTS) по нисходящему каналу (Down-link) и сопровождение сигнала (signal tracking) по восходящему каналу (Up-link) — для подавления изменений во временной области;
  5. OFDM — LTE, против частотно-селективных замираний;
  6. Временное разнесение (помехоустойчивое кодирование);
  7. Поляризационное разнесение (на стороне передатчика) + Сумматоры (combiners, на стороне приёмника);
  8. Пространственное разнесение.

Последнюю из упомянутых техник мы рассмотрим сегодня в рамках ещё одной темы по MIMO.

Space diversity order и array gain

Первое.

Есть такое понятие — порядок пространственного разнесения (space diversity order): если одна и та же информация может быть собрана с разных направлений, то надежда восстановить её правильно увеличится. В качестве примера из жизни, можно представить сбор информации об одном и том же событии от независимых друг от друга источников-информаторов. В радиосвязи этот порядок мы можем увеличить, в том числе, применяя MISO, SIMO или MIMO.

Теоретический предел такого разнесения M_TM_R, где M_T — количество передающих антенн, а M_R — количество приёмных антенн. Запомним это.

div

Рис.1. Стабильность канала, вызванная увеличением порядка пространственного разнесения. При значениях M_TM_R to infty канал полностью стабилизируется и превратится в канал без замираний (AWGN) [1, p.101].

Второе.

Используя SIMO, MIMO и даже MISO (в случае известного канала), можно получить, так называемое, усиление массива (array gain). Это означает, что применение нескольких приемных антенн и/или правильное распределение энергии на передающей стороне позволяет увеличить отношение сигнал/шум (SNR) — а значит снизит количество ошибок.

Порядки разнесения и усиления массива для различных конфигураций можно вывести аналитически [1, c. 86 — 100] и свести в одну таблицу [1, c. 101] и для случая, когда канал неизвестен (CU — Channel Unknown), и для случая, когда канал известен (CK — Channel Known) на стороне передатчика.

Конфигурация Diversity order Array gain
SIMO (CU, Rx-MRC) M_R M_R
SIMO (CK, Rx-MRC) M_R M_R
MISO (CU, OSTBC) M_T 1
MISO (CK, Tx-MRC) M_T M_T
MIMO (CU, OSTBC) M_TM_R M_R
MIMO (CK, DET) M_TM_R M_TM_R

Окей, пусть широкими мазками, но теперь у нас есть хоть какое-то понимание теоретических аспектов подавления замираний. Следующий вопрос — как достичь этих теоретических пределов? Какие существуют техники активации рассмотренных выигрышей?

Решение №1. Пространственно-временные коды

Одним из самых популярных классов решений по пространственному разнесению является, пожалуй, класс пространственно-временных кодов (space-time codes). Например, знакомый, я думаю, многим метод Аламоути (пример блочного кода) [2, c. 40-46]:

AlamF

где c_i при i=1,2 — это некоторые входные символы, t_i при i=1,2 — это временные отсчеты (time slots), а mathbf{S} — это, собственно, матрица кодирования.

Схема Аламоути ортогональна [1, с.93-95, 97-98] и, что самое важное, не требует информации о состоянии канала (Channel State Information).

Математическое описание передачи кодированного по схеме Аламоути сигнала, а также несколько примеров моделирования этой техники в MatLab можно найти в моём репозитории. Интересующимся добро пожаловать!

Однако, как вы можете заметить, схема Аламоути — это случай, когда у нас есть только две передающие антенны (M_T=2).
Но не стоит падать духом раньше времени: доступны, конечно, и другие варианты, просто называются они немного иначе. Например, согласно [3] можно применить такие схемы кодирования:

Tarokh

Рис. 2. Схемы передачи для случаев M_T=3 и M_T=4 [2].

И ещё много других вариантов: лишь бы отвечали условиям ортогональности.

Для таких кодов требуются, собственно, те же процедуры для кодирования и декодирования, что и для кода Аламоути. Поэтому объединяются они обычно под общим термином ортогональные пространственно-временные блочные коды (OSTBC — Ortogonal Space-Time Block Codes).

Достаточно большое внимание этому классу кодов уделено в материалах "Introduction to MIMO Systems" от компании MathWorks. Всем заинтересованным настоятельно советую ознакомиться!

Какова цена?

Как это видно из схемы передачи, мы хоть и передаём символы параллельно, но тратим на это несколько временных слотов. Следовательно, мы жертвуем пропускной способностью (как минимум, недополучаем её). Для схемы Аламоути такой компромисс симметричен: задействуем 2 антенны и 2 временных слота (будто бы используем SISO с точки зрения пропускной способности). Другие схемы могут влиять на скорость передачи ещё сильнее.

Решение №2. DET: Dominant Eigenmode Transmission

Хорошо, для предыдущего класса техник знания о канале нам важны не были. А что если эти знания у нас всё-таки есть? Нет ли в таком случае более подходящих техник?

В одной из предыдущих моих статей мы обсуждали, что, имея на руках знания о состоянии канала, мы можем применять различные методы обработки сигналов, чтобы увеличить пропускную способность. Этот же принцип работает и для повышения помехоустойчивости.

Наверное, многие слышали про метод MRC и многие знают, что метод этот как нельзя кстати подходит для случая SIMO, когда на передаче антенна хоть и одна, но на приёме их все-таки много, а значит есть из чего комбинировать.

Но, наверное, уже меньшее количество читателей сталкивалось с MRC на передающей стороне (Tx-MRC) [1, c. 95,96], и ещё меньше с технологией DET (Dominant Eigenmode Transmission) [1, c. 98-100]. Исправим!

Для начала рассмотрим общий случай MIMO канала и последний из названных методов — DET.

В чём суть:

  • Если у передатчика имеется матрица mathbf{H}, то её можно обработать.
  • Например, разложить её через SVD: mathbf{H}=mathbf{U} mathbf{Sigma} mathbf{V}^H, получив таким образом несколько матриц определенного свойства.
  • Эти свойства можно использовать для оптимизации передачи, например, применив предварительное кодирование (pre-coding).

Введём некоторый пре-кодирующий вектор:

underset{M_Ttimes1} {mathbf{w}}=sqrt{M_T}underset{M_Ttimes1} {mathbf{v}_1}

где mathbf{v}_1 — это первый (доминирующий, так сказать) вектор матрицы mathbf{V}.

Более того, мы можем записать и вектор пост-обработки (post-processing):

underset{M_Rtimes1} {mathbf{g}}=underset{M_Rtimes1} {mathbf{u}_1}

где mathbf{u}_1 — это первый вектор матрицы mathbf{U}.

Переопределим модель принятого сигнала (см. тему пропускной способности):

{z}=underset{1times M_R} {mathbf{g}^H} underset{M_Rtimes 1} {mathbf{y}}=mathbf{g}^H sqrt{frac{E_s}{M_T}}mathbf{H}mathbf{w}s + mathbf{g}^Hmathbf{n}=sqrt{E_s}mathbf{u}_1^H mathbf{H} mathbf{v}_1 s + hat{mathbf{n}}=sqrt{E_s} sigma_{max} s + hat{mathbf{n}}

Вуаля! Магия линейной алгебры выделила среди всех путей распространения самый выгодный и всю энергию направила туда. Фактически, перед нами линейный алгоритм диаграммообразования (beamforming).

Ценой рассмотренного подхода всё также, как и в случае OSTBC, является ограничение пропускной способности. Правда, происходит это теперь сугубо в пространственной области.

Почему же метод содержит в своём названии собственные числа (eigen values), если разговаривали мы только о сингулярных?

Потому что собственные числа (мощности путей распространения — замираний) могут быть напрямую выведены из сингулярных чисел (амплитуды замираний):

mathbf{R}_{mathbf{HH}^H}=mathbf{HH}^H=mathbf{Q} mathbf{Lambda} mathbf{Q}^H=mathbf{Q} begin{bmatrix}    lambda_{max}       &  &  &  &\           & . &  & & \           &  & . & & \&  &  & . & \&  &  & & lambda_{min}\end{bmatrix} mathbf{Q}^H

Хорошо, с DET более или менее понятно — что с Tx-MRC?

С ним всё ещё проще — это частный случай DET, и сейчас мы это докажем.

Для Tx-MRC в литературе предложен следующий вектор пре-кодирования:

mathbf{w}=sqrt{M_T} frac{mathbf{h}^H}{sqrt{||mathbf{h}||^2_F}}

Держим в голове, что квадрат нормы Фробениуса равен собственному числу и, соответственно, квадрату сингулярного числа ||mathbf{h}||^2_F=lambda_{max}=sigma^2_{max} (в случае SIMO и MISO).

Тогда снова переопределим модель принятого сигнала, только уже для MISO случая:

y=sqrt{frac{E_s}{M_T}} mathbf{h} mathbf{w} s + mathbf{n}=sqrt{frac{E_s}{M_T}} mathbf{h} sqrt{M_T} frac{mathbf{h}^H}{sqrt{||mathbf{h}||^2_F}} s + mathbf{n}}=frac{sqrt{E_s}}{sigma_{max}} mathbf{h} mathbf{h}^H  s + mathbf{n}}=frac{sqrt{E_s}}{sigma_{max}} ||mathbf{h}||_F^2 s + mathbf{n}}=frac{sqrt{E_s}}{sigma_{max}} lambda_{max} s + mathbf{n}}=sqrt{E_s} sigma_{max} s + mathbf{n}}

Что и требовалось доказать.

Заметьте, теперь мы говорим не просто о разнесении сигналов на передающей стороне и комбинировании их на стороне приёмной, как это было в случае с OSTBC. Теперь речь идет об оптимальном распределении энергии. А значит и значения array gain в данном случае выше, чем у OSTBC.

Теперь, когда все слова сказаны, попробуем промоделировать наши техники.

Моделирование

Сегодня я немного считерил: для моделирования OSTBC использованы готовые объекты из Communication Toolbox (MatLab R2014a — уж какой был):

Для модуляции и демодуляции (и подсчета битовой ошибки — BER) были использованы уже не объекты, а функции. Их аналоги есть в пакете communications Octave.

Исходные коды можно посмотреть здесь.

clear all; close all; clc

snapshots = 100000;
EbNo = 0:15;
M = 2; % modulation order (BPSK)
Mt = 2; % num. of Tx antennas
Mr = [1; 2]; % num. of Rx antennas

ostbcEnc = comm.OSTBCEncoder('NumTransmitAntennas', Mt); % for Alamouti

ric_ber = zeros(length(EbNo), length(M), length(Mr));
sum_BER_alam = zeros(length(EbNo), length(M), length(Mr));
sum_BER_det = zeros(length(EbNo), length(M), length(Mr));

for mr = 1:length(Mr)
    ostbcComb = comm.OSTBCCombiner('NumTransmitAntennas', Mt, 'NumReceiveAntennas', Mr(mr));
    H = zeros(Mr(mr), Mt, snapshots);
    alam_fad_msg = zeros(snapshots, Mr(mr));
        for m = 1:length(M)

            ric_ber(:,m,mr) = berfading(EbNo, 'psk', M(m), Mr(mr)*Mt, 0);

            snr = EbNo+10*log10(log2(M(m))); % Signal-to-Noise Ratio
            message = randi([0, M(m)-1],100000,1);

            mod_msg = pskmod(message, M(m), 0, 'gray');
            Es = mean(abs(mod_msg).^2); % symbol energy

            alam_msg = step(ostbcEnc, mod_msg); % OSTBC encoding

            % Channel
            h = (1/sqrt(2))*(randn(Mr(mr),Mt,snapshots/Mt)...
            + 1j*randn(Mr(mr),Mt, snapshots/Mt)); % Rayleigh flat fading

            % Channel is stable during to time-slots: 
            H(:,:,1:2:end-1) = h;
            H(:,:,2:2:end) = h;

            pathGainself = permute(H,[3,2,1]);

            % Transmit through the channel (Alamouti):
            for q = 1:snapshots;  
                alam_fad_msg(q,:) = (sqrt(Es/Mt)*H(:,:,q)*alam_msg(q,:).').';
            end

            % DET:
            sigmas = zeros(length(mod_msg), 1);
            for hi = 1:length(mod_msg)
                [U, Sigma, Vh] = svd(H(:, :, hi));
                sigmas(hi) = Sigma(1, 1);
            end

            det_fad_msg = mod_msg.*sigmas;

            No = Es./((10.^(EbNo./10))*log2(M(m))); % Noise spectrum density
            for c = 1:500
                for jj = 1:length(EbNo)
                    alam_noisy_msg = alam_fad_msg + ... 
                        sqrt(No(jj)/2)*(randn(size(alam_fad_msg)) + ...
                        1j*randn(size(alam_fad_msg))); % AWGN 
                    alam_decodeData = step(ostbcComb,alam_noisy_msg,pathGainself); %OSTBC combining
                    alam_demod_msg = pskdemod(alam_decodeData, M(m), 0, 'gray'); % demodulation
                    [number,alam_BER(c,jj)] = biterr(message, alam_demod_msg); % BER

                    det_noisy_msg = det_fad_msg+ ... 
                        sqrt(No(jj)/2)*(randn(size(mod_msg)) + ...
                        1j*randn(size(mod_msg))); %AWGN 
                    det_decodeData = det_noisy_msg./sigmas; % Zero-Forcing equalization
                    det_demod_msg = pskdemod(det_decodeData, M(m), 0, 'gray'); % demodulation
                    [number,det_BER(c,jj)] = biterr(message, det_demod_msg); % BER
                end
            end
            sum_BER_alam(:,m, mr) = sum(alam_BER)./c;
            sum_BER_det(:,m, mr) = sum(det_BER)./c;
        end
end

figure(1)

semilogy(EbNo, sum_BER_alam(:, 1, 1), 'b-o', ...
         EbNo, sum_BER_det(:,1,1), 'b->',...
         EbNo, ric_ber(:,1,1), 'b-',...
         EbNo, sum_BER_alam(:, 1, 2), 'r-o', ...
         EbNo, sum_BER_det(:,1,2), 'r->',...
         EbNo, ric_ber(:,1,2), 'r-',...
         'LineWidth', 1.5)
title('BPSK (Rayleigh flat fading)')
legend('Alamouti (2x1)','Tx-MRC (2x1)','2-nd order diversity', ...
        'Alamouti (2x2)','DET (2x2)','4-th order diversity')
xlabel('EbNo (dB)') 
ylabel('BER') 
grid on

Получиться должно что-то такое:

MIMO spatial diversity: Аламоути, DET и прочее пространственное разнесение - 41

Рис. 3. Кривые битовых / символьных ошибок для разных техник передачи (BPSK, Рэлеевский канал с плоскими замираниями). Сравните с [1, c. 96, 100].

А теперь вопрос: а где же кривая теоретической границы разнесения второго порядка?

Ответ

Всё согласно таблице: эта кривая полностью совпадает с Аламоути 2x1. В случае MIMO в игру вступает ещё и array gain, и поэтому кривые разделены.

Так или иначе, а DET (или Tx-MRC) ожидаемо опережают Аламоути по качеству.

Вот так: знание — сила!

Литература

  1. Paulraj, Arogyaswami, Rohit Nabar, and Dhananjay Gore. Introduction to space-time wireless communications. Cambridge university press, 2003.

  2. Бакулин М. Г., Варукина Л. А., Крейнделин В. Б. Технология MIMO: принципы и алгоритмы //М.: Горячая линия–Телеком. – 2014. – Т. 244.

  3. Tarokh, V., Jafarkhani, H., & Calderbank, A. R. (1999). Space-time block codes from orthogonal designs. IEEE Transactions on Information theory, 45(5), 1456-1467.

P.S.

Преподавательскому составу и студенческой братии родной специальности передаю привет!

Автор: ritchie_kyoto

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js