nrExtractResources

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

Описание

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 имя аргумента и 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® = gridind ). Поэтому 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