lteExtractResources

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

Описание

[re,reind] = lteExtractResources(ind,grid) извлекает ресурсные элементы re их индексы reind из ресурсного массива grid использование индексов ресурсных элементов ind. Можно извлечь ресурсные элементы из ресурсной сетки с другой размерностью, чем ресурсная сетка, к которой относятся индексы. Заданные и возвращенные индексы находятся в основанной на 1 форме линейного индексирования. Доступны другие опции индексации. Процесс извлечения ресурса дополнительно описан в Алгоритмах.

В LTE Toolbox™ генерируются индексы для отображения последовательностей символов физического канала и сигнала в ресурсную сетку. Эти индексы генерируются с помощью функций, специфичных для канала или сигнала, и адресуют элементы ресурса в массиве, M -by- N -by- P. M - количество поднесущих, N - количество символов OFDM или SC-FDMA и P - количество плоскостей. Схема подсвечивает ресурсные элементы массива ресурсной сетки, учитываемой индексами ind. Индексы находятся в основанной на 1 форме линейного индексирования. P = 2 - количество портов антенны.

Обычно массив ресурсов извлекает элементы ресурса из одного из следующих:

  • A 3-D получил сетку, размер M -by- N -by- NRxAnts. NRxAnts - количество приемных антенн. Эта сетка создается после демодуляции OFDM или SC-FDMA.

  • Сетка оценки 4-D канала, размер M -by- N -by- NRxAnts -by- P. Эта сетка создается функциями оценки канала (см. Оценка канала ).

Можно описать размер 3D полученной сетки как 4-D сетки, которая имеет конечную синглтонную размерность.

пример

[re1,...,reK,reind1,...,reindK] = lteExtractResources(ind,grid1,...,gridK) извлекает элементы ресурса из K массивов ресурсов с помощью заданных индексов элемента ресурса.

re = lteExtractResources(___,opts) задает формат индексов и метод извлечения, используемый с массивом ячеек с опциями, opts.

Примеры

свернуть все

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

Создайте сигнал передачи для одного субкадра.

enb = lteRMCDL('R.12');
enb.TotSubframes = 1;
txWaveform = lteRMCDLTool(enb,[1;0;0;1]);

Принимайте сумму сигналов передающей антенны на трех приемных антеннах.

NRxAnts = 3;
rxWaveform = repmat(sum(txWaveform,2),1,NRxAnts);
rxGrid = lteOFDMDemodulate(enb,rxWaveform);

Вычислите оценку канала.

cec.FreqWindow = 1;
cec.TimeWindow = 1;
cec.InterpType = 'cubic';
cec.PilotAverage = 'UserDefined';
cec.InterpWinSize = 3;
cec.InterpWindow = 'Causal';
[hEstGrid,nEst] = lteDLChannelEstimate(enb,cec,rxGrid);

Сгенерировать индексы PDCCH и извлечь символы из принятых и оценочных сеток канала при подготовке к декодированию PDCCH.

ind = ltePDCCHIndices(enb);
[pdcchRxSym,pdcchHestSym] = lteExtractResources(ind,rxGrid,hEstGrid);

pdcchRxSym имеет размер NRE-by-NRxAnts и pdcchHestSym имеет размер NRE-by-NRxAnts-by-CellRefP.

rxSymSize = size(pdcchRxSym)
rxSymSize = 1×2

   212     3

hestSymSize = size(pdcchHestSym)
hestSymSize = 1×3

   212     3     4

Декодируйте PDCCH с извлеченными ресурсными элементами.

pdcchBits = ltePDCCHDecode(enb,pdcchRxSym,pdcchHestSym,nEst);

Извлеките ресурсы из 3D приема сетки и 4D сетки оценки канала. Отображение местоположения индексов в сетке.

Размеры Setup: [M N P] и [M N NRxAnts P], где M - количество поднесущих, N - количество символов OFDM, NRxAnts - количество rx антенн, а P - количество tx антенн

M = 4;
N = 4;
P = 2;
NRxAnts = 3;

Создайте индексы и отобразите местоположения в передающей сетке, учитываемой этими индексами. Как вы заметите, различные элементы ресурса адресуются на каждом порту антенны. Адреса расположения ресурсного элемента содержат 1.

ind = [6 22; 16 29];
txGrid = zeros(M,N,P);
txGrid(ind) = 1;

Визуализируйте местоположения индексированных ресурсных элементов в передающей сетке.

visualizeGrid = zeros(M+1,N+1,P);
visualizeGrid(1:M,1:N,:) = txGrid;

