- PVSM.RU - https://www.pvsm.ru -
Всем доброго времени суток!
Рассматривая тему пространственного разнесения [1], вскользь мы уже коснулись и вопросов замираний в каналах связи, и того, почему такие замирания возникают. Сегодня предлагаю поговорить об этой теме чуть более подробно.
Более того, в сегодняшней статье мы слегка коснемся вопросов пространственной корреляции MIMO каналов, которые традиционно разбираются в рамках курса профессора Хаардта [2] "Mobile communications" (CSP [3]), и поэтому, я думаю, такая публикация тем более не будет лишней. И, отмечу сразу, круг вопросов не ограничивается применением только в мобильной связи.
В общем, всех интересующихся тематикой беспроводной связи приглашаю к прочтению, и поехали!

Colin Slater "Fading memories" [4]. Да, сводить всё к одной теме — это, наверное, перебор, однако какой-то такой метафорой, я думаю, можно представить, что именно получает приемник после всевозможных воздействий на изначальный, информационный сигнал...
Начнем с того, что в природе существуют, так называемые, мультипликативные помехи, влияющие на принимаемую мощность сигнала — замирания (fading).
В англоязычной литературе термин fading предполагает некое влияние, которое, как бы, заставляет наш сигнал затухать, "увядать".
В нашей литературе обычно применяется именно термин замирания, а связано это в первую очередь с эффектом многолучевого распространения: если электромагнитная волна встретится со своей копией, порожденной отражениями и дифракцией, и они будут при этом в противофазе, то волны друг друга погасят — то есть канал, как бы, замрет.
Замирания бывают быстрыми и медленными (fast and slow fading).

Рис. 1. Колебания мощности сигнала в беспроводных каналах в зависимости от расстояния. Средний уровень потерь распространения монотонно увеличивается с увеличением дальности. Локальные отклонения могут возникать из-за макроскопических (медленных) и микроскопических (быстрых) замираний [1, с.14 ].
Сознаюсь сразу, сегодня с медленными замираниями мы работать не будем, а вот про быстрые поговорим достаточно подробно.

Рис. 2. Иллюстрация эффекта затенения: [5] как правило, медленные замирания возникают из-за затенений (shadowing). Для моделирования обыкновенно выбирают логнормальное распределение [6].
Желающих почитать немного про медленные замирания, в частности, и про то, как можно моделировать спутниковые каналы, в целом, приглашаю сюда [7]!
Быстрые замирания возникают, как правило, по двум основным причинам:
Последние очень заметны для спутниковых систем [8], однако не всегда учитываются для случаев наземной связи из-за того, что базовые станции в данном случае, как правило, неподвижны.

Рис. 3. Иллюстрация причин возникновения замираний. [9] Отдельное внимание уделено рассеиванию (scattering) и дифракции: именно в силу данных явлений и формируется, так называемое, многолучевое распространение, приводящее к межсимвольным помехам (ISI [10]).
Но и это ещё далеко не всё.
Выше мы разделили наши помехи по характеру возникновения. Однако, помехи можно разделить ещё и по характеру воздействия на передаваемый сигнал. И здесь нам понадобится понятие избирательности канала.
Приведем небольшую классификацию по [1, c. 14-18]. Итак, быстрые замирания могут быть:
Что подразумевает последний термин, объясним от обратного.
Во-первых, если ширина спектра передаваемого нами сигнала превышает когерентную полосу пропускания канала [11], то говорят, что мы имеем дело с частотно-селективными помехами.

Рис. 4. Иллюстрация когерентной полосы пропускания. Думаю, не будет моветоном прикрепить иллюстраций из Вики [12], если сам их туда и добавил.
Обратите внимание на переменную Delay spread — разброс задержек. Именно этот разброс в задержках между приходом разных копий одного сигнала и измеряют, когда определяют характеристики того или иного реального канала.

Рис. 5. Типичный профиль задержки (мощности) — средняя мощность как функция задержки
.[1, c. 16]

