nrPerfectChannelEstimate

Идеальная оценка канала

Описание

h = nrPerfectChannelEstimate(carrier,pathGains,pathFilters) выполняют идеальную оценку канала. Функция сначала восстанавливает импульсную характеристику канала от усилений пути pathGains и импульсную характеристику фильтра пути pathFilters. Затем функция выполняет демодуляцию ортогональной частоты деления мультиплексирования (OFDM). carrier задает параметры для демодуляции OFDM.

пример

h = nrPerfectChannelEstimate(pathGains,pathFilters,nrb,scs,initialNSlot) выполняет демодуляцию OFDM для nrb количество ресурсных блоков с интервалом между поднесущими scs и начальный номер паза initialNSlot.

пример

h = nrPerfectChannelEstimate(___,toffset) задает смещение по времени в сложение с входными параметрами в любом из предыдущих синтаксисов. Смещение синхронизации указывает начальную точку демодуляции OFDM на восстановленной форме волны.

h = nrPerfectChannelEstimate(___,toffset,sampleTimes) задает шаги расчета моментальных снимков канала в дополнение к входным параметрам в предыдущем синтаксисе.

h = nrPerfectChannelEstimate(___,cpl) задает длину циклического префикса в дополнение к входным параметрам в любом из предыдущих синтаксисов, которые не включают carrier вход.

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

Примеры

свернуть все

Определите структуру строения канала с помощью nrTDLChannel Системный объект. Используйте профиль задержки TDL-C из TR 38.901 Раздел 7.7.2.

SR = 7.68e6;
tdl = nrTDLChannel;
tdl.DelayProfile = 'TDL-C';
tdl.DelaySpread = 100e-9;
tdl.MaximumDopplerShift = 300;
tdl.SampleRate = SR;

Создайте случайную форму волны с длительностью 1 субкадр.

T = SR*1e-3;
tdlInfo = info(tdl);
Nt = tdlInfo.NumTransmitAntennas;
in = complex(randn(T,Nt),randn(T,Nt));

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

[~,pathGains] = tdl(in);
pathFilters = getPathFilters(tdl);

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

NRB = 25;
SCS = 15;
nSlot = 0;

hest = nrPerfectChannelEstimate(pathGains,pathFilters,NRB,SCS,nSlot);
size(hest)
ans = 1×3

   300    14     2

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

figure;
surf(abs(hest(:,:,1)));
shading('flat');
xlabel('OFDM Symbols');
ylabel('Subcarriers');
zlabel('|H|');
title('Channel Magnitude Response');

Figure contains an axes. The axes with title Channel Magnitude Response contains an object of type surface.

Повторите оценку канала для расширенного циклического префикса.

hest = nrPerfectChannelEstimate(pathGains,pathFilters,NRB,SCS, ...
    nSlot,'extended');
size(hest)
ans = 1×3

   300    12     2

Постройте график обновленных результатов.

figure;
surf(abs(hest(:,:,1)));
shading('flat');
xlabel('OFDM Symbols');
ylabel('Subcarriers');
zlabel('|H|');
title('Channel Magnitude Response with Extended Cyclic Prefix');

Figure contains an axes. The axes with title Channel Magnitude Response with Extended Cyclic Prefix contains an object of type surface.

Определите структуру строения канала с помощью nrCDLChannel Системный объект. Используйте профиль задержки CDL-C из TR 38.901 Раздел 7.7.1.

 cdl = nrCDLChannel;
 cdl.DelayProfile = 'CDL-D';
 cdl.DelaySpread = 30e-9;
 cdl.MaximumDopplerShift = 5;

Создайте случайную форму волны с длительностью 1 субкадр.

SR = 15.36e6;
T = SR*1e-3;
cdl.SampleRate = SR;
cdlInfo = info(cdl);
Nt = cdlInfo.NumTransmitAntennas;
in = complex(randn(T,Nt),randn(T,Nt));

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

[~,pathGains,sampleTimes] = cdl(in);
pathFilters = getPathFilters(cdl);

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

offset = nrPerfectTimingEstimate(pathGains,pathFilters);

Выполните идеальную оценку канала. Используйте заданное количество блоков, интервалы между поднесущими, номер паза, смещение времени и шаги расчета.

NRB = 25;
SCS = 15;
nSlot = 0;
hest = nrPerfectChannelEstimate(pathGains,pathFilters,...
    NRB,SCS,nSlot,offset,sampleTimes);
size(hest)
ans = 1×4

   300    14     2     8

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

figure;
surf(abs(hest(:,:,1)));
shading('flat');
xlabel('OFDM Symbols');
ylabel('Subcarriers');
zlabel('|H|');
title('Channel Magnitude Response');

Figure contains an axes. The axes with title Channel Magnitude Response contains an object of type surface.

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

свернуть все

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

Количество RB в ресурсной сетке поставщика услуг, заданное в виде целого числа от 1 до 275. Значение по умолчанию 52 соответствует максимальному количеству RB несущей 10 МГц с 15 кГц SCS.

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

Интервалы между поднесущими в кГц, для всех каналов и опорных сигналов несущей, заданные как 15, 30, 60, 120, или 240.

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

Номер слота, заданный как неотрицательное целое число. Можно задать NSlot значение, больше, чем количество пазов на систему координат. Для примера можно задать это значение с помощью счетчиков цикла передачи в MATLAB® симуляция. В этом случае, возможно, вам придется убедиться, что значение свойства по модулю является количеством пазов на систему координат в коде вызова.

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