figure

subplot(321)
pcolor(visualizeGrid(:,:,1))
title('Port: 1')
xlabel('N')
ylabel('M')

subplot(323)
pcolor(visualizeGrid(:,:,2))
title('Port: 2')
xlabel('N')
ylabel('M')

Figure contains 2 axes. Axes 1 with title Port: 1 contains an object of type surface. Axes 2 with title Port: 2 contains an object of type surface.

Создайте 3D полученную сетку для извлечения ресурсных элементов. Извлечение ресурсных элементов из полученной сетки. Показать местоположения этих извлеченных ресурсных элементов. Адреса расположения ресурсного элемента содержат 1.

rxGrid = zeros(M,N,NRxAnts);

[re, indOut] = lteExtractResources(ind,rxGrid);
rxGrid(indOut) = 1;

Визуализируйте местоположения индексированных ресурсных элементов в приёмной сетке.

figure
visualizeGrid = zeros(M+1,N+1,NRxAnts);
visualizeGrid(1:M,1:N,:) = rxGrid;

subplot(321)
pcolor(visualizeGrid(:,:,1))
title('Allplanes, RxAnt: 1');
xlabel('N')
ylabel('M')

subplot(323)
pcolor(visualizeGrid(:,:,2))
title('Allplanes, RxAnt: 2')
xlabel('N')
ylabel('M')

subplot(325)
pcolor(visualizeGrid(:,:,3))
title('Allplanes, RxAnt: 3')
xlabel('N')
ylabel('M')

Figure contains 3 axes. Axes 1 with title Allplanes, RxAnt: 1 contains an object of type surface. Axes 2 with title Allplanes, RxAnt: 2 contains an object of type surface. Axes 3 with title Allplanes, RxAnt: 3 contains an object of type surface.

Создайте 4D сетку оценки канала для извлечения ресурсных элементов. Извлеките ресурсные элементы из сетки оценки канала. Показать местоположения этих извлеченных ресурсных элементов. Адреса расположения ресурсного элемента содержат 1.

hEstGrid = zeros(M,N,NRxAnts,P);

[re, indOut] = lteExtractResources(ind,hEstGrid);
hEstGrid(indOut) = 1;

Визуализируйте местоположения ресурсных элементов, извлеченных с помощью 'allplanes' режим от 3D приема сетки.

figure;
visualizeGrid = zeros(M+1,N+1,NRxAnts,P);
visualizeGrid(1:M,1:N,:,:) = hEstGrid;

subplot(321)
pcolor(visualizeGrid(:,:,1,1))
title('Allplanes, RxAnt: 1, Port: 1')
xlabel('N')
ylabel('M')

subplot(323)
pcolor(visualizeGrid(:,:,2,1))
title('Allplanes, RxAnt: 2, Port: 1')
xlabel('N')
ylabel('M')

subplot(325)
pcolor(visualizeGrid(:,:,3,1))
title('Allplanes, RxAnt: 3, Port: 1')
xlabel('N')
ylabel('M')

subplot(322)
pcolor(visualizeGrid(:,:,1,2))
title('Allplanes, RxAnt: 1, Port: 2')
xlabel('N')
ylabel('M')

subplot(324)
pcolor(visualizeGrid(:,:,2,2))
title('Allplanes, RxAnt: 2, Port: 2')
xlabel('N')
ylabel('M')

subplot(326)
pcolor(visualizeGrid(:,:,3,2))
title('Allplanes, RxAnt: 3, Port: 2')
xlabel('N')
ylabel('M')

Figure contains 6 axes. Axes 1 with title Allplanes, RxAnt: 1, Port: 1 contains an object of type surface. Axes 2 with title Allplanes, RxAnt: 2, Port: 1 contains an object of type surface. Axes 3 with title Allplanes, RxAnt: 3, Port: 1 contains an object of type surface. Axes 4 with title Allplanes, RxAnt: 1, Port: 2 contains an object of type surface. Axes 5 with title Allplanes, RxAnt: 2, Port: 2 contains an object of type surface. Axes 6 with title Allplanes, RxAnt: 3, Port: 2 contains an object of type surface.

Создайте 4D сетку оценки канала для извлечения ресурсных элементов. Извлеките ресурсные элементы из сетки оценки канала с помощью 'direct' режим извлечения. Показать местоположения этих извлеченных ресурсных элементов. Адреса расположения ресурсного элемента содержат 1.

hEstGridDirect = zeros(M,N,NRxAnts,P);