Рис. 6. Частотно-селективный, но не избирательно по времени канал [13].
Например, для S-диапазона (интересовался, когда искал информацию по спутниковым системам) Bc = 0.5 – 2 МГц (Kanatas A. G., Panagopoulos A. D. (ed.). Radio Wave Propagation and Channel Modeling for Earth–Space Systems. – CRC Press, 2016. — с. 107).
Это очень хорошо ложится на бодовую скорость [14], например, такого спутникового приёмопередатчика [15]. И здесь нет ничего удивительного: символьная скорость линейных типов цифровой модуляции (PSK, QAM, OFDM) совпадает с полосой, занимаемой сигналом (см. Goldsmith A. Wireless communications [16]. – Stanford University, 2004. — c. 140, 326), а значит хорошо бы попробовать втиснуть сигнал в когерентную полосу по максимуму. Частоты — это всё-таки ценный ресурс.
Во-вторых, если длина нашего сигнала во временной области превышает время когерентности канала [17], то говорят, что мы имеем дело с каналом, изменяющимся во времени.

Рис. 7. Иллюстрация времени когерентности. Обратите внимание, здесь максимальная допплеровская частота отражает движение самого мобильного терминала.

Рис. 8. Почти неизбирательный по частоте, но избирательный по времени: быстро затухающий канал. [13]

Избирательный по времени и частотно-избирательный канал Рэлея; "Реальная ситуация." [13]

Источник иллюстрации: Gigabit wireless technology [18]
Ну, и соответственно, если нам удастся каким-то чудом избежать вышеперечисленного, то мы придем к самомому простому и удобному случаю — к плоским замираниям [1, c. 14-18][2, c. 88-92].
Возможно, вы где-то уже встречали подобный способ моделирования плоского канала с замираниями:
h = (1/sqrt(2))*(randn(size(msg)) + 1j*randn(size(msg))) % MatLab / Octave
Что подразумевается:
То есть вот он собственной персоной: плоский канал с замираниями. Для случая без прямой видимости канал ещё называют к тому же рэлеевским.

Лорд Рэлей
Из чего проистекает такая модель?
Во-первых, говоря о современных системах связи, мы скорее всего подразумеваем работу с цифровыми сигналами. Более того, работаем мы к тому же скорее всего c квадратурными типами модуляции (I/Q [20]), то есть с сигналами комплексными.
Рис. 9. Сигнальное созвездие QPSK [21]. Полярные координаты, единичная окружность. Например, символу 11 будет соответствовать координата равная примерно 0,7+0,7i.
Логично предположить воздействие помех как на реальную, так и на мнимую составляющую. Более того, стоит вслед за Центральной предельной теоремой [22] предположить также гауссовский характер таких воздействий. Запишем формулой [1, с. 39]:
где и
— это нормально распределенные случайные величины.
Чаще всего используется модель с нормированной средней мощностью:
А значит .
Если мы предполагаем независимые искажения составляющих огибающей сигнала: как синфазной (I — In-phase), так и квадратурной (Q — Quadrature), — то положение числа, на которое будет перемножен изначальный символ (отсюда мультипликативность помехи), в полярных координатах может быть вычислено буквально по теореме Пифагора:
где и
— это тоже нормально распределенные случайные величины. Для нормированной мощности
,
.
И вот перед нами формула рэлеевского процесса [23]! [2, с.78 ]

Рис. 10. Гауссовские генераторы в квадратуре для моделирования замираний Рэлея и Райса [3, p.125]. О райсовском канале мы поговорим чуть позже.
Лично мне очень нравится пример с пристрелкой пушек [24]: если две пушки будут стрелять перпендикулярно друг другу достаточное количество раз, то для каждой по отдельности распределение попаданий будет нормальным, а общее распределение попаданий рэлеевским. Вот что-то подобное происходит и с нашими помехами.
Если мы рассматриваем самый простой случай без какой-либо пространственной корреляции между каналами (допустим, что у нас есть несколько пространственных каналов — MIMO), то говорят, что канал пространственно белый — spatially white. А так как все каналы независимы, то, следовательно, и "генерить" можно не только случайные величины, распределенные по Рэлею, но и вектора, и матрицы, и тензоры [3, c.125 ]:
где и
— это матрицы, состоящие из нормально распределенных значений.
Тут всё довольно просто: как мы уже сказали выше, мощность отклика канала должна быть равна единице, т.е.:
Именно за этим и вводят масштабирующий фактор
Продемонстрируем (возьмем python для разнообразия):
import numpy as np
N = int(1e6)
h = 1/np.sqrt(2)*(np.random.randn(N) + 1j*np.random.randn(N))
P = np.mean(h*np.conj(h))
print(np.round(P))
>>> (1+0j)
Подытожим:
Помеховая компонента при отсутствии прямой видимости может быть описана как n-мерный вектор (в зависимости от размерности канала) независимых идентично распределенных (IID — independent identically distributed) по комплексному гауссовскому закону с круговой симметрией и нулевым мат. ожиданием (ZMCSCG — zero-mean circularly symmetric complex Gaussian) чисел.
Целая скороговорка!
Хорошо, а если прямая видимость всё-таки есть? Может быть, есть на этот счет уже готовые математические модели?
Конечно, есть! Например такая [4] [25], обобщенная для случая с несколькими приёмными и передающими антеннами (MIMO):
где — это собственно и есть комплексная огибающая импульсной характеристики канала (или канальная матрица, если речь идет о MIMO [26]),
— это компонента прямой видимости (Line-of-Sight), а
— это компонента отсутствия прямой видимости (Non-Line-of-Sight), её мы уже рассмотрели.
Обратите внимание на переменную K — это так называемый райсовский фактор (Rician/Ricean factor) — отношение мощности прямого пути распространения к мощности всех остальных путей. Именно он определяет, насколько сильно будет подвержен наш канал помехам.

