diagbfweights

Синтаксис

[wp,wc] = diagbfweights(chanmat)
[wp,wc,P] = diagbfweights(chanmat)
[wp,wc,P,G] = diagbfweights(chanmat)
[wp,wc,P,G,C] = diagbfweights(chanmat)
[___] = diagbfweights(chanmat,Pt)
[___] = diagbfweights(chanmat,Pt Pn)
[___] = diagbfweights(chanmat,Pt Pn,powdistoption)

Описание

пример

[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