exponenta event banner

diagbfweights

Диагонализация канала MIMO

Описание

пример

[wp,wc] = diagbfweights(chanmat) возвращает веса предварительного кодирования, wpи объединение весов, wc, для матрицы отклика канала, chanmat. Вместе эти веса диагонализуют канал в подканалы так, чтобы матрица 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, по всем передающим антеннам.

Примеры

свернуть все

Вычислите матрицу канала для массива 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. Диагонализация канальной матрицы для вычисления весов предварительного кодирования и комбинирования, распределенной мощности и коэффициентов усиления подканала.

Укажите 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);

Диагонализация матрицы канала и возврат коэффициентов усиления подканала.

[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. Создайте матрицу канала с двумя поднесущими. Диагонализуют канальную матрицу для вычисления весов предварительного кодирования и комбинирования, распределенной мощности, коэффициентов усиления подканала и суммы пропускной способности канала.

Укажите 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;

Диагонализация матрицы канала и возврат коэффициентов усиления подканала.

[wp,wc,P,G,C] = diagbfweights(chmat);
disp(C.')
    9.5466    9.3605

Вычисляют матрицу канала для 11-элементного передающего массива ULA и 7-элементного принимающего массива ULA. Укажите общую передаваемую мощность на уровне 1000. Предположим, что есть пять случайно расположенных рассеивателей. Расстояние между элементами для обеих матриц составляет половину длины волны. Приемная матрица находится на расстоянии 500 длин волн от передающей матрицы вдоль оси X. Создайте матрицу канала с двумя поднесущими. Диагонализуют канальную матрицу для вычисления весов предварительного кодирования и комбинирования, распределенной мощности, коэффициентов усиления подканала и суммы пропускной способности канала.

Укажите 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;

Диагонализуют матрицу канала и возвращают распределенную мощность для обеих поднесущих.

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. Создайте матрицу канала с двумя поднесущими. Диагонализация канальной матрицы для вычисления весов предварительного кодирования и комбинирования, распределенной мощности, коэффициентов усиления подканала и суммы пропускной способности канала.

Укажите 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;

Диагонализуют канальную матрицу и возвращают коэффициент усиления для обеих поднесущих.

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. Создайте матрицу канала с двумя поднесущими. Диагонализуют канальную матрицу для вычисления весов предварительного кодирования и комбинирования, распределенной мощности, коэффициентов усиления подканала и суммы пропускной способности канала.

Укажите 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;

Диагонализуют канальную матрицу и возвращают коэффициент усиления для обеих поднесущих.

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

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

свернуть все

Матрица отклика канала, заданная как матрица N-за-Nr комплексных значений или матрица L-за-N-за-Nr комплексных значений MATLAB.

  • Nt - количество элементов в передающем массиве.

  • Nr - количество элементов в принимающем массиве.

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

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

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

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

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

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

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

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

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

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

свернуть все

Веса предварительного кодирования, возвращаемые в виде матрицы с комплексными значениями Nt-by-Nt или матрицы MATLAB с комплексными значениями L-by-Nt-by-Nt. Единицы измерения безразмерны.

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

Объединение весов, возвращаемых в виде матрицы N-за-Nr комплексных значений или матрицы L-за-Nr-за-Nr комплексных значений MATLAB. Единицы измерения безразмерны.

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

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

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

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

Энергоблоки линейные.

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

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

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

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

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

Единицы усиления являются линейными.

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

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

  • Когда chanmat является комплекснозначной матрицей Nt-by-Nr, C является скаляром.

  • Когда chanmat представляет собой массив MATLAB с комплексным значением L-by-Nt-by-Nr, C является вектором L-by-1.

Пропускная способность - в бит/Гц.

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

Ссылки

[1] Пустошь, R. Младший и др. «Обзор методов обработки сигналов для MIMO-систем миллиметровых волн», arXiv.org:1512.03007 [cs.IT], 2015.

[2] Tse, D. and P. Viswanath, Основы беспроводной связи, Кембридж: Cambridge University Press, 2005.

[3] Паулрадж, А. Введение в беспроводную космическую связь, Кембридж: Cambridge University Press, 2003.

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

.

См. также

Функции

Объекты

Представлен в R2017a