Слагаемое представляет из себя математическое ожидание канальной матрицы и моделироваться может исходя из геометрии приемных и передающих массивов антенн:
где и
— это отклики приемного и передающего массивов антенн сответственно, а
и
— это углы прихода (angle of arrival) и отправки (angle of departure).
Множители, в общем-то, симметричные и могут быть описаны общей формулой:
где — это расстояние между антеннами (antenna spacing) в длинах волн, а
— это количество элементов в массиве антенн (рис. 11).

Рис. 11. Геометрия линейного массива [28]. Для случая Massive MIMO геометрия, конечно, будет уже другой. Подробнее об этом прочитать можно, например, здесь [29].
Ну, а теперь, когда модель хоть сколько-то разобрана, можно её и упростить.
Для случая SISO (самого простого и базового) формула (5) примет вид:
ибо для 1 передающей и 1 приемной антенны .
И это, как нельзя кстати, подходит под модель на рисунке 12.

Рис. 12. Схема формирования канала Райса (узкополосный сигнал) [3, p.127]. При канал будет всё больше вырождаться в Рэлеевский. Поэтому я и употребил слово почти в подзаголовке: канал Рэлея — это частный случай канала Райса. Это также видно из формулы (5).
Поясним: — это райсовский масштабирующий параметр (Rician scale parameter), а
— это параметр не-центральности (Rician noncentrality parameter).
Вообще, для целей моделирования Doppler Spread чаще всего вам скорее всего будет попадаться модель Джейкса (Jakes model, U-shape), основанная на технике суммирования синусоид (Sum-of-sinusoids Technique) [30]. Теоретически спектр такой модели выглядит так:

Спектральная плотность мощности рэлеевского затухания с максимальным доплеровским сдвигом 10 Гц. Источник [31].
Однако, в жизни, судя по [1, c. 15] такой спектр выглядит всё-таки менее ровно:

Типичный доплеровский (энергетический) спектр — средняя мощность как функция доплеровской частоты
[1, c. 15].
Ожидания… Реальность.
Например такая для модели Corazza-Vatalaro (С&V):

см. Fontan, F. P., Mayo, A., Marote, D., Prieto‐Cerdeira, R., Mariño, P., Machado, F., & Riera, N. (2008). Review of generative models for the narrowband land mobile satellite propagation channel. International Journal of Satellite Communications and Networking, 26(4), 291-316.
Но это уже совсем другая история...
Сверим полученные выкладки с чем-нибудь уже проверенным. Например, со специальными функциями MatLab [32].
Для проверки модели со своей стороны сгенерируем случайное двоичное сообщение (длина сообщения равна 100000 бит ), промодулируем его с помощью M-PSK [21] или M-QAM [33], поэлементно умножим с процессом замираний, добавим белый гауссовский шум, выровняем эквалайзером Zero-Forcing, демодулируем и рассчитаем битовую ошибку (BER — bit error ratio) (рис. 13). Количество испытаний будет равным ста.