[re, indOut] = lteExtractResources(ind,hEstGridDirect,'direct');
hEstGridDirect(indOut) = 1;

Визуализируйте местоположения ресурсных элементов, извлеченных с помощью 'direct' режим от 4D сетки оценки канала.

figure
visualizeGrid = zeros(M+1,N+1,NRxAnts,P);
visualizeGrid(1:M,1:N,:,:) = hEstGridDirect;

subplot(321)
pcolor(visualizeGrid(:,:,1,1))
title('Direct, RxAnt: 1, Port: 1')
xlabel('N')
ylabel('M')

subplot(323)
pcolor(visualizeGrid(:,:,2,1))
title('Direct, RxAnt: 1, Port: 1')
xlabel('N')
ylabel('M')

subplot(325)
pcolor(visualizeGrid(:,:,3,1))
title('Direct, RxAnt: 1, Port: 1')
xlabel('N')
ylabel('M')

subplot(322)
pcolor(visualizeGrid(:,:,1,2))
title('Direct, RxAnt: 1, Port: 1')
xlabel('N')
ylabel('M')

subplot(324)
pcolor(visualizeGrid(:,:,2,2))
title('Direct, RxAnt: 1, Port: 1')
xlabel('N')
ylabel('M')

subplot(326)
pcolor(visualizeGrid(:,:,3,2))
title('Direct, RxAnt: 1, Port: 1')
xlabel('N')
ylabel('M')

Figure contains 6 axes. Axes 1 with title Direct, RxAnt: 1, Port: 1 contains an object of type surface. Axes 2 with title Direct, RxAnt: 1, Port: 1 contains an object of type surface. Axes 3 with title Direct, RxAnt: 1, Port: 1 contains an object of type surface. Axes 4 with title Direct, RxAnt: 1, Port: 1 contains an object of type surface. Axes 5 with title Direct, RxAnt: 1, Port: 1 contains an object of type surface. Axes 6 with title Direct, RxAnt: 1, Port: 1 contains an object of type surface.

Использование 'direct' и 'allplanes' методы извлечения и индексы индекса для извлечения символов опорного сигнала (CRS) конкретной ячейки в поднесущей 7 из grid.

Сгенерируйте ресурсную сетку и индексы CRS в форме индекса: [поднесущая, символ OFDM, порт CRS].

enb = lteRMCDL('R.12');
enb.TotSubframes = 1;
enb.CellRefP = 2;
enb.PDSCH.NLayers = 2;
[waveform,grid] = lteRMCDLTool(enb,[1;0;0;1]);
crsInd = lteCellRSIndices(enb,'sub');

На портах CRS 1 и 2 используются 2 ресурсных элемента; все находятся на разных символах OFDM (1, 5, 8, 12).

crsIndSC7 = crsInd(crsInd(:,1)==7,:)
crsIndSC7 = 4x3 uint32 matrix

    7    1    1
    7    8    1
    7    5    2
    7   12    2

Использование 'direct' метод извлечения ресурсных элементов. Извлеченные индексы ресурсного элемента те же, что и сгенерированные индексы CRS, что и массив ресурсов, индексируемый crsInd в grid.

[dirREs,dirInd] = lteExtractResources(crsInd,grid,{'direct','sub'});
directIndSC7 = dirInd(dirInd(:,1)==7,:)
directIndSC7 = 4x3 uint32 matrix

    7    1    1
    7    8    1
    7    5    2
    7   12    2

Использование 'allplanes' метод извлечения ресурсных элементов. Существует 4 извлеченных индексы согласно порту CRS на поднесущей 7. Индексы, адресующие уникальные символы OFDM в индексированной ресурсной сетке, используются для извлечения ресурсных элементов из всех портов CRS в 'grid. Поэтому индексы извлекаются из символов OFDM (1, 5, 8,12) на обоих портах CRS.

[apREs,apInd] = lteExtractResources(crsInd,grid,{'allplanes','sub'});
allPlanesIndSC7 = apInd(apInd(:,1)==7,:)
allPlanesIndSC7 = 8x3 uint32 matrix

    7    1    1
    7    8    1
    7    5    1
    7   12    1
    7    1    2
    7    8    2
    7    5    2
    7   12    2

Входные параметры

свернуть все

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

Если вы задаете элемент этого массива как значение, больше, чем количество элементов в grid вход, функция использует значение mod(ind,numel(grid)).

