Диагонализация канала MIMO
[___] = diagbfweights(
также задает распределение шума, chanmat
,Pt
, Pn
,powdistoption
)powdistoption
, по всем передающим антеннам.
Вычислите матрицу канала для передающего массива URA 4 на 4 и принимающего массива URA 5 на 5. Предположим, что три рассеивателя расположены случайным образом в заданной угловой области значений. Интервалы между элементами для обоих массивов равны половине длины волны. Приёмный массив находится на расстоянии 500 длин волн от передающего массива вдоль оси X. Ограничьте угловой диапазон для передающих и приемных массивов. Диагонализируйте матрицу канала, чтобы вычислить веса предварительного кодирования и объединения.
Задайте передающий массив 4 на 4. Интервал между элементами указан в единицах длины волны.
Nt = 4; sp = 0.5; ygridtx = (0:Nt-1)*sp - (Nt-1)/2*sp; zgridtx = (0:Nt-1)*sp - (Nt-1)/2*sp; [ytx,ztx] = meshgrid(ygridtx,zgridtx); txpos = [zeros(1,Nt*Nt);ytx(:).';ztx(:).'];
Задайте принимающий массив 5 на 5. Интервал между элементами указан в единицах длины волны.
Nr = 5; sp = 0.5; ygridrx = (0:Nr-1)*sp - (Nr-1)/2*sp; zgridrx = (0:Nr-1)*sp - (Nr-1)/2*sp; [yrx,zrx] = meshgrid(ygridrx,zgridrx); rxpos = [500*ones(1,Nr*Nr);yrx(:).';zrx(:).'];
Установите угловые пределы для передачи и приема.
Пределы угла азимута для передатчика составляют − 45 ° до + 45 °.
Пределы угла азимута для приемника составляют − 75 ° до + 50 °.
Пределы угла возвышения для датчика составляют − 12 ° до + 12 °.
Пределы угла возвышения для приемника составляют − 30 ° до + 30 °.
angrange = [-45 45 -75 50; -12 12 -30 30];
Задайте три рассеивателя и создайте матрицу канала.
numscat = 3; chmat = scatteringchanmtx(txpos,rxpos,numscat,angrange);
Диагонализируйте матрицу канала.
[wp,wc] = diagbfweights(chmat); z = wp*chmat*wc;
Отображение первых четырех диагональных элементов.
z(1:4,1:4)
ans = 4×4 complex
23.3713 + 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i 0.0000 - 0.0000i
0.0000 - 0.0000i 10.7803 + 0.0000i 0.0000 - 0.0000i -0.0000 + 0.0000i
-0.0000 - 0.0000i 0.0000 - 0.0000i 1.0566 + 0.0000i -0.0000 - 0.0000i
-0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
Вычислите матрицу канала для передающего массива URA 4 на 4 и принимающего массива URA 5 на 5. Предположим, что три рассеивателя случайным образом расположены в заданной угловой области значений. Интервалы между элементами для обоих массивов равны половине длины волны. Приёмный массив находится на расстоянии 500 длин волн вдоль оси X. Диагонализируйте матрицу канала, чтобы вычислить предварительное кодирование и объединение весов и распределенной степени.
Задайте передающий массив 4 на 4. Интервал между элементами указан в единицах длины волны.
Nt = 4; sp = 0.5; ygridtx = (0:Nt-1)*sp - (Nt-1)/2*sp; zgridtx = (0:Nt-1)*sp - (Nt-1)/2*sp; [ytx,ztx] = meshgrid(ygridtx,zgridtx); txpos = [zeros(1,Nt*Nt);ytx(:).';ztx(:).'];
Задайте принимающий массив 5 на 5. Интервал между элементами указан в единицах длины волны.
Nr = 5; sp = 0.5; ygridrx = (0:Nr-1)*sp - (Nr-1)/2*sp; zgridrx = (0:Nr-1)*sp - (Nr-1)/2*sp; [yrx,zrx] = meshgrid(ygridrx,zgridrx); rxpos = [500*ones(1,Nr*Nr);yrx(:).';zrx(:).'];
Установите угловые пределы для передачи и приема.
Пределы угла азимута для передатчика составляют − 45 ° до + 45 °.
Пределы угла азимута для приемника составляют − 75 ° до + 50 °.
Пределы угла возвышения для датчика составляют − 12 ° до + 12 °.
Пределы угла возвышения для приемника составляют − 30 ° до + 30 °.
angrange = [-45 45 -75 50; -12 12 -30 30];
Задайте три рассеивателя и создайте матрицу канала.
numscat = 3; chmat = scatteringchanmtx(txpos,rxpos,numscat,angrange);
Диагонализируйте матрицу канала и верните распределенную степень.
[wp,wc,P] = diagbfweights(chmat); disp(P.')
0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625 0.0625
Вычислите матрицу канала для 11-элементного передающего массива ULA и 7-элементного принимающего массива ULA. Предположим, что существует пять случайным образом расположенных рассеивателей. Интервалы между элементами для обоих массивов равны половине длины волны. Приёмный массив находится на расстоянии 500 длин волн от передающего массива вдоль оси X. Диагонализируйте матрицу канала, чтобы вычислить веса предварительного кодирования и объединения, распределенную степень и усиления подканала.
Задайте передающий массив ULA с 11 элементами. Интервал между элементами указан в единицах длины волны.
Nt = 11; sp = 0.5; txpos = (0:Nt-1)*sp - (Nt-1)/2*sp;
Задайте 7-элементный принимающий массив ULA. Интервал между элементами указан в единицах длины волны.
Nr = 7; sp = 0.5; rxpos = (0:Nr-1)*sp - (Nr-1)/2*sp; numscat = 5; chmat = scatteringchanmtx(txpos,rxpos,numscat);
Диагонализируйте матрицу канала и верните коэффициент усиления подканала.
[wp,wc,P,G] = diagbfweights(chmat); disp(G.')
221.8345 56.8443 47.6711 0.8143 0.0000 0.0000 0.0000
Вычислите матрицу канала для 11-элементного передающего массива ULA и 7-элементного принимающего массива ULA. Предположим, что существует пять случайным образом расположенных рассеивателей. Интервалы между элементами для обоих массивов равны половине длины волны. Приёмный массив находится на расстоянии 500 длин волн от передающего массива вдоль оси X. Создайте матрицу канала с двумя поднесущими. Диагонализируйте матрицу канала, чтобы вычислить веса предварительного кодирования и объединения, распределенную степень, усиления подканала и сумму пропускной способности канала.
Задайте передающий массив ULA с 11 элементами. Интервал между элементами указан в единицах длины волны.
Nt = 11; sp = 0.5; txpos = (0:Nt-1)*sp - (Nt-1)/2*sp;
Задайте 7-элементный принимающий массив ULA. Интервал между элементами указан в единицах длины волны.
Nr = 7; sp = 0.5; rxpos = (0:Nr-1)*sp - (Nr-1)/2*sp; numscat = 5;
Создайте две поднесущие.
chmat1 = scatteringchanmtx(txpos,rxpos,numscat); chmat2 = scatteringchanmtx(txpos,rxpos,numscat); chmat(1,:,:) = chmat1; chmat(2,:,:) = chmat2;
Диагонализируйте матрицу канала и верните коэффициент усиления подканала.
[wp,wc,P,G,C] = diagbfweights(chmat); disp(C.')
9.5466 9.3605
Вычислите матрицу канала для 11-элементного передающего массива ULA и 7-элементного принимающего массива ULA. Задайте общую передаваемую степень в 1000. Предположим, что существует пять случайным образом расположенных рассеивателей. Интервалы между элементами для обоих массивов равны половине длины волны. Приёмный массив находится на расстоянии 500 длин волн от передающего массива вдоль оси X. Создайте матрицу канала с двумя поднесущими. Диагонализируйте матрицу канала, чтобы вычислить веса предварительного кодирования и объединения, распределенную степень, усиления подканала и сумму пропускной способности канала.
Задайте передающий массив ULA с 11 элементами. Интервал между элементами указан в единицах длины волны.
Nt = 11; sp = 0.5; txpos = (0:Nt-1)*sp - (Nt-1)/2*sp;
Задайте 7-элементный принимающий массив ULA. Интервал между элементами указан в единицах длины волны.
Nr = 7; sp = 0.5; rxpos = (0:Nr-1)*sp - (Nr-1)/2*sp; numscat = 5;
Создайте две поднесущие.
chmat1 = scatteringchanmtx(txpos,rxpos,numscat); chmat2 = scatteringchanmtx(txpos,rxpos,numscat); chmat(1,:,:) = chmat1; chmat(2,:,:) = chmat2;
Диагонализируйте матрицу канала и верните распределенную степень для обеих поднесущих.
Pt = 1000.0; [wp,wc,P,G,C] = diagbfweights(chmat,Pt); disp(P.')
90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091 90.9091
Вычислите матрицу канала для 11-элементного передающего массива ULA и 7-элементного принимающего массива ULA. Задайте общую степень передачи на 1000 и степень шума передающей антенны на 100. Предположим, что существует пять случайным образом расположенных рассеивателей. Интервалы между элементами для обоих массивов равны половине длины волны. Приёмный массив находится на расстоянии 500 длин волн от передающего массива вдоль оси X. Создайте матрицу канала с двумя поднесущими. Диагонализируйте матрицу канала, чтобы вычислить веса предварительного кодирования и объединения, распределенную степень, усиления подканала и сумму пропускной способности канала.
Задайте передающий массив ULA с 11 элементами. Интервал между элементами указан в единицах длины волны.
Nt = 11; sp = 0.5; txpos = (0:Nt-1)*sp - (Nt-1)/2*sp;
Задайте 7-элементный принимающий массив ULA. Интервал между элементами указан в единицах длины волны.
Nr = 7; sp = 0.5; rxpos = (0:Nr-1)*sp - (Nr-1)/2*sp; numscat = 5;
Создайте две поднесущие.
chmat1 = scatteringchanmtx(txpos,rxpos,numscat); chmat2 = scatteringchanmtx(txpos,rxpos,numscat); chmat(1,:,:) = chmat1; chmat(2,:,:) = chmat2;
Диагонализируйте матрицу канала и верните коэффициент усиления для обеих поднесущих.
Pt = 1000.0; Pn = 100.0; [wp,wc,P,G,C] = diagbfweights(chmat,Pt,Pn); disp(G.')
221.8345 119.7549 56.8443 115.9814 47.6711 24.9780 0.8143 5.1025 0.0000 0.0059 0.0000 0.0000 0.0000 0.0000
Вычислите матрицу канала для 11-элементного передающего массива ULA и 7-элементного принимающего массива ULA. Задайте общую степень передачи на 1000 и степень шума передающей антенны на 100. Задайте распределение передаваемой степени следующим 'Waterfill'
. Предположим, что существует пять случайным образом расположенных рассеивателей. Интервал между элементами для обоих массивов равен половине длины волны. Приёмный массив находится на расстоянии 500 длин волн от передающего массива вдоль оси X. Создайте матрицу канала с двумя поднесущими. Диагонализируйте матрицу канала, чтобы вычислить веса предварительного кодирования и объединения, распределенную степень, усиления подканала и сумму пропускной способности канала.
Задайте передающий массив ULA с 11 элементами. Интервал между элементами указан в единицах длины волны.
Nt = 11; sp = 0.5; txpos = (0:Nt-1)*sp - (Nt-1)/2*sp;
Задайте 7-элементный принимающий массив ULA. Интервал между элементами указан в единицах длины волны.
Nr = 7; sp = 0.5; rxpos = (0:Nr-1)*sp - (Nr-1)/2*sp; numscat = 5;
Создайте две поднесущие.
chmat1 = scatteringchanmtx(txpos,rxpos,numscat); chmat2 = scatteringchanmtx(txpos,rxpos,numscat); chmat(1,:,:) = chmat1; chmat(2,:,:) = chmat2;
Диагонализируйте матрицу канала и верните коэффициент усиления для обеих поднесущих.
Pt = 1000.0;
Pn = 100.0;
[wp,wc,P,G,C] = diagbfweights(chmat,Pt,Pn,'Waterfill');
disp(G.')
221.8345 119.7549 56.8443 115.9814 47.6711 24.9780 0.8143 5.1025 0.0000 0.0059 0.0000 0.0000 0.0000 0.0000
chanmat
- Матрица отклика каналаМатрица отклика канала, заданная как Nt -by- Nr комплексно-значимая матрица или L -by- Nt -by- Nr комплексно-значимый массив MATLAB.
Nt - количество элементов в передающем массиве.
Nr - количество элементов в принимающем массиве.
L - количество поднесущих.
Когда chanmat
- массив MATLAB, содержащий поднесущие, каждая поднесущая разлагается независимо в подканалы.
Типы данных: double
Поддержка комплексного числа: Да
Pt
- Общая степень передачи1
(по умолчанию) | положительная скалярная величина | L элемент положительных значенийПолная степень передачи, заданная как положительный скаляр или L элемент положительных значений. Pt
имеет те же модули, что и общая распределенная степень, P
.
Типы данных: double
Pn
- Мощность шума1
(по умолчанию) | положительная скалярная величинаШумовая степень в каждой приемной антенне, заданная как положительная скалярная величина. Pn
имеет те же модули, что и общая степень передачи, Pt
.
Типы данных: double
powdistoption
- Опция распределения степени'Uniform'
(по умолчанию) | 'Waterfill'
Опция распределения степени, заданная как 'Uniform'
или 'Waterfill'
. Когда powdistoption
является 'Uniform'
, степень передачи равномерно распределена по всем каналам Nt. Если powdistoption
является 'Waterfill'
, степень передачи распределена по Nt каналам с помощью алгоритма заполнения водой.
Типы данных: char
wp
- Веса предварительного кодированияВеса предварительного кодирования, возвращенные как Nt -by Nt комплексно-значимая матрица или L -by Nt -by Nt комплексно-значимый массив MATLAB. Модули безразмерны.
Типы данных: double
Поддержка комплексного числа: Да
wc
- Объединение весовОбъединение весов, возвращенное как Nr -by Nr комплексно-значимая матрица или L -by Nr -by Nr комплексно-значимый массив MATLAB. Модули безразмерны.
Типы данных: double
Поддержка комплексного числа: Да
P
- Распределенная степеньРаспределенная степень, возвращенная как вектор или матрица.
Когда chanmat
является Nt -by Nr вещественной матрицей, P
является вектором-строкой 1 байт Nt реальное значение.
Когда chanmat
является L -by- Nt -by- Nr вещественным массивом
MATLAB, P
является L -by Nt вещественной матрицей.
Силовые модули линейные.
Типы данных: double
G
- Коэффициент усиления подканалаКоэффициент усиления подканала, возвращенный как вектор или матрица.
Когда chanmat
- Nt -by Nr комплексная матрица, G
является вектором-строкой с 1-байтовым Ng комплексным значением.
Когда chanmat
является L -by- Nt -by- Nr комплексным массивом
MATLAB, G
является L -by Ng комплексно-оцененной матрицей.
Ng меньше из Nt и Nr.
Модули усиления линейны.
Типы данных: double
Поддержка комплексного числа: Да
C
- Сумма пропускной способности канала для каждой поднесущейСумма пропускной способности канала для каждой поднесущей, возвращаемая в виде скаляра или вектора.
Когда chanmat
- Nt -by Nr комплексная матрица, C
является скаляром.
Когда chanmat
является L -by- Nt -by- Nr комплексным массивом
MATLAB, C
является вектором L -by-1.
Модули измерения производительности указаны в бит/с/Гц.
Типы данных: double
Поддержка комплексного числа: Да
[1] Heath, R. Jr. et al. «Обзор методов обработки сигналов для MIMO-систем волны миллиметра», arXiv.org:1512.03007 [c.IT], 2015.
[2] Tse, D. and P. Viswanath, Fundamentals of Wireless Communications, Cambridge: Cambridge University Press, 2005.
[3] Paulraj, A. Введение в Space-Time Wireless Communications, Cambridge: Cambridge University Press, 2003.
Указания и ограничения по применению:
Не поддерживает входы переменного размера.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.