Рис.13. Блок-схема модели системы передачи, которую опишет наш скрипт.
И скачать здесь [34].
clear all; close all; clc
EbNo = 0:40;
K = [4.0; 0.6];
M = [4; 8; 16; 64; 256]; %Positions of modulation (M-PSK or M-QAM)
for k = 1:length(K)
for m = 1:length(M)
message = randi([0, M(m)-1], 100000, 1);
if M(m) >= 16
mod_msg = qammod(message, M(m), pi/4, 'gray');
ric_ber(:, m, k) = berfading(EbNo,'qam',M(m),1,K(k));
else
mod_msg = pskmod(message, M(m), pi/4, 'gray');
ric_ber(:, m, k) = berfading(EbNo, 'psk', M(m), 1, K(k));
end
Es = mean(abs(mod_msg).^2);
No = Es./((10.^(EbNo./10))*log2(M(m)));
h = sqrt( K(k)/(K(k)+1)) +...
sqrt( 1/(K(k)+1))*(1/sqrt(2))*(randn(size(mod_msg))...
+ 1j*randn(size(mod_msg)));
ric_msg = mod_msg.*h; % Rician flat fading
for c = 1:100
for jj = 1:length(EbNo)
noisy_mod = ric_msg +...
sqrt(No(jj)/2)*(randn(size(mod_msg))+...
1j*randn(size(mod_msg))); %AWGN
noisy_mod = noisy_mod ./ h; % zero-forcing equalization
if M(m) >= 16
demod_msg = qamdemod(noisy_mod, M(m), pi/4, 'gray');
else
demod_msg = pskdemod(noisy_mod, M(m), pi/4, 'gray');
end
[number,BER(c,jj)] = biterr(message,demod_msg);
end
end
sum_BER(:,m, k) = sum(BER)./c;
end
end
figure(1)
semilogy(EbNo, sum_BER(:,1,1), 'b-o', EbNo, sum_BER(:,2,1), 'r-o',...
EbNo, sum_BER(:,3,1), 'g-o', EbNo, sum_BER(:,4,1), 'c-o',...
EbNo, sum_BER(:,5,1), 'k-o',...
EbNo, ric_ber(:,1,1), 'b-', EbNo, ric_ber(:,2,1), 'r-',...
EbNo, ric_ber(:,3,1), 'g-', EbNo, ric_ber(:,4,1), 'c-',...
EbNo, ric_ber(:,5,1), 'k-', 'LineWidth', 1.5)
title('Rician model (K = 4.0)')
legend('QPSK(simulated)', '8-PSK(simulated)',...
'16-QAM(simulated)', '64-QAM(simulated)' ,'256-QAM(simulated)',...
'QPSK(theory)','8-PSK(theory)', '16-QAM(theory)',...
'64-QAM(theory)' ,'256-QAM(theory)','location','best')
xlabel('EbNo (dB)')
ylabel('BER')
grid on
figure(2)
semilogy(EbNo, sum_BER(:,1,2), 'b-o', EbNo, sum_BER(:,2,2), 'r-o',...
EbNo, sum_BER(:,3,2), 'g-o', EbNo, sum_BER(:,4,2), 'c-o',...
EbNo, sum_BER(:,5,2), 'k-o',...
EbNo, ric_ber(:,1,2), 'b-', EbNo, ric_ber(:,2,2), 'r-',...
EbNo, ric_ber(:,3,2), 'g-', EbNo,ric_ber(:,4,2), 'c-',...
EbNo, ric_ber(:,5,2), 'k-','LineWidth', 1.5)
title('Rician model (K = 0.6)')
legend('QPSK(simulated)', '8-PSK(simulated)',...
'16-QAM(simulated)', '64-QAM(simulated)' ,'256-QAM(simulated)',...
'QPSK(theory)','8-PSK(theory)',...
'16-QAM(theory)', '64-QAM(theory)' ,'256-QAM(theory)','location','best')
xlabel('EbNo (dB)')
ylabel('BER')
grid on
Должно получится что-то такое:

Рис. 14. Коэффициент битовых ошибок для рассмотренной модели (К = 4.0).

Fig. 15. Коэффициент битовых ошибок для рассмотренной модели (K = 0.6).
Не без огрехов, конечно (из-за ограниченности по количеству усреднений), но в целом, видно, что работает!
Для этого примем одно допущение: канальная матрица будет состоять из независимых путей распространения, каждый из которых будет распределен по Райсу.
При каких условиях это возможно?
Как мы уже отметили выше, IID компонента может быть сгенерирована в любой размерности. Значит любой пространственно белый канал MIMO без прямой видимости может быть смоделирован как сэт скольки-то (зависит от размерности канала) SISO каналов.
С компонентой прямой видимости немного сложнее — нужно ведь учитывать положение решеток.
Рассмотрим формулу (5): если наша матрица компонента прямой видимости будет состоять только из единиц , то кажется, что райсовская составляющая тоже становится пространственно белой.
Чтобы к этому подойти, запишем компоненту прямой видимости более подробно, чем в формуле (6):
Бросается в глаза, что если , то матрица и будет состоять из одних единиц. Геометрически это ситуация, когда два массива элементов ориентированы строго друг на друга:

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

