exponenta event banner

nrExtractResources

Извлечение элементов ресурса из массива ресурсов

Описание

re = nrExtractResources(ind,grid) возвращает элементы ресурса из массива ресурсов grid использование индексов элементов ресурсов ind. Функция может извлекать элементы ресурсов, даже если grid имеет размерность, которая отличается от размерности индексов ind. В этом синтаксисе указанные индексы основаны на 1, используя форму линейного индексирования.

Обычно специфичные для канала или сигнала функции генерируют индексы элемента ресурса для отображения символов канала или сигнала в сетку ресурсов. Индексы адресуют элементы ресурсов в массиве M-by-N-by-P. M - количество поднесущих, N - количество символов OFDM, и P - количество антенных портов.

Например, следующая диаграмма подчеркивает элементы ресурса множества ресурса 4 на 4 на 2. Индексы элементов ресурса находятся в форме линейного индексирования на основе 1. Количество антенных портов равно двум (P = 2).

пример

[re,reind] = nrExtractResources(ind,grid) также возвращает reind, индексы извлеченных элементов ресурса re внутри массива ресурсов grid. Множество reind имеет тот же размер, что и извлеченные элементы ресурса re.

[re1,...,reN,reind1,...,reindN] = nrExtractResources(ind,grid1,grid2,....,gridN) извлекает элементы ресурсов из нескольких массивов ресурсов с использованием индексов элементов ресурсов ind.

[___] = nrExtractResources(___,Name,Value) указывает необязательные аргументы пары имя-значение в дополнение к любому набору входных аргументов в предыдущих синтаксисах. Эти аргументы пары имя-значение используются для указания формата входных индексов и метода извлечения. Неуказанные аргументы принимают значения по умолчанию.

Примеры

свернуть все

Извлекают символы физического широковещательного канала (PBCH) из принятой сетки и связанных оценок канала при подготовке к декодированию PBCH с формированием луча.

Кодирование и формирование диаграммы направленности PBCH

Создайте случайную последовательность двоичных значений, соответствующих кодовому слову BCH. Длина кодового слова составляет 864, как указано в TS 38.212, раздел 7.1.5. Используя кодовое слово, создайте символы и индексы для передачи PBCH. Укажите идентификационный номер ячейки физического уровня.

E = 864;
cw = randi([0 1],E,1);
ncellid = 17;
v = 0;
pbchTxSym = nrPBCH(cw,ncellid,v);
pbchInd = nrPBCHIndices(ncellid);

Использовать nrExtractResources для создания индексов для двух передающих антенн PBCH в виде луча. Эти индексы используются для отображения PBCH в виде луча в массив ресурсов передатчика.

carrier = nrCarrierConfig('NSizeGrid',20);
P = 2;
txGrid = nrResourceGrid(carrier,P);
F = [1 1i];
[~,bfInd] = nrExtractResources(pbchInd,txGrid);
txGrid(bfInd) = pbchTxSym*F;

OFDM модулирует символы PBCH, отображенные в массив ресурсов передатчика.

txWaveform = nrOFDMModulate(carrier,txGrid);

Передача и декодирование PBCH

Создайте и примените матрицу канала к форме сигнала. Прием передаваемых сигналов.

R = 3;
H = dftmtx(max([P R]));
H = H(1:P,1:R);
H = H/norm(H);
rxWaveform = txWaveform*H;

Создание оценок канала, включая формирование луча.

 hEstGrid = repmat(permute(H.'*F.',[3 4 1 2]),[240 4]);
 nEst = 0;

Демодулируют принятый сигнал с использованием мультиплексирования с ортогональным частотным разделением каналов (OFDM).

 rxGrid = nrOFDMDemodulate(carrier,rxWaveform);

При подготовке к декодированию PBCH извлекают символы из принятой сетки и сетки оценки канала.

[pbchRxSym,pbchHestSym] = nrExtractResources(pbchInd,rxGrid,hEstGrid);
figure;
plot(pbchRxSym,'o:');
title('Received PBCH Constellation'); 

Figure contains an axes. The axes with title Received PBCH Constellation contains 3 objects of type line.

Выравнивание символов путем выполнения выравнивания MMSE для извлеченных ресурсов. Постройте график результатов.

pbchEqSym = nrEqualizeMMSE(pbchRxSym,pbchHestSym,nEst);
figure;
plot(pbchEqSym,'o:');
title('Equalized PBCH Constellation');

Figure contains an axes. The axes with title Equalized PBCH Constellation contains an object of type line.

Извлекают мягкие биты, выполняя декодирование PBCH для выровненных символов.

pbchBits = nrPBCHDecode(pbchEqSym,ncellid,v)
pbchBits = 864×1
1010 ×

   -2.0000
   -2.0000
    2.0000
   -2.0000
   -2.0000
    2.0000
    2.0000
   -2.0000
   -2.0000
   -2.0000
      ⋮

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

свернуть все

Индексы элементов ресурсов, указанные как матрица.

  • Если 'IndexStyle' является 'index', каждый столбец матрицы содержит линейные индексы для соответствующей антенны.

  • Если 'IndexStyle' является 'subscript', ind является трехстолбцовой матрицей. Строки матрицы соответствуют подстрокам [поднесущей, символа, антенны] на основе количества поднесущих, символов OFDM и антенн соответственно.

Функция предполагает, что индексы основаны на 1, если не указано иное с помощью 'IndexBase' аргумент.

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

