Канал Diagonalize MIMO
[___] = diagbfweights(
также задает шумовое распределение, chanmat
,Pt
, Pn
,powdistoption
)powdistoption
, через все передающие антенны.
Вычислите матрицу канала для передачи 4 на 4 массив URA и получения 5 на 5 массив URA. Примите, что три рассеивателя случайным образом расположены в указанном угловом диапазоне. Интервал элемента для обоих массивов является половиной длины волны. Получить массив является 500 длинами волн далеко от массива передачи вдоль оси X. Ограничьте угловой промежуток для передачи и получения массивов. Diagonalize матрица канала, чтобы вычислить предварительное кодирование и объединение весов.
Задайте массив передачи 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);
Diagonalize матрица канала.
[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
Вычислите матрицу канала для передачи 4 на 4 массив URA и получения 5 на 5 массив URA. Примите, что три рассеивателя случайным образом расположены в указанном угловом диапазоне. Интервалы элемента для обоих массивов являются половиной длины волны. Получить массив является 500 длинами волн далеко вдоль оси X. Diagonalize матрица канала, чтобы вычислить предварительное кодирование и объединение весов и распределенной степени.
Задайте массив передачи 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);
Diagonalize матрица канала и возвращают распределенную степень.
[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. Diagonalize матрица канала, чтобы вычислить предварительное кодирование и объединение весов, распределенной степени и усилений подканала.
Задайте передачу с 11 элементами массив ULA. Интервал элемента находится в модулях длины волны.
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);
Diagonalize матрица канала и возвращают усиления подканала.
[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. Создайте матрицу канала с двумя поднесущими. Diagonalize матрица канала, чтобы вычислить предварительное кодирование и объединение весов, распределенной степени, усилений подканала и полной суммы канала.
Задайте передачу с 11 элементами массив ULA. Интервал элемента находится в модулях длины волны.
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;
Diagonalize матрица канала и возвращают усиления подканала.
[wp,wc,P,G,C] = diagbfweights(chmat); disp(C.')
9.5466 9.3605
Вычислите матрицу канала для передачи с 11 элементами массив ULA и получения с 7 элементами массив ULA. Задайте общую переданную степень в 1 000. Примите, что существует пять случайным образом расположенных рассеивателей. Интервалы элемента для обоих массивов являются половиной длины волны. Получить массив является 500 длинами волн далеко от массива передачи вдоль оси X. Создайте матрицу канала с двумя поднесущими. Diagonalize матрица канала, чтобы вычислить предварительное кодирование и объединение весов, распределенной степени, усилений подканала и полной суммы канала.
Задайте передачу с 11 элементами массив ULA. Интервал элемента находится в модулях длины волны.
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;
Diagonalize матрица канала и возвращают распределенную степень для обеих поднесущих.
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. Задайте общую переданную степень в 1 000 и шумовую мощность передающей антенны в 100. Примите, что существует пять случайным образом расположенных рассеивателей. Интервалы элемента для обоих массивов являются половиной длины волны. Получить массив является 500 длинами волн далеко от массива передачи вдоль оси X. Создайте матрицу канала с двумя поднесущими. Diagonalize матрица канала, чтобы вычислить предварительное кодирование и объединение весов, распределенной степени, усилений подканала и полной суммы канала.
Задайте передачу с 11 элементами массив ULA. Интервал элемента находится в модулях длины волны.
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;
Diagonalize матрица канала и возвращают усиление для обеих поднесущих.
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. Задайте общую переданную степень в 1 000 и шумовую мощность передающей антенны в 100. Задайте переданное распределение электроэнергии как 'Waterfill'
. Примите, что существует пять случайным образом расположенных рассеивателей. Интервал элемента для обоих массивов является половиной длины волны. Получить массив является 500 длинами волн далеко от массива передачи вдоль оси X. Создайте матрицу канала с двумя поднесущими. Diagonalize матрица канала, чтобы вычислить предварительное кодирование и объединение весов, распределенной степени, усилений подканала и полной суммы канала.
Задайте передачу с 11 элементами массив ULA. Интервал элемента находится в модулях длины волны.
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;
Diagonalize матрица канала и возвращают усиление для обеих поднесущих.
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
— Общая степень передачи
(значение по умолчанию) | положительная скалярная величина | L - вектор элемента из положительных значенийОбщая степень передачи в виде положительной скалярной величины или L - вектор элемента из положительных значений. Pt
имеет те же модули как общая распределенная степень, P
.
Типы данных: double
Pn
— Шумовая мощность
(значение по умолчанию) | положительная скалярная величинаШумовая мощность в каждой приемной антенне в виде положительной скалярной величины. Pn
имеет те же модули как общая степень передачи, Pt
.
Типы данных: double
powdistoption
— Опция распределения электроэнергии'Uniform'
(значение по умолчанию) | 'Waterfill'
Опция распределения электроэнергии в виде 'Uniform'
или 'Waterfill'
. Когда powdistoption
'Uniform'
, степень передачи равномерно распределяется через все каналы Nt. Если powdistoption
'Waterfill'
, степень передачи распределяется на каналах Nt с помощью waterfill алгоритма.
Типы данных: 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] Пустошь, R. Младший и др. “Обзор Методов Обработки сигналов для Волны Миллиметра Системы MIMO”, arXiv.org:1512.03007 [cs.IT], 2015.
[2] Се, D. и П. Висванэт, основные принципы радиосвязей, Кембриджа: Издательство Кембриджского университета, 2005.
[3] Paulraj, A. Введение в пространственно-временные радиосвязи, Кембридж: Издательство Кембриджского университета, 2003.
Указания и ограничения по применению:
Не поддерживает входные параметры переменного размера.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.