Для моделирования возьмем за основу схему Аламоути [1]. Получится должно что-то такое:

Дополненный скрипт можно скачать здесь [35].
Well done.
А теперь, завершая наше путешествие в мир статистических выкладок, давайте немного приблизимся к реальности.
Выше мы рассматривали случай, когда компонента отсутствия прямой видимости была пространственно белой. Однако, от реальных систем стоит всё-таки ждать некоторой корреляции между антеннами, а значит и между путями распространения ЭМ волны.
Введем новую переменную — матрицу пространственной корреляции:
где vec обозначает операцию векторизации [36]. Влиять эта матрица будет, кстати, только на компоненту отсутствия прямой видимости [37], и значит в данном случае .

Резонно предположить, что в реальной жизни сначала через замеры определяют данную матрицу, а уже потом используют её для моделирования:
где — это IID матрица (w означает spatially white).
Обратите внимание, возведение матрицы в степень — это не возведение в степень каждого её элемента. Следовательно в нашем случае в MatLab нельзя использовать функцию sqrt(). Использовать нужно оператор ^.
В случае Python нельзя использовать оператор возведения в степень ** и метод sqrt популярного модуля numpy. Использовать нужно метод fractional_matrix_power [38] модуля scipy.
Если приёмник и передатчик достаточно независимы друг от друга, как на рисунке 16, то можно применить модель Кронекера [1, c. 40], чтобы уменьшить количество коэффициентов для расчета:
где обозначает произведение Кронекера [39].

Леопольд Кронекер
Отдельно рассмотрим составляющие выражение матрицы:
и
— это количество приемных и передающих антенн соответственно. Обе матрицы являются положительными полуопределенными [40] (positive semi-definite) Эрмитовыми [41] (Hermitian) матрицами. Более того, ранг матрицы
ограничен значением
.

Рис. 16.
Модель рассеивателей в случае некоррелирующих приёмника и передатчика. Зеленые точки означают рассеиватели, синие и красные — приемник и передатчик. Прошу простить за качество, это скриншот из одной из домашек из Ильменау
Канальную матрицу в данном случае можно записать как:
Однако, для ситуаций, как, например, на рисунке 17, использовать придется всё же полную корреляционную матрицу (см. формулу (9)).

