exponenta event banner

nrChannelEstimate

Практическая оценка канала

Описание

пример

[h,nVar,info] = nrChannelEstimate(rxGrid,refInd,refSym) осуществляет практическую оценку канала по принятой сетке ресурсов rxGrid с помощью сетки справочных ресурсов, содержащей ссылочные символы refSym в местах refInd. Функция возвращает оценку канала h, оценка дисперсии шума nVar, и дополнительная информация info .

[h,nVar,info] = nrChannelEstimate(rxGrid,refGrid) задает предопределенную сетку справочных ресурсов refGrid.

[h,nVar,info] = nrChannelEstimate(carrier,___) определяет параметры конфигурации несущей для конкретной нумерологии мультиплексирования с ортогональным частотным разделением каналов (OFDM) в дополнение к входным аргументам из любого из предыдущих синтаксисов. Функция использует только CyclicPrefix имущества carrier вход.

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

Примеры

свернуть все

Генерировать символы опорного сигнала демодуляции (DM-RS) физического широковещательного канала (PBCH) для идентификационного номера ячейки физического уровня 42. Зависящая от времени часть инициализации скремблирования DM-RS равна 0.

ncellid = 42;
ibar_SSB = 0;
dmrsSym = nrPBCHDMRS(ncellid,ibar_SSB);

Получение индексов элементов ресурсов для PBCH DM-RS.

dmrsInd = nrPBCHDMRSIndices(ncellid);

Создайте сетку ресурсов, содержащую созданные символы DM-RS.

nrb = 20;
scs = 15;
carrier = nrCarrierConfig('NSizeGrid',nrb,'SubcarrierSpacing',scs);
nTxAnts = 1;
txGrid = nrResourceGrid(carrier,nTxAnts);
txGrid(dmrsInd) = dmrsSym;

Модулировать сетку ресурсов с использованием указанных длины БПФ и длины циклического префикса.

ofdmInfo = nrOFDMInfo(carrier);
nulls = [1:136 377:512].';
txWaveform = nrOFDMModulate(carrier,txGrid);

Создайте модель канала TDL-C с заданными свойствами.

channel = nrTDLChannel;
channel.NumReceiveAntennas = 1;
channel.SampleRate = ofdmInfo.SampleRate;
channel.DelayProfile = 'TDL-C';
channel.DelaySpread = 100e-9;
channel.MaximumDopplerShift = 20;

Получают максимальное количество отложенных отсчетов из канального тракта, используя наибольшую задержку и задержку реализации канального фильтра.

chInfo = info(channel);
maxChDelay = ceil(max(chInfo.PathDelays*channel.SampleRate)) + chInfo.ChannelFilterDelay;

Для сброса отложенных выборок из канала добавьте нули в конце передаваемого сигнала, соответствующего максимальному количеству отложенных выборок и количеству передающих антенн. Передача дополненного сигнала через модель канала TDL-C.

[rxWaveform,pathGains] = channel([txWaveform; zeros(maxChDelay,nTxAnts)]);

Оценка смещения синхронизации для передачи с использованием символов DM-RS в качестве опорных символов. Модуляция OFDM опорных символов использует начальный номер слота, равный 0.

initialSlot = 0;
offset = nrTimingEstimate(carrier,rxWaveform,txGrid);

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

rxWaveform = rxWaveform(1+offset:end,:);

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

cpFraction = 0.55;
rxGrid = nrOFDMDemodulate(carrier,rxWaveform,'CyclicPrefixFraction',cpFraction);

Получить практическую оценку канала.

H = nrChannelEstimate(rxGrid,dmrsInd,dmrsSym);

Получите идеальную оценку канала.

pathFilters = getPathFilters(channel);
H_ideal = nrPerfectChannelEstimate(carrier,pathGains,pathFilters,offset);

Сравните практические и идеальные оценки канала.

figure;
subplot(1,2,1);
imagesc(abs(H));
xlabel('OFDM Symbol');
ylabel('Subcarrier');
title('Practical Estimate Magnitude');
subplot(1,2,2);
imagesc(abs(H_ideal));
xlabel('OFDM Symbol');
ylabel('Subcarrier');
title('Perfect Estimate Magnitude');

Figure contains 2 axes. Axes 1 with title Practical Estimate Magnitude contains an object of type image. Axes 2 with title Perfect Estimate Magnitude contains an object of type image.

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

свернуть все

Получена сетка ресурсов, заданная как комплексный массив K-by-L-by-R.

  • K - число поднесущих, равное NRB × 12, где NRB - количество блоков ресурсов в диапазоне от 1 до 275.

  • L - количество символов OFDM в слоте или в опорной сетке.

    • При звонке nrChannelEstimate со ссылочными символами refSymL равно 12 для расширенного циклического префикса и 14 для нормального циклического префикса. Задайте длину циклического префикса с помощью 'CyclicPrefix' аргумент пары имя-значение.

    • При звонке nrChannelEstimate со ссылкой на сетку ресурсов refGrid, L должно быть равно N, количество символов OFDM в опорной сетке.

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

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