Длина циклического префикса, заданная как один из следующих опций.

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

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

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

Усиления канального пути процесса затухания, заданные как N комплексная матрица CS-by N P-by N T-by N R, где:

  • N CS - это количество моментальных снимков канала.

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

  • N T - количество передающих антенн.

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

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

Импульсная характеристика фильтра пути, заданная как N H-by N P действительная матрица, где:

  • N H является количеством выборок импульсной характеристики.

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

Каждый столбец матрицы содержит импульсную характеристику фильтра для каждого пути профиля задержки.

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

Количество ресурсных блоков в виде целого числа от 1 до 275.

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

Интервалы между поднесущими в кГц, заданные как 15, 30, 60, 120, или 240.

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

Начальное число паза, основанное на 0, задается как неотрицательное целое число. Функция выбирает соответствующую длину циклического префикса для демодуляции OFDM на основе значения initialNSlot по модулю количество пазов на подкадр.

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

Смещение времени в выборках, заданное как неотрицательное целое число. Смещение синхронизации указывает начальную точку демодуляции OFDM на восстановленной форме волны. Смещение учитывает задержки распространения, что важно при получении идеальной оценки канала, наблюдаемого синхронизированным приемником. toffset по умолчанию задается значение nrPerfectTimingEstimate(pathGains,pathFilters) если не задан как входной параметр.

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

Шаги расчета моментальных снимков канала, заданный как N вектор-столбец CS-на-1 неотрицательных вещественных чисел. sampleTimes задает время вхождения каждого моментального снимка канала. Количество моментальных снимков канала, N CS, идентично первой размерности pathGains. Когда не указано, sampleTimesпо умолчанию N вектор CS-на-1 раз, начиная с нуля со частотой дискретизации, используемой для модуляции OFDM количества ресурсных блоков nrb и интервалы между поднесущими scs. Убедитесь, что моментальные снимки канала охватывают по крайней мере один паз. Функция выполняет оценку канала для каждого полного паза.

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

Длина циклического префикса, заданная как один из следующих опций:

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

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

Примечание

  • Если вы задаете carrier введите, используйте CyclicPrefix свойство carrier вход для задания длины циклического префикса. Вы не можете использовать cpl вход вместе со carrier вход.

  • Если вы задаете длину циклического префикса с 'CyclicPrefix' Аргумент пары "имя-значение" вы не можете использовать cpl вход.

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

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

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

Пример: 'CyclicPrefixFraction',0.75 задает начальное местоположение для демодуляции относительно длины циклического префикса.

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

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

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

Примечание

  • Если вы задаете carrier введите, используйте CyclicPrefix свойство carrier вход для задания длины циклического префикса. Вы не можете использовать этот аргумент пары "имя-значение" вместе со carrier вход.

  • Если вы задаете длину циклического префикса с cpl Вход вы не можете использовать этот аргумент пары "имя-значение".

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

Количество точек быстрого преобразования Фурье (FFT), заданное как разделенная разделенными запятой парами, состоящая из 'Nfft' и неотрицательное целое число, больше 127 или []. Заданное значение должно привести к целочисленным длинам циклического префикса и максимальной заполненности 100%. Заполнение определяется как значение (12 × N RB )/ Nfft, где N RB - количество ресурсных блоков.

Если вы не задаете этот вход, или если вы задаете 'Nfft',[], функция устанавливает целочисленное значение, больше 127, как значение по умолчанию для этого входа. Фактическое значение по умолчанию зависит от других входных значений.

  • Если вы не задаете SampleRate вход, или если вы задаете 'SampleRate',[], функция устанавливает Nfft удовлетворение этих условий.

    • Nfft - целочисленная степень 2.

    • Nfft обеспечивает максимальное заполнение 85%.

  • Если вы задаете SampleRate вход, функция устанавливает Nfft удовлетворение этих условий.

    • Nfft Результаты в целочисленных длинах циклического префикса.

    • Nfft максимизирует значение gcd (Nfft × SCS, SampleRate), где SCS задается carrier.SubcarrierSpacing свойство или scs вход.

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

Частота выборки формы волны, заданная как разделенная разделенными запятой парами, состоящая из 'SampleRate' и либо положительная скалярная величина, либо [].

Если вы не задаете этот вход, или если вы задаете 'SampleRate',[], затем функция устанавливает этот вход в значение N fft × SCS.

  • N fft является значением 'Nfft' вход.

  • SCS - интервал между поднесущими. В зависимости от синтаксиса функции, SCS задается carrier.SubcarrierSpacing свойство или scs вход.

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

Положение окна быстрого преобразования Фурье (FFT) в циклическом префиксе, заданное как разделенная разделенными запятой парами, состоящая из 'CyclicPrefixFraction' и скаляром в интервале [0, 1].

Заданное значение указывает начальное местоположение для демодуляции OFDM относительно начала циклического префикса.

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

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

свернуть все

Идеальная оценка канала, возвращенная как N комплексная решётка SC-by N SYM-by N R-by N T, где:

  • N SC является количеством поднесущих.

  • N SYM является количеством символов OFDM.

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

  • N T - количество передающих антенн.

h наследует тип данных от pathGains.

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

Ссылки

[1] 3GPP TS 38.211. "NR; Физические каналы и модуляция ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

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

.
Введенный в R2018b