Рис. 17. Модель рассеивателей в случае коррелирующих приёмника и передатчика. Зеленые точки означают рассеиватели, синие и красные — приемник и передатчик.
Дабы закрепить узнанное и посмотреть, насколько осложнит жизнь пространственная корреляция, давайте попробуем посчитать пропускную способность каналов. Например, для MIMO 2x2.
Для этого возьмем следующие случаи (имеем в виду всё те же плоские замирания, для простоты также рассмотрим только рэлеевский канал):
1) Пространственно белый канал;
2) Модель Кронекера с относительно слабой корреляцией:
3) Модель Кронекера с относительно сильной корреляцией:
Использовать в данной части будем Python 3.4. Функцию для расчета пропускной способности возьмем из одной из моих прошлых публикаций [26].
import numpy as np
from numpy import linalg as LA
import matplotlib.pyplot as plt
from scipy.linalg import fractional_matrix_power
def openloop_capacity(H_chan, SNR_dB):
SNR = 10**(SNR_dB/10)
Mt = np.shape(H_chan)[1]
H_sq = np.dot(H_chan,np.matrix(H_chan, dtype=complex).H)
lambdas = LA.eigvals(H_sq)
lambdas = np.sort(lambdas)[::-1]
c = 0
for eig in lambdas:
c = c + np.log2(1 + SNR*eig/Mt)
return np.real(c)
Определим основные параметры системы:
Mr = 2 # number of receive antennas
Mt = 2 # number of transmit antennas
Rr1 = np.array([[1., .4], [.4, 1.]]) # case 1
Rr2 = np.array([[1., .6], [.6, 1.]]) # case 2
Rt1 = np.array([[1., .4], [.4, 1.]]) # case 1
Rt2 = np.array([[1., .6], [.6, 1.]]) # case 2
Rr1_half = fractional_matrix_power(Rr1, 0.5)
Rr2_half = fractional_matrix_power(Rr2, 0.5)
Rt1_half = fractional_matrix_power(Rt1, 0.5)
Rt1_half_H = np.conj(Rt1_half).T
Rt2_half = fractional_matrix_power(Rt2, 0.5)
Rt2_half_H = np.conj(Rt2_half).T
Запускаем моделирование:
counter = 1000
SNR_dBs = [i for i in range(1, 21)]
C_MIMO_uncorr = np.empty((len(SNR_dBs), counter))
C_MIMO_kron1 = np.empty((len(SNR_dBs), counter))
C_MIMO_kron2 = np.empty((len(SNR_dBs), counter))
C_MIMO_kron3 = np.empty((len(SNR_dBs), counter))
C_MIMO_kron4 = np.empty((len(SNR_dBs), counter))
for c in range(counter):
H_uncorr = (np.random.randn(Mr,Mt) + 1j*np.random.randn(Mr, Mt))/np.sqrt(2)
H_kron1 = np.dot(Rr1_half, np.dot(H_uncorr, Rt1_half_H))
H_kron2 = np.dot(Rr2_half, np.dot(H_uncorr, Rt2_half_H))
for idx, SNR_dB in enumerate(SNR_dBs):
C_MIMO_uncorr[idx, c] = openloop_capacity(H_uncorr, SNR_dB)
C_MIMO_kron1[idx, c] = openloop_capacity(H_kron1, SNR_dB)
C_MIMO_kron2[idx, c] = openloop_capacity(H_kron2, SNR_dB)
C_MIMO_uncorr_erg = np.mean(C_MIMO_uncorr, axis=1)
C_MIMO_kron1_erg = np.mean(C_MIMO_kron1, axis=1)
C_MIMO_kron2_erg = np.mean(C_MIMO_kron2, axis=1)
plt.figure(figsize=(7, 5), dpi=100)
plt.plot(SNR_dBs, C_MIMO_uncorr_erg,'g-o', label='Uncorrelated')
plt.plot(SNR_dBs, C_MIMO_kron1_erg, 'm-o', label='Kronecker model, case 1')
plt.plot(SNR_dBs, C_MIMO_kron2_erg, 'r-o', label='Kronecker model, case 2')
plt.title("Rayleigh flat fading (MIMO 2x2)")
plt.xlabel('SNR (dB)')
plt.ylabel('Ergodic capacity (bps/Hz)')
plt.legend()
plt.minorticks_on()
plt.grid(which='major')
plt.grid(which='minor', linestyle=':')
plt.show()
Получаем:

