Практическая оценка канала
[
выполняет практическую оценку канала на полученной сетке ресурса h
,nVar
,info
] = nrChannelEstimate(rxGrid
,refInd
,refSym
)rxGrid
при помощи ссылочной сетки ресурса, содержащей ссылочные символы refSym
в местоположениях refInd
. Функция возвращает оценку канала h
, шумовая оценка отклонения nVar
, и дополнительная информация info
.
[
задает параметры конфигурации несущей для определенной нумерологии ортогонального мультиплексирования деления частоты (OFDM), в дополнение к входным параметрам от любого из предыдущих синтаксисов. Функция использует только h
,nVar
,info
] = nrChannelEstimate(carrier
,___)CyclicPrefix
свойство carrier
входной параметр.
[
задает опции при помощи одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в любом из предыдущих синтаксисов.h
,nVar
,info
] = nrChannelEstimate(___,Name,Value
)
Сгенерируйте физический канал телевизионного вещания (PBCH) опорный сигнал демодуляции (DM-RS) символы для личного номера ячейки физического уровня 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');
rxGrid
— Полученная сетка ресурсаПолученная сетка ресурса в виде K-by-L-by-R комплексный массив.
K является количеством поднесущих, равных NRB × 12, где NRB является количеством блоков ресурса в диапазоне от 1 до 275.
L является количеством символов OFDM в пазе или в координатной сетке.
Когда вы вызываете nrChannelEstimate
со ссылочными символами refSym
, L 12 для расширенного циклического префикса и 14 для нормального циклического префикса. Установите длину циклического префикса при помощи '
аргумент пары "имя-значение".CyclicPrefix
'
Когда вы вызываете nrChannelEstimate
со ссылочной сеткой ресурса refGrid
, L должен равняться N, количеству символов OFDM в координатной сетке.
R является количеством, получают антенны.
Типы данных: single
| double
Поддержка комплексного числа: Да
refInd
— Ссылочные индексы символаСсылочные индексы символа в виде целочисленной матрицы. Количество строк равняется количеству элементов ресурса. Можно задать все индексы в отдельном столбце или распространить их через несколько столбцов. Число элементов в 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
refSym
— Ссылочные символыСсылочные символы в виде комплексной матрицы. Количество строк равняется количеству элементов ресурса. Можно задать все символы в отдельном столбце или распределить их на нескольких столбцах. Число элементов в refInd
и refSym
должно быть то же самое, но их размерность может отличаться. Функция изменяет refInd
и refSym
в вектор-столбцы прежде, чем сопоставить их в координатную сетку: refGrid(refInd(:)) = refSym(:)
.
Типы данных: single
| double
Поддержка комплексного числа: Да
refGrid
— Предопределенная координатная сеткаПредопределенная координатная сетка в виде K-by-N-by-P комплексный массив. refGrid
может охватить несколько пазов.
K является количеством поднесущих, равных NRB × 12, где NRB является количеством блоков ресурса в диапазоне от 1 до 275.
N является количеством символов OFDM в координатной сетке.
P является количеством портов опорного сигнала.
Типы данных: single
| double
Поддержка комплексного числа: Да
carrier
— Параметры конфигурации несущейnrCarrierConfig
объектПараметры конфигурации несущей для определенной нумерологии OFDM в виде nrCarrierConfig
объект. Функция использует только CyclicPrefix
свойство этого входа.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'CyclicPrefix','extended'
задает расширенную длину циклического префикса.CyclicPrefix
— Длина циклического префикса'normal'
(значение по умолчанию) | 'extended'
Длина циклического префикса в виде разделенной запятой пары, состоящей из 'CyclicPrefix'
и одно из этих значений:
'normal'
— Используйте это значение, чтобы задать нормальный циклический префикс. Эта опция соответствует 14 символам OFDM в пазе.
'extended'
— Используйте это значение, чтобы задать расширенный циклический префикс. Эта опция соответствует 12 символам OFDM в пазе. Для нумерологии, заданной в Разделе TS 38.211 4.2, расширенная длина циклического префикса только применяется к расстоянию между поднесущими на 60 кГц.
Примечание
Если вы задаете carrier
введите, используйте CyclicPrefix
свойство carrier
введите, чтобы задать длину циклического префикса. Вы не можете использовать этот аргумент пары "имя-значение" вместе с carrier
входной параметр.
Типы данных: char |
string
CDMLengths
— Расположение CDM относительно опорных сигналовРасположение мультиплексирования области кода (CDM) относительно опорных сигналов в виде разделенной запятой пары, состоящей из 'CDMLengths'
и 1 2 массив неотрицательных целых чисел [FD
TD]. Элементы массива FD и TD задают длину CDM despreading в частотном диапазоне (FD-CDM) и временном интервале (TD-CDM), соответственно. Значение 1 для элемента не задает CDM.
Пример: 'CDMLengths',[2 1]
задает FD-CDM2 и никакой TD-CDM.
Пример: 'CDMLengths',[1 1]
не задает ортогонального despreading.
Типы данных: double
AveragingWindow
— Окно усреднения перед интерполяцией
(значение по умолчанию) | 1 2 массив неотрицательных нечетных целых чиселОкно усреднения перед интерполяцией в виде разделенной запятой пары, состоящей из 'AveragingWindow'
и 1 2 массив неотрицательных нечетных целых чисел [F
T]. F элементов массива и T задают количество смежных ссылочных символов в частотном диапазоне и временном интервале, соответственно, по которому функция выполняет усреднение перед интерполяцией. Если F или T являются нулем, функция решает, что значение усреднения от предполагаемого отношения сигнал-шум (SNR) на основе шумового отклонения оценивает nVar
.
Типы данных: double
h
— Практическая оценка каналаПрактическая оценка канала, возвращенная как K-by-L-by-R-by-P комплексный массив. K-by-L-by-R является формой полученной сетки ресурса rxGrid
. P является количеством портов опорного сигнала.
h
наследовал его тип данных от rxGrid
.
Типы данных: double |
single
nVar
— Шумовая оценка отклоненияШумовая оценка отклонения, возвращенная как неотрицательный скаляр. nVar
измеренное отклонение аддитивного белого Гауссова шума на полученных ссылочных символах.
Типы данных: double
info
— Дополнительная информацияДополнительная информация, возвращенная как структура с полем AveragingWindow
.
Поле параметра | Значение | Описание |
---|---|---|
AveragingWindow | 1 2 массив | Окно усреднения перед интерполяцией, возвращенное как 1 2 массив [F T]. F элементов массива и T указывают на количество смежных ссылочных символов в частотном диапазоне и временном интервале, соответственно, по которому функция выполнила усреднение перед интерполяцией. |
Указания и ограничения по применению:
Имена и значения в аргументах пары "имя-значение" должны быть константами времени компиляции. Например, когда определение расширило циклический префикс, включайте {coder.Constant('CyclicPrefix'),coder.Constant('extended')}
в -args
значение codegen
функция. Для получения дополнительной информации смотрите coder.Constant
(MATLAB Coder) класс.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.