Демодулируйте временной интервал выборки OFDM и возвратите поднесущие для пользовательских протоколов связи
Wireless HDL Toolbox / Модуляция
Блок OFDM Demodulator демодулирует выборки ортогонального мультиплексирования деления частоты (OFDM) временного интервала и выходные поднесущие на основе параметров OFDM. Блок поддерживает стандарт нового радио (NR) 5G, долгосрочная эволюция (LTE) [1], беспроводная локальная сеть (WLAN 802.11a/g/n/ac) [2], WiMAX, цифровое видео широковещательно передается (DVB) и стандарты цифрового аудио широковещательно передается (DAB).
Блок принимает входные данные наряду с допустимым управляющим сигналом и этими параметрами OFDM: длина БПФ, длина CP и количество правых и левых защитных поднесущих. Блок выходные параметры демодулировал данные наряду с допустимыми и готовыми сигналами средств управления. Блок включает готовый выходной порт только, когда эти параметры OFDM предоставляются блоку через входные порты. Блок производит соответствующие параметры OFDM только, когда портом ready является 1
(высоко) и первым портом valid каждого символа OFDM является 1
(высоко).
Блок поддерживает скалярные и векторные входные параметры. Можно использовать векторный вход, чтобы увеличить пропускную способность и достигнуть пропускной способности выборки гига сэмплов в секунду (GSPS). Блок обеспечивает интерфейс и архитектуру, подходящую для аппаратного развертывания и генерации HDL-кода.
data
— Входные данныеВходные данные в виде скаляра или вектор-столбца действительных или комплексных чисел. Размер вектора должен быть степенью 2 в диапазоне от 1 до 64, и меньше чем или равный длине БПФ.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Типы данных: single
| double
| int8
| int16
| int32
| signed fixed point
Поддержка комплексного числа: Да
valid
— Указывает на допустимые входные данныеУказывает на допустимые входные данные в виде скаляра.
Этот порт является управляющим сигналом, который указывает, когда выборка от входного порта data допустима. Когда этим значением является 1
, блок получает значения на входном порте data. Когда этим значением является 0
, блок игнорирует значения на входном порте data.
Типы данных: Boolean
FFTLen
— Длина БПФДлина БПФ в виде скаляра. Длина БПФ должна быть степенью 2 и в диапазоне от 8 до 65 536. Это значение должно быть меньше чем или равно значению параметров Maximum FFT length.
Чтобы поддержать минимальную длину БПФ 8, типом данных FFTLen должен быть fixdt(0,k,0)
, где k больше или равен 4.
Чтобы включить этот порт, установите параметр OFDM parameters source на Input port
.
Типы данных: single
| double
| uint8
| uint16
| uint32
| unsigned fixed point
CPLen
— Длина циклического префиксаДлина циклического префикса в виде скаляра в диапазоне от 0 до FFTLen.
Чтобы поддержать минимальную длину БПФ 8, типом данных CPLen должен быть fixdt(0,k,0)
, где k больше или равен 4.
Чтобы включить этот порт, установите параметр OFDM parameters source на Input port
.
Типы данных: single
| double
| uint8
| uint16
| uint32
| unsigned fixed point
numLgSc
— Количество покинутых защитных несущих символа OFDMКоличество покинутых защитных несущих символа OFDM в виде скаляра в диапазоне от 0 до (FFTLen/2) – 1.
Чтобы поддержать минимальную длину БПФ 8, типом данных numLgSc должен быть fixdt(0,k,0)
, где k больше или равен 2.
Чтобы включить этот порт, установите параметр OFDM parameters source на Input port
.
Типы данных: single
| double
| uint8
| uint16
| uint32
| unsigned fixed point
numRgSc
— Количество правильных защитных несущих символа OFDMКоличество правильных защитных несущих символа OFDM в виде скаляра в диапазоне от 0 до (FFTLen/2) – 1.
Чтобы поддержать минимальную длину БПФ 8, типом данных numRgSc должен быть fixdt(0,k,0)
, где k больше или равен 2.
Чтобы включить этот порт, установите параметр OFDM parameters source на Input port
.
Типы данных: single
| double
| uint8
| uint16
| uint32
| unsigned fixed point
reset
— Очистите внутренние состоянияОчистите внутренние состояния в виде скаляра. Когда этим значением является 1
(TRUE), блок останавливает текущее вычисление и очищает все внутренние состояния.
Чтобы включить этот порт, выберите параметр Enable reset input port.
Типы данных: Boolean
data
— Демодулируемые выходные данныеДемодулируемые выходные данные, возвращенные как скаляр с комплексным знаком или вектор-столбец. Тип выходных данных зависит от типа данных порта входа data.
Когда вы устанавливаете параметр OFDM parameters source на Property
и очистите параметр Divide butterfly outputs by two, выходные увеличения размера слова log2 (FFT length) биты.
Когда вы устанавливаете параметр OFDM parameters source на Input port
и очистите параметр Divide butterfly outputs by two, выходные увеличения размера слова log2 (Maximum FFT length) биты.
Чтобы избежать переполнения, выберите параметр Divide butterfly outputs by two.
Типы данных: single
| double
| int8
| int16
| int32
| signed fixed point
Поддержка комплексного числа: Да
valid
— Указывает на допустимые выходные данныеУказывает на допустимые входные данные, возвращенные как скаляр.
Этот порт является управляющим сигналом, который указывает, когда выходной порт data допустим. Блок устанавливает это значение к 1
когда выборки данных доступны на выходном порте data. Когда вы выбираете параметр Remove DC subcarrier, это значение установлено к 0
в центре выходных выборок, чтобы исключить несущую DC.
Типы данных: Boolean
ready
— Указывает, что блок готовУправляющий сигнал, который указывает, когда блок готов к новым входным данным. Когда этим значением является 1
, блок принимает входные данные в следующем временном шаге. Когда этим значением является 0
, блок игнорирует входные данные в следующем временном шаге.
Чтобы включить этот порт, установите параметр OFDM parameters source на Input port
.
Типы данных: Boolean
OFDM parameters source
— Источник параметров OFDMProperty
(значение по умолчанию) | Input port
Можно установить параметры OFDM с входным портом или путем выбора значения для параметра.
Выберите Property
включить FFT length, Cyclic prefix length, Number of left guard subcarriers и параметры Number of right guard subcarriers.
Выберите Input port
включить FFTLen, CPLen, numLgSc, входные порты numRgSc и параметр Maximum FFT length. Максимальные наборы параметров длины БПФ верхняя граница области значений допустимых значений для входного порта FFTLen.
Maximum FFT length
— Максимальная продолжительность длины БПФ
(значение по умолчанию) | степень 2 в диапазоне от 8 до 65 536Задайте максимальную длину БПФ.
Чтобы включить этот параметр, установите параметр OFDM parameters source на Input port
.
FFT length
— Длина БПФ
(значение по умолчанию) | степень 2 в диапазоне от 8 до 65 536Задайте длину БПФ. Когда вы устанавливаете параметр OFDM parameters source на Property
, блок использует это значение длины БПФ в качестве максимальной длины БПФ.
Чтобы включить этот параметр, установите параметр OFDM parameters source на Property
.
Cyclic prefix length
— Длина циклического префикса
(значение по умолчанию) | целое число в диапазоне от 0 до FFT lengthЗадайте длину циклического префикса.
Чтобы включить этот параметр, установите параметр OFDM parameters source на Property
.
Number of left guard subcarriers
— Количество поднесущих защитной полосы в левом экстремальном значении символа OFDM
(значение по умолчанию) | целое число в диапазоне от 0 до (FFT length/2) – 1Задайте количество левых защитных поднесущих.
Чтобы включить этот параметр, установите параметр OFDM parameters source на Property
.
Number of right guard subcarriers
— Количество поднесущих защитной полосы в правильном экстремальном значении символа OFDM
(значение по умолчанию) | целое число в диапазоне от 0 до (FFT length/2) – 1Задайте количество правильных защитных поднесущих.
Чтобы включить этот параметр, установите параметр OFDM parameters source на Property
.
Enable CP Fraction
— Механизм реализации части CPoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы включить параметр CP Fraction на маске блока.
CP Fraction
— Процент циклического префикса, чтобы удалить
(значение по умолчанию) | лежит в диапазоне от 0 до 1Циклическая префиксная часть в виде значения от 0 до 1, включительно. Этот параметр задает процент выборок CP, которые блок удаляет из запуска символа OFDM. Блок переключает остающиеся выборки CP в конец символа OFDM.
Когда этим параметром является 0.55
, блок удаляет 55% CP с начала символа и переключает 45% в конец символа. Когда вы устанавливаете этот параметр на 1
, блок удаляет 100% CP от запуска символа OFDM и не переключает выборок в конец.
Чтобы включить этот параметр, выберите параметр Enable CP Fraction.
Remove DC subcarrier
— Исключите или включайте поднесущую DCon
(значение по умолчанию) | off
Когда вы выбираете этот параметр, блок исключает поднесущую DC в выходе путем установки выхода допустимый сигнал на 0
для центра выходных поднесущих.
Enable reset input port
— Сбросьте сигналoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы включить входной порт reset.
Divide butterfly outputs by two
— Разделите бабочку БПФ выходные параметры на дваoff
(значение по умолчанию) | on
Этот параметр управляет масштабирующейся опцией блока FFT HDL Optimized (DSP System Toolbox) в блоке OFDM Demodulator.
Когда вы выбираете этот параметр, БПФ реализует полный 1/N масштабный коэффициент путем деления выхода каждого умножения бабочки два. Эта корректировка сохраняет выход БПФ в той же амплитудной области значений как ее вход. Если вы очищаете этот параметр, блок избегает переполнения путем увеличения размера слова на один бит после каждого умножения бабочки.
Rounding Method
— Режим Rounding для внутренних вычислений фиксированной точкиFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Zero
Этот параметр задает тип округления режима для внутренних вычислений фиксированной точки. Для получения дополнительной информации об округлении режимов, смотрите Округление Режимов (DSP System Toolbox). Когда вход является любым целочисленным типом данных или типом данных с фиксированной точкой, Алгоритм бпф использует вычисления с фиксированной точкой для внутренних вычислений. Этот параметр не применяется, когда вход имеет тип данных single
или double
. Округление применяется к умножению вертеть-фактора и операциям масштабирования.
Последовательность блочной операции OFDM Demodulator реализована с помощью этих блоков: Готовый Генератор, Циклический Префиксный Съемник, Демонстрационный Повторитель, Переключатель БПФ, БПФ, Вниз Сэмплер и Селектор Поднесущей. Параметры, показанные в этом рисунке, конфигурируют поведение блока.
Этот блок включает готовый порт, когда вы устанавливаете параметр OFDM parameters source на Input port
. Это готовое управление портами входные выборки на основе максимальной длины БПФ.
Следующие уравнения применяются.
N h = ceil
((N r + FFTLen + CPLen)/vecLen)
N l = ceil
((N r + Maximum FFT length + CPLen)/vecLen) – N h
В этих уравнениях,
N h является количеством высоких готовых тактов
N l является количеством низких готовых тактов
N r является количеством остающихся выборок от предыдущего символа OFDM. Первоначально, этим значением является 0
. В последующих операциях блок вычисляет N r использование уравнения, (N r + FFTLen + CPLen) - (floor
((N r + FFTLen + CPLen) / vecLen) x vecLen)
vecLen является длиной вектора
Этот блок удаляет выборки CP из символа OFDM для извлечения символов созвездия. Блок выполняет демонтаж CP на основе этих параметров: CP length, CP fraction (когда включено), и FFT length.
Этот блок поддерживает оконную передачу путем реализации дробного циклического префиксного удаления. Работа с окнами сокращает внеполосные выбросы. Передатчик выполняет работу с окнами путем наложения хвоста каждого символа OFDM с главой следующего символа OFDM. Приемник должен избежать этих перекрытых выборок в вычислении БПФ. Дробный CP решает эту задачу путем удаления части CP в начале символа и остатка от CP в конце символа. Реализация дробного CP алгоритма также делает этот блок менее чувствительным к синхронизации смещения.
Блок обрабатывает CP на двух этапах. Во-первых, блок вычисляет количество выборок CP, чтобы удалить, N r, и удаляет те выборки из входных выборок. В этом случае, N r = CP fraction x CP length.
Затем блок вычисляет количество отсчетов, чтобы переключить, N s, и переключает те выборки в конец символа OFDM во временном интервале. Где, N s = CP length – (CP fraction x CP length).
Эти два сегмента вместе составляют общую длину циклического префикса, CP N = N s + N r. Параметр CP fraction управляет, сколько выборок блок удаляет в начале символа. Блок переключает остаток от циклического префикса от запуска символа в конец символа. Блок квантует параметр CP fraction как fi(0,11,10)
. Чтобы достигнуть целого числа выборок, блок вычисляет N r = floor
(CP N x CP fraction).
Например, если длина БПФ равняется 128, и длина CP равняется 10, блок получает 128 выборок плюс циклический префиксный размер.
Этот блок повторяет количество отсчетов длины БПФ, пока это не формирует максимальную длину БПФ. Для этой операции буфера блоков входные выборки сначала и затем повторяют выборки на основе максимального значения длины БПФ. Этот механизм повторения помогает постараться не масштабироваться во входе блока FFT. Этот блок является дополнительным и доступным только, когда вы устанавливаете параметр OFDM parameters source на Input port
. Когда вы устанавливаете параметр OFDM parameters source на Property
, значение длины БПФ, обеспеченное в маске блока, установлено как максимальная длина БПФ. Блок не должен повторять выборки в этом контексте.
Например, если длина БПФ равняется 128, и максимальная длина БПФ 2048, каждый символ OFDM состоит из 128 выборок. Блок преобразует эти 128 выборок в 2 048 выборок путем повторения этих 128 выборок 16 раз. После того, как блок генерирует 2 048 выборок данных, он отправляет данные и допустимые входные сигналы со следующим блоком.
Традиционно, приемники выполняют БПФ, переключают частотный диапазон на нижний регистр. Однако этот метод требует памяти и вводит задержку, связанную с размером БПФ. Вместо этого приемник может выполнить ту же операцию во временном интервале при помощи свойства сдвига частоты преобразований Фурье. Сдвиг функции в одной области соответствует умножению комплексной экспоненциальной функцией в другой области. Чтобы уменьшать аппаратные ресурсы и задержку, этот блок выполняет сдвиг БПФ путем умножения выборок временного интервала на комплексную экспоненциальную функцию.
Эти уравнения описывают сдвиг БПФ. Уравнение для N - БПФ точки
Для сдвига БПФ N/2 несущие в любом направлении, замене , получившийся в
Это уравнение упрощает до
С тех пор эквивалентно , и , это уравнение упрощает до
Итоговое уравнение показывает, что БПФ переключается на нижний регистр, временной интервал упрощает до умножения (–1)n. В результате блок реализует сдвиг БПФ путем умножения выборок временного интервала или на +1 или на –1.
Этот блок преобразует сигнал временной области в сигнал частотного диапазона на основе максимальной длины БПФ, предусмотрел блок. Можно ввести значение длины БПФ или через параметр или через входной порт. Выход подсистемы сдвига БПФ питается блок FFT HDL Optimized (DSP System Toolbox). Блок вычисляет максимальный БПФ для всей длины БПФ и значений длины CP.
Наборы параметров Divide butterfly outputs by two, реализует ли БПФ полный 1/N масштабный коэффициент путем деления выхода каждого умножения бабочки два. Эта корректировка сохраняет выход БПФ в той же амплитудной области значений как ее вход. Когда вы очищаете параметр Divide butterfly outputs by two, блок избегает переполнения путем увеличения размера слова на один бит после каждого умножения бабочки.
Этот блок вниз демонстрационное количество отсчетов максимальной длины БПФ к количеству отсчетов длины БПФ. Этот блок является дополнительным и доступным только, когда вы устанавливаете параметр OFDM parameters source на Input port
. Когда вы устанавливаете параметр OFDM parameters source на Property
, значение длины БПФ, введенное в комплектах масок блока максимальная длина БПФ. Блок не должен прореживать выборки в этом контексте.
Например, если длина БПФ равняется 128, и максимальная длина БПФ 2048, вход является 2 048 выборками и должен быть прорежен с соответствующим к длине БПФ 128. В этом случае, выборки блока 1 выборка для каждых 16 выборок.
Выходные поднесущие категоризированы в данные, DC, и охраняют поднесущие. Поднесущие данных содержат полезные данные. Этот блок выбирает поднесущие путем удаления количества левых защитных поднесущих, и правильные защитные поднесущие предусмотрели блок. Количество защитных поднесущих, чтобы установить меняется в зависимости от стандартов.
Если вы выбираете параметр Remove DC subcarrier, блок исключает поднесущую DC из выхода. Блок исключает поднесущую DC путем установки порта valid на 0
(FALSE) для центрального цикла выходных поднесущих.
Блок получает выходные данные в допустимых циклах на основе типа входа: скаляр или вектор.
Этот рисунок показывает демонстрационный выход и задержку блока OFDM Demodulator, когда вы задаете скалярный вход, устанавливаете параметр OFDM parameters source на Property
и используйте настройки по умолчанию для других параметров блоков. В этом примере параметр FFTLen устанавливается на 64
, параметр Cyclic prefix length устанавливается на 16
, параметр Number of left guard subcarriers устанавливается на 6
, и параметр Number of right guard subcarriers устанавливается на 5
.
В этом примере задержка блока вычисляется с помощью этой формулы: Cyclic prefix length + FFTLatency + Number of left guard subcarriers + 12, где FFTLatency является задержкой блока FFT для заданной длины БПФ, и 12, является количеством задержек трубопровода.
После вычисления задержка блока является 207 тактами как показано в следующем рисунке.
Этот рисунок показывает демонстрационный выход и задержку блока, когда вы задаете скалярный вход и устанавливаете параметр OFDM parameters source на Input port
. В этом примере порт FFTLen установлен в 64
, порт CPLen установлен в 16
, порт numLgSc установлен в 6
и порт numRgSc установлен в 5
, и параметр Maximum FFT length устанавливается на 128
.
Задержка блока вычисляется с помощью формулы CPLen + FFTLen + FFTLatency + numLgSc x (Maximum FFT length/FFTLen) + 25, где FFTLatency является задержкой блока FFT для заданной максимальной длины БПФ, и 25 количество задержек трубопровода.
После вычисления задержка блока является 424 тактами, как показано в этом рисунке.
Блок принимает вход только, когда ready является 1
(высоко). В этом случае блок получает параметры на первом цикле, когда портом входа valid является 1
(высоко).
Этот рисунок показывает демонстрационный выход и задержку блока OFDM Demodulator, когда вы задаете двухэлементный вход вектор-столбца и устанавливаете параметр OFDM parameters source на Property
и используйте настройки по умолчанию для других параметров блоков. FFTLen установлен в 64
, Cyclic prefix length установлен в 16
, и Number of left guard subcarriers и Number of right guard subcarriers установлены в 6
и 5
, соответственно.
В этом примере задержка блока вычисляется с помощью этой формулы: floor
(Cyclic prefix length/vecLen) + vecFFTLatency + floor
(Number of left guard subcarriers/vecLen), + 12, то, где vecFFTLatency является задержкой блока FFT для заданной длины БПФ и длины вектора, vecLen, является длиной вектора, и 12 количество задержек трубопровода.
Это вычисление показывает, что задержка блока является 142 тактами, как показано в этом рисунке.
Этот рисунок показывает демонстрационный выход и задержку блока, когда вы задаете двухэлементный вход вектор-столбца и устанавливаете параметр OFDM parameters source на Input port
. В данном примере FFTLen установлен в 64
, CPLen установлен в 16
, numLgSc установлен в 6
, numRgSc установлен в 5
, и Maximum FFT length установлен в 128
.
В этом примере задержка блока вычисляется с помощью этой формулы: floor
(CPLen/vecLen) + FFTLen/vecLen + vecFFTLatency + floor
(numLgSc/vecLen), x (Maximum FFT length/FFTLen) + 26, то, где vecFFTLatency является задержкой блока FFT для заданной максимальной длины БПФ и длины вектора, vecLen, является длиной вектора, и 26 количество задержек трубопровода.
После вычисления задержка блока является 266 тактами, как показано в этом рисунке.
Блок принимает вход только, когда ready является 1
(высоко). В этом случае блок получает параметры на первом цикле, когда портом входа valid является 1
(высоко).
Эффективность синтезируемого HDL-кода меняется в зависимости от вашей цели и опций синтеза. Типом входных данных, используемым в этом примере для генерации HDL-кода, является fixdt(1,16,14)
.
Эта таблица показывает результаты синтеза данных ресурсов и данных о производительности при использовании блока со скалярным или двухэлементным входом вектор-столбца для значений настройки по умолчанию. Сгенерированный HDL предназначен к Xilinx® Zynq®- 7 000 оценочных плат ZC706.
Входные данные | Срез LUTs | Регистры среза | DSPS | Блокируйте RAM | Максимальная частота в МГц |
---|---|---|---|---|---|
Скаляр | 2434 | 4161 | 8 | 1 | 340 |
Вектор | 4890 | 7764 | 16 | 0 | 235 |
[1] 3GPP релиз 14 TS 36.211 версии 14.2.0. "Физические каналы и модуляция". LTE - Развитый Универсальный Наземный Радио-доступ (к E-UTRA).
[2] "Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования". Станд. IEEE 802.11 – 2012.
[3] Стефания Сезия, Иссам Туфик и пекарь Мэтью. LTE - Долгосрочная Эволюция THE UMTS от теории до практики.
[4] Эрик Дэхлмен, Стефан Парквол и Йохан Сколд. 4G - LTE/LTE - Усовершенствованный для Мобильного широкополосного Второго выпуска.
Этот блок поддерживает генерацию кода C/C++ для Simulink® акселератор и быстрые режимы Accelerator и для генерации компонента DPI.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Этот блок не имеет никакой HDL Block Properties.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.