Рис. 18. Кривые пропускной способности для указанных экспериментов.
Что ж: разница хоть и не критическая, но есть!
Возможно, кто-то из читателей мог заметить, что почти всё, что мы рассмотрели сегодня (подробно и вскользь) весьма неплохо ложится на параметры матлабовского объекта comm.MIMOChannel [42]. Мне этот факт кажется очень важным:
Ну, и теперь, если вы будете использовать подобные блоки, то, надеюсь, будет более понятным зачем и какие ручки нужно крутить.
Всех благодарю за внимание!
P.S.
Добавлю сюда ссылку на слайды [43] по теме от Reiner S. Thomä [44] (Ильменау), по которым он нам читал в своё время лекции. Думаю, кому-нибудь пригодится!
Автор: Владимир Фадеев
Источник [45]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/325835
Ссылки в тексте:
[1] пространственного разнесения: https://habr.com/ru/post/452494/
[2] профессора Хаардта: https://scholar.google.de/citations?user=h8MtCjsAAAAJ&hl=de
[3] CSP: https://griat.kai.ru/communications-and-signal-processing
[4] "Fading memories": https://theartonlinegallery.com/art/fading-memories-7/
[5] Иллюстрация эффекта затенения:: http://www.cesbio.ups-tlse.fr/multitemp/?m=201905
[6] логнормальное распределение: https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%BD%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5
[7] сюда: https://github.com/kirlf/cubesats/blob/master/statistical_model.md
[8] спутниковых систем: https://en.wikipedia.org/wiki/Doppler_effect#Satellite_communication
[9] Иллюстрация причин возникновения замираний.: https://www.tu-ilmenau.de/fileadmin/public/iks/files/lehre/UMTS/02_CCS-Mobicom-basics-ws18.pdf
[10] ISI: https://en.wikipedia.org/wiki/Intersymbol_interference
[11] когерентную полосу пропускания канала: https://en.wikipedia.org/wiki/Coherence_bandwidth
[12] Вики: https://en.wikipedia.org/wiki/Fading
[13] Частотно-селективный, но не избирательно по времени канал: http://www.wirelesscommunication.nl/reference/chaptr03/channel.htm
[14] бодовую скорость: https://en.wikipedia.org/wiki/Symbol_rate
[15] такого спутникового приёмопередатчика: https://gomspace.com/shop/subsystems/communication-(1)/nanocom-sr2000.aspx
[16] Goldsmith A. Wireless communications: https://web.cs.ucdavis.edu/~liu/289I/Material/book-goldsmith.pdf
[17] время когерентности канала: https://en.wikipedia.org/wiki/Coherence_time
[18] Gigabit wireless technology: http://www.mobile.ecei.tohoku.ac.jp/adachi-e/topics/main.html
[19] в данной статье (рис. 4).: https://habr.com/ru/post/455497/
[20] I/Q: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BD%D1%84%D0%B0%D0%B7%D0%BD%D0%B0%D1%8F_%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%BD%D0%B0%D1%8F_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5_%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D0%B0
[21] QPSK: https://en.wikipedia.org/wiki/Phase-shift_keying
[22] Центральной предельной теоремой: https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0
[23] рэлеевского процесса: https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%A0%D1%8D%D0%BB%D0%B5%D1%8F
[24] пристрелкой пушек: http://bookre.org/reader?file=478465&pg=78
[25] [4]: https://pdfs.semanticscholar.org/0fdd/65ed5a4e90f2ee44a1a0a8caa3f7021ce9f9.pdf
[26] MIMO: https://habr.com/ru/post/448570/
[27] Stephen O. "Steve" Rice: https://www.nae.edu/28678/Mr-Stephen-O-Rice
[28] Геометрия линейного массива: http://www.waves.toronto.edu/prof/svhum/ece422/notes/15-arrays2.pdf
[29] здесь: https://www.researchgate.net/publication/275064008_Massive_MIMO_channel_models_A_survey
[30] технике суммирования синусоид (Sum-of-sinusoids Technique): https://www.mathworks.com/help/comm/ug/fading-channels.html#bq5zk36
[31] Источник: https://en.wikipedia.org/wiki/File:Rayleigh_Doppler_PSD_10Hz.svg
[32] специальными функциями MatLab: https://www.mathworks.com/help/comm/ref/berfading.html
[33] M-QAM: https://en.wikipedia.org/wiki/Quadrature_amplitude_modulation
[34] здесь: https://www.mathworks.com/matlabcentral/fileexchange/70559-m-psk-and-m-qam-over-rician-flat-fading-channel?s_tid=prof_contriblnk
[35] здесь: https://www.mathworks.com/matlabcentral/fileexchange/70557-alamouti-over-rician-flat-fading-channel?s_tid=prof_contriblnk
[36] векторизации: https://en.wikipedia.org/wiki/Vectorization_(mathematics)
[37] компоненту отсутствия прямой видимости: http://www.merl.com/publications/docs/TR2005-062.pdf
[38] fractional_matrix_power: https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.fractional_matrix_power.html#scipy.linalg.fractional_matrix_power
[39] произведение Кронекера: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%9A%D1%80%D0%BE%D0%BD%D0%B5%D0%BA%D0%B5%D1%80%D0%B0
[40] положительными полуопределенными: https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%BE%D0%B6%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0#%D0%9E%D1%82%D1%80%D0%B8%D1%86%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%B0%D1%8F,_%D0%BF%D0%BE%D0%BB%D1%83%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B8_%D0%BD%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B
[41] Эрмитовыми: https://ru.wikipedia.org/wiki/%D0%AD%D1%80%D0%BC%D0%B8%D1%82%D0%BE%D0%B2%D0%B0_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0
[42] comm.MIMOChannel: https://www.mathworks.com/help/comm/ref/comm.mimochannel-system-object.html?s_tid=doc_ta
[43] ссылку на слайды: https://yadi.sk/d/xlWo5bobco8PSw
[44] Reiner S. Thomä: https://scholar.google.ru/citations?user=SOG3MzUAAAAJ&hl=ru
[45] Источник: https://habr.com/ru/post/447172/?utm_source=habrahabr&utm_medium=rss&utm_campaign=447172
Нажмите здесь для печати.