diagbfweights

Описание

пример

[wp,wc] = diagbfweights(chanmat) возвращает веса перед кодированием, wp, и объединение весов, wc, для матрицы ответа канала, chanmat. Вместе, эти веса diagonalize канал в подканалы так, чтобы матричный wp*chanmat*wc является диагональным.

пример

[wp,wc,P] = diagbfweights(chanmat) также возвращает распределенную степень, P, для каждого элемента массива передачи.

пример

[wp,wc,P,G] = diagbfweights(chanmat) также возвращает усиления поднесущей, G.

пример

[wp,wc,P,G,C] = diagbfweights(chanmat) также возвращает полную сумму канала, C.

пример

[___] = diagbfweights(chanmat,Pt) также задает общую степень передачи, Pt, и возвращенные значения любая из предыдущих комбинаций выходного аргумента.

пример

[___] = diagbfweights(chanmat,Pt, Pn) также задает шумовую мощность на передающую антенну, Pn.

пример

[___] = 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

Входные параметры

свернуть все

Матрица ответа канала в виде Nt-by-Nr матрица с комплексным знаком или L-by-Nt-by-Nr массив MATLAB с комплексным знаком.

  • Nt является числом элементов в массиве передачи.

  • Nr является числом элементов в массиве получения.

  • L является количеством поднесущих.

Когда chanmat массив MATLAB, содержащий поднесущие, каждая поднесущая анализируется независимо в подканалы.

Типы данных: double
Поддержка комплексного числа: Да

Общая степень передачи в виде положительной скалярной величины или L - вектор элемента из положительных значений. Pt имеет те же модули как общая распределенная степень, P.

Типы данных: double

Шумовая мощность в каждой приемной антенне в виде положительной скалярной величины. Pn имеет те же модули как общая степень передачи, Pt.

Типы данных: double

Опция распределения электроэнергии в виде 'Uniform' или 'Waterfill'. Когда powdistoption 'Uniform', степень передачи равномерно распределяется через все каналы Nt. Если powdistoption 'Waterfill', степень передачи распределяется на каналах Nt с помощью waterfill алгоритма.

Типы данных: char

Выходные аргументы

свернуть все

Предварительное кодирование весов, возвращенных как Nt-by-Nt матрица с комплексным знаком или L-by-Nt-by-Nt массив MATLAB с комплексным знаком. Модули являются безразмерными.

Типы данных: double
Поддержка комплексного числа: Да

Объединение весов, возвращенных как Nr-by-Nr матрица с комплексным знаком или L-by-Nr-by-Nr массив MATLAB с комплексным знаком. Модули являются безразмерными.

Типы данных: double
Поддержка комплексного числа: Да

Распределенная степень, возвращенная как вектор или матрица.

  • Когда chanmat Nt-by-Nr матрица с действительным знаком, P 1 Nt вектором-строкой с действительным знаком.

  • Когда chanmat L-by-Nt-by-Nr массив MATLAB с действительным знаком, P L-by-Nt матрица с действительным знаком.

Блоки питания линейны.

Типы данных: double

Усиления подканала, возвращенные как вектор или матрица.

  • Когда chanmat Nt-by-Nr матрица с комплексным знаком, G 1 Ng вектором-строкой с комплексным знаком.

  • Когда chanmat L-by-Nt-by-Nr массив MATLAB с комплексным знаком, G L-by-Ng матрица с комплексным знаком.

Ng является меньшим из Nt и Nr.

Модули усиления линейны.

Типы данных: double
Поддержка комплексного числа: Да

Способность канала суммирует для каждой поднесущей, возвращенной как скаляр или вектор.

  • Когда 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.

Расширенные возможности

Смотрите также

Функции

Объекты

Введенный в R2017a