out = nrSymbolDemodulate(in,mod) демодулирует комплексные символы в кодовой комбинации in к мягким битам с помощью схемы mod модуляции. Функция реализует инверсию Раздела TS 38.211 5.1 [1].
out = nrSymbolDemodulate(in,mod,nVar) задает шумовой масштабный коэффициент отклонения для мягких битов.
out = nrSymbolDemodulate(in,mod,'DecisionType',decision) задает режим решения демодуляции при помощи аргумента пары "имя-значение".
Сгенерируйте случайную последовательность двоичных значений длины 40. Сгенерируйте модулируемые символы с помощью модуляции QPSK. Выполните демодуляцию QPSK в мягком режиме решения для шумового отклонения 0,1.
data = randi([0 1],40,1);
modsymb = nrSymbolModulate(data,'QPSK');
nVar = 0.1;
recsymb = awgn(modsymb,1/nVar,1,'linear');
out = nrSymbolDemodulate(recsymb,'QPSK',0.1);
16QAM демодуляция с режимом трудного решения
Сгенерируйте случайную последовательность двоичных значений длины 100. Сгенерируйте модулируемые символы с помощью 16-QAM модуляции. Добавьте шум в модулируемые символы, соответствующие ОСШ 15 дБ. Выполните 16-QAM демодуляцию в режиме трудного решения. Проверяйте на битовые ошибки.
Схема Modulation, заданная как 'pi/2-BPSK', 'BPSK', 'QPSK', '16QAM', '64QAM', или '256QAM'. Эта схема модуляции определяет тип модуляции, который будет выполняться на входной кодовой комбинации и количестве битов, используемых на символ модуляции.
Шумовое отклонение, заданное в виде неотрицательного числа. Мягкие биты масштабируются с отклонением аддитивного белого Гауссова шума (AWGN). Значение по умолчанию соответствует ОСШ 100 дБ, приходя к модульной власти сигнала. Этот аргумент применяется только для мягкого режима решения.
Примечание
Значение по умолчанию принимает, что модулятор и демодулятор соединяются спина к спине, где шумовое отклонение является нулем. Избегать +/-Inf значения в выходе, функция использует 1e-10 как значение по умолчанию для шумового отклонения. Чтобы получить соответствующие результаты, когда сигнал будет передан через шумный канал, настройте шумовое отклонение соответственно.
Типы данных: double
decision — Режим Decision 'soft' (значение по умолчанию) | 'hard'
Режим Decision, заданный как 'soft' или 'hard'. Режим решения управляет типом демодуляции, выполняемым на полученных символах.
'soft' — Мягкий режим решения приводит к числовому выходу, содержащему поразрядное приближение к отношениям логарифмической правдоподобности демодулируемых битов. Выход out наследовал его тип данных от входа in.
'hard'— Результаты режима трудного решения в двоичном выходе, содержащем группы битов, соответствующих самому близкому созвездию, указывают на вход in. Выход out преобразован тип к int8.
out — Демодулируемые выходные биты числовой вектор-столбец | вектор столбца двоичных данных
Демодулируемые выходные биты, возвращенные как числовой вектор-столбец или вектор столбца двоичных данных. Демодуляция выполняется, принимая входную нормализацию степени созвездия, заданную в разделе TS 38.211 5.1 [1].
Схема модуляции
Коэффициент нормализации степени созвездия
'pi/2-BPSK'
'BPSK'
'QPSK'
1/sqrt(2)
'16QAM'
1/sqrt(10)
'64QAM'
1/sqrt(42)
'256QAM'
1/sqrt(170)
Каждый демодулируемый символ сопоставлен с группой битов, соответствующих количеству битов на символ в схеме mod модуляции. Первый бит представляет старший значащий бит, и последний бит представляет младший значащий бит. Длина out длина входа in умноженный на количество битов на символ. decision режим управляет содержимым и типом данных демодулируемых выходных битов.
Типы данных: double | single | int8
Ссылки
[1] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.
Расширенные возможности
Генерация кода C/C++ Генерация кода C и C++ с помощью MATLAB® Coder™.
Указания и ограничения по применению:
Имена и значения в аргументах пары "имя-значение" должны быть константами времени компиляции. Например, чтобы задать мягкий тип решения, включайте {coder.Constant('DecisionType'),coder.Constant('soft')} в -args значение codegen. Для получения дополнительной информации смотрите coder.Constant.
Для просмотра документации необходимо авторизоваться на сайте
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.