Массив ресурсов, заданный как 3-D или 4-D числовой массив. Обычно массив ресурсов для извлечения ресурсных элементов из одного из следующих:

  • A 3-D получил сетку, размер M -by- N -by- NRxAnts. NRxAnts - количество приемных антенн. Эта сетка создается после демодуляции OFDM или SC-FDMA.

  • Сетка оценки 4-D канала, размер M -by- N -by- NRxAnts -by- P. Эта сетка создается функциями оценки канала (см. Оценка канала ).

Можно описать размер полученной сетки 3D как 4D сетку, которая имеет конечную размерность синглтона.

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

Опции извлечения ресурсных элементов, заданные как вектор символов, массив ячеек из векторов символов или строковые массивы. Значения для opts если задан как вектор символов, включите (используйте двойные кавычки для строки):

Поле параметраТребуемый или опционныйЗначенияОписание
Indexing StyleНеобходимый'ind' (по умолчанию) или 'sub'

Стиль индексации заданных или возвращенных индексов, ind и reind, заданный как один из следующих опций:

  • 'ind' - линейная индексная форма

  • 'sub' - форма индекса

Index BaseНеобходимый'1based' (по умолчанию) или '0based'

Базовое значение заданных или возвращенных индексов, ind и reind, заданный как один из следующих опций:

  • '1based' - первое значение последовательности индексов - единица

  • '0based' - первое значение последовательности индексов равняется нулю

Extraction MethodНеобходимый'allplanes' (по умолчанию) или 'direct'

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

  • 'allplanes' - использует индексы, адресующие уникальную поднесущую и расположение символов во всех плоскостях индексированного ресурсного массива для извлечения.

  • 'direct' - извлекаются только ресурсные элементы, относящиеся к каждой плоскости индексированной ресурсной сетки.

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

свернуть все

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

Когда 'allplanes' используется метод извлечения, извлеченный массив ресурсных элементов имеет размер N RE-by- NRxAnts -by- P где:

  • N RE - количество ресурсных элементов на M -by N плоскости grid.

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

  • N - количество символов OFDM или SC-FDMA.

  • P - количество самолетов.

При использовании 'direct' метод извлечения, размер извлеченного массива ресурсных элементов, re, зависит от количества индексов, адресованных каждой плоскости индексированной исходной сетки:

  • Если одинаковое количество индексов адресовано каждой плоскости, то re имеет размер N RE-by- NRxAnts -by- P.

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

Индексы извлеченных ресурсных элементов в grid, возвращенный как числовой массив. reind - тот же размер, что и извлеченный массив ресурсных элементов re.

Алгоритмы

свернуть все

lteExtractResources может извлечь элементы ресурса одним из двух методов. The 'allplanes' метод используется по умолчанию. Можно опционально задать 'direct' метод извлечения.

Метод извлечения всех плоскостей

The 'allplanes' метод извлекает ресурсные элементы из каждой M -by N плоскости в grid использование индексов, которые адресованы уникальным местоположениям поднесущих и символов во всех плоскостях индексированного массива ресурсов.

Следующие схемы иллюстрируют процесс выделения ресурса для 3D принятой сетки и 4D сетки оценки канала. Пример, Извлечение ресурсов из 3D приема сетки и 4D оценки канала, воссоздает эти схемы.

Для извлечения используются индексы, адресованные уникальными местоположениями поднесущей и символов во всех плоскостях индексированного ресурсного кирпича. Схема подсвечивает индексы, используемые для извлечения ресурсных элементов, обращаются к ресурсной сетке с P = 2. В этом случае P количество портов антенны.

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

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

Метод прямого извлечения

The 'direct' метод извлекает ресурсные элементы из grid с учетом того, что третьи и четвертые размерности grid представляет то же свойство, что и плоскости индексированного ресурсного массива, такие как порты антенны, слои, передающие антенны. Поэтому извлекаются единственные ресурсные элементы, относящиеся к каждой плоскости индексированной ресурсной сетки:

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

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

Извлечение сетки оценки 4D, grid, с использованием 'direct' способ проиллюстрирован на следующей схеме с NRxAnts = 3 и P= 2, которые являются количеством портов антенны. Ресурсная сетка 4D состоит из P M -by- N -by- NRxAnts массивов, каждый из которых сопоставлен с антенным портом. Поэтому индексы, соответствующие каждому отдельному порту антенны в индексированном ресурсном массиве, используются для извлечения ресурсных элементов из каждой из этих массивов. Пример: Извлечение ресурсов из 3D приема сетки и 4D оценки канала создает версию этой схемы.

Введенный в R2014b