Индексы ссылочных символов, заданные как целочисленная матрица. Число строк равно количеству элементов ресурса. Можно указать все индексы в одном столбце или распределить их по нескольким столбцам. Количество элементов в refInd и refSym должны быть одинаковыми, но их размерность может отличаться. Функция изменяется refInd и refSym в векторы столбцов перед отображением их в сетку ссылок: refGrid(refInd(:)) = refSym(:).

Элементы refInd являются линейными индексами на основе 1, адресующими массив ресурсов K-by-L-by-P.

  • K - число поднесущих, равное NRB × 12, где NRB - количество блоков ресурсов в диапазоне от 1 до 275. K должен быть равен первому размеру rxGrid.

  • L - количество символов OFDM в слоте. L равно 12 для расширенного циклического префикса и 14 для нормального циклического префикса. Задайте длину циклического префикса с помощью 'CyclicPrefix' аргумент пары имя-значение.

  • P - количество портов опорного сигнала, выведенное из диапазона значений в refInd.

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

Ссылочные символы, заданные как комплексная матрица. Число строк равно количеству элементов ресурса. Можно указать все символы в одном столбце или распределить их по нескольким столбцам. Количество элементов в refInd и refSym должны быть одинаковыми, но их размерность может отличаться. Функция изменяется refInd и refSym в векторы столбцов перед отображением их в сетку ссылок: refGrid(refInd(:)) = refSym(:).

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

Предопределенная опорная сетка, заданная как комплексный массив K-by-N-by-P. refGrid может охватывать несколько слотов.

  • K - число поднесущих, равное NRB × 12, где NRB - количество блоков ресурсов в диапазоне от 1 до 275.

  • N - количество символов OFDM в опорной сетке.

  • P - количество портов опорного сигнала.

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

Параметры конфигурации несущей для конкретной нумерации OFDM, определенные как nrCarrierConfig объект. Функция использует только CyclicPrefix свойство этого входного сигнала.

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

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

Пример: 'CyclicPrefix','extended' указывает длину расширенного циклического префикса.

Длина циклического префикса, заданная как разделенная запятыми пара, состоящая из 'CyclicPrefix' и одно из этих значений:

  • 'normal' - это значение используется для указания обычного циклического префикса. Эта опция соответствует 14 символам OFDM в слоте.

  • 'extended' - это значение используется для указания расширенного циклического префикса. Эта опция соответствует 12 символам OFDM в слоте. Для нумерологии, указанной в TS 38.211, раздел 4.2, расширенная длина циклического префикса применяется только к интервалу поднесущих 60 кГц.

Примечание

При указании carrier ввод, используйте CyclicPrefix имущества carrier для указания длины циклического префикса. Этот аргумент пары имя-значение нельзя использовать вместе с carrier вход.

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

Схема мультиплексирования в кодовой области (CDM) для опорных сигналов, определяемая как разделенная запятыми пара, состоящая из 'CDMLengths' и массив 1 на 2 неотрицательных целых чисел [FD TD]. Элементы массива FD и TD определяют длину сжатия CDM в частотной области (FD-CDM) и временной области (TD-CDM) соответственно. Значение 1 для элемента указывает на отсутствие CDM.

Пример: 'CDMLengths',[2 1] определяет FD-CDM2 и отсутствие TD-CDM.

Пример: 'CDMLengths',[1 1] указывает отсутствие ортогонального сжатия.

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

Окно усреднения до интерполяции, указанное как пара, разделенная запятыми, состоящая из 'AveragingWindow' и массив 1 на 2 неотрицательных нечётных целых чисел [F T]. Элементы F и T массива задают количество смежных опорных символов в частотной области и временной области соответственно, по которым функция выполняет усреднение перед интерполяцией. Если F или T равно нулю, функция определяет усредняющее значение из оцененного отношения сигнал/шум (SNR) на основе оценки дисперсии шума. nVar.

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

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

свернуть все

Практическая оценка канала, возвращаемая в виде комплексного массива K-by-L-by-R-by-P. K-by-L-by-R - форма принятой сетки ресурсов rxGrid. P - количество портов опорного сигнала.

h наследует тип данных из rxGrid.

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

Оценка дисперсии шума, возвращаемая как неотрицательный скаляр. nVar - измеренная дисперсия аддитивного белого гауссова шума на принятых опорных символах.

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

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

Поле параметраСтоимостьОписание
AveragingWindow

Массив 1 на 2

Окно усреднения до интерполяции, возвращаемое как массив 1 на 2 [F T]. Элементы матрицы F и T указывают количество смежных опорных символов в частотной области и временной области соответственно, над которыми функция выполняла усреднение перед интерполяцией.

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

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