nrExtractResources

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

Синтаксис

re = nrExtractResources(ind,grid)
[re,reind] = nrExtractResources(ind,grid)
[re1,...,reN,reind1,...,reindN] = nrExtractResources(ind,grid1,grid2,....,gridN)
[___] = nrExtractResources(___,Name,Value)

Описание

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

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

Например, следующая схема подсвечивает элементы массива ресурса 4 4 2 массивами ресурса. Индексы элемента ресурса находятся в линейной форме индексации на основе одной. Количество портов антенны равняется двум (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) символы от полученной сетки и сопоставленных оценок канала при подготовке к декодированию beamformed PBCH.

PBCH Coding и Beamforming

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

P = 2;
txGrid = zeros([240 4 P]);
F = [1 1i];
[~,bfInd] = nrExtractResources(pbchInd,txGrid);
txGrid(bfInd) = pbchTxSym*F;

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

txWaveform = ofdmmod(txGrid,256,[22 18 18 18],[1:8 249:256].');

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

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

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

Создайте оценки канала включая beamforming.

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

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

 rxGrid = ofdmdemod(rxWaveform,256,[22 18 18 18],0,[1:8 249:256].');

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

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

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

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

Получите мягкие биты путем выполнения 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 и антенн, соответственно.

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

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

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Форма индексации элемента ресурса, заданная как пара, разделенная запятой, состоящая из 'IndexStyle' и одно из этих значений:

  • 'index' — Индексы находятся в линейной индексной форме.

  • 'subscript' — Индексы находятся в [поднесущая, символ, антенна] нижняя форма строки.

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

Основа индексации элемента ресурса, заданная как пара, разделенная запятой, состоящая из 'IndexBase' и одно из этих значений:

  • '1based' — Индексный подсчет запускается от одного.

  • '0based' — Индексный подсчет начинает с нуля.

Типы данных: 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 является N RE R P, где:

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

  • Количество R получает антенны.

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

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

  • Если количество индексов, обращаясь к каждой плоскости является тем же самым, то re имеет размер N RE R 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 с помощью индексов, обращаясь к той же плоскости индексируемого массива ресурса. Этот метод совпадает со стандартной операцией re MATLAB® = 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