Массив ресурсов, из которого извлекаются элементы ресурсов, указанные как одно из следующих значений:

  • 3-D числовой массив размера M-на-N-на-R, который соответствует принятой сетке - M - количество поднесущих, N - количество символов OFDM, и R - количество приемных антенн. Сетка создается после демодуляции OFDM.

  • 4-D числовая матрица размера M-на-N-на-R-на-P, которая соответствует сетке оценки канала - P, является количеством антенных портов. Сетка создается после оценки канала.

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: nrExtractResources(ind,grid,'ExtractionMethod','direct','IndexBase','0based') задает метод прямого извлечения с индексированием на основе 0.

Форма индексирования RE, заданная как одно из следующих значений:

  • 'index' - Индексы в линейном индексном виде.

  • 'subscript' - Индексы представлены в виде строки поднесущей, символа, антенны.

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

База индексирования RE, заданная как одно из следующих значений:

  • '1based' - отсчет индекса начинается с 1.

  • '0based' - отсчет индекса начинается с 0.

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

Метод извлечения элемента ресурса, указанный как разделенная запятыми пара, состоящая из 'ExtractionMethod' и 'allplanes' или 'direct'.

  • 'allplanes' - Функция извлекает элементы ресурсов из каждой плоскости M-by-N в пределах grid. Функция использует индексы, которые адресуют уникальные местоположения поднесущих и символов по всем плоскостям индексированного массива ресурсов. См. раздел Метод извлечения всех плоскостей (по умолчанию).

  • 'direct' - Функция извлекает элементы ресурсов из каждой плоскости M-by-N (для 3-D grid) или массив M-by-N-by-R (для 4-D grid). Функция использует индексы, которые непосредственно адресуют соответствующую плоскость индексированного массива ресурсов. См. Метод прямого извлечения.

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

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

свернуть все

Извлеченные элементы ресурса, возвращенные в виде вектора столбца или числового массива.

Когда 'ExtractionMethod' имеет значение 'allplanes', размер re NRE-by-R-by-P, где:

  • NRE - количество элементов ресурсов, извлеченных из каждой плоскости M-by-N grid.

  • R число приемных антенн.

  • P - количество плоскостей.

Когда 'ExtractionMethod' имеет значение 'direct', размер re зависит от количества индексов, адресующих каждую плоскость индексированной сетки ресурсов.

  • Если число индексов, адресующих каждую плоскость, одинаково, то re имеет размер NRE-by-R-by-P.

  • Если количество индексов, адресующих каждую плоскость, различно, то re является вектором столбца, содержащим все извлеченные элементы ресурса.

Дополнительные сведения о методах извлечения ресурсов см. в разделе Алгоритмы.

Индексы извлеченных элементов ресурсов в пределах grid, возвращен в виде числового массива. reind тот же размер, что и у извлеченного массива элементов ресурса re. reind выходные данные наследуют стиль индексации и базу индекса от ind.

Алгоритмы

свернуть все

Метод извлечения всех плоскостей (по умолчанию)

Чтобы использовать этот метод, установите 'ExtractionMethod' кому 'allplanes'. Этот метод извлекает элементы ресурсов из каждой плоскости M-by-N в пределах grid. Индексы адресуют уникальные местоположения поднесущих и символов по всем плоскостям индексированного массива ресурсов. Диаграмма выделяет индексы, используемые для извлечения элементов ресурса из сетки ресурсов с P = 2.

Процесс экстракции для 3-D полученной матрицы

Следующие диаграммы иллюстрируют извлечение элемента ресурса из 3-D принятой сетки, где количество приемных антенн R = 3. Элементы ресурса извлекаются из сетки в местоположениях символа и поднесущей.

Процесс извлечения для сетки оценки канала 4-D

Следующая диаграмма показывает процесс извлечения для сетки оценки канала 4-D. Количество приемных антенн R = 3 и количество антенных портов P = 2. Сетка 4-D ресурсов состоит из матриц P M-by-N-by-R, каждая из которых связана с антенным портом. Элементы ресурса извлекаются из всех плоскостей в этих массивах.

Метод прямой экстракции

Чтобы использовать этот метод, установите 'ExtractionMethod' кому 'direct'. Этот метод извлекает элементы ресурса из grid предполагая, что третье и четвертое измерения grid представляют собой те же свойства, что и плоскости индексированной ресурсной решетки, такие как антенные порты, уровни, передающие антенны. Поэтому функция извлекает только элементы ресурсов, относящиеся к каждой плоскости индексированной сетки ресурсов.

  • Для 3-D grid, прямой метод извлекает элементы из каждой плоскости M-by-N grid использование индексов, адресующих одну и ту же плоскость индексированного массива ресурсов. Этот метод аналогичен стандартной операции MATLAB ®re = grid(ind). Поэтому reind = ind.

  • Для 4-D grid, прямой метод извлекает элементы из каждого массива M-by-N-by-R grid с помощью индексов, адресующих одну и ту же плоскость индексированного массива ресурсов. Функция предполагает, что свойство, представленное плоскостями индексированного массива ресурсов, совпадает с четвертым измерением grid.

Процесс извлечения для сетки оценки канала 4-D

Следующая диаграмма показывает процесс извлечения для сетки оценки канала 4-D. Количество приемных антенн R = 3 и количество антенных портов P = 2. Сетка 4-D ресурсов состоит из P-числа матриц M-by-N-by-R, каждая из которых связана с антенным портом. Индексы, соответствующие каждому отдельному антенному порту в индексированной ресурсной решетке, используются для извлечения ресурсных элементов из каждой из этих решеток.

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

.
Представлен в R2018b