Демодулируйте выборки OFDM временной области и возвращайте ресурсную сетку LTE
Беспроводной HDL Toolbox/модуляция
Блок LTE OFDM Demodulator реализует алгоритм демодуляции сигналов LTE, заданный стандартом LTE TS 36.212 [1]. Блок возвращает ресурсную сетку LTE, которая используется для обнаружения идентификатора камеры, восстановления главного информационного блока (MIB), восстановления системного информационного блока (SIB) 1 и последующего декодирования.
Можно выбрать количество нисходящих ресурсных блоков (NDLRB) и выбрать обычный или расширенный циклический префикс (CP), как описано в стандарте LTE. Блок реализует фракцию CP для поддержки оконной передачи LTE и предоставляет параметр, чтобы сконфигурировать местоположение удаления префикса.
Блок обеспечивает интерфейс и архитектуру, подходящую для генерации HDL-кода и аппаратного развертывания.
Блок принимает входные данные либо с максимальной скоростью 30,72 МГц, либо со скоростью дискретизации, соответствующей NDLRB. Скорости дискретизации входа для NDLRB 6, 15, 25, 50, 75 и 100 составляют 1,92 МГ ц, 3,84 МГ ц, 7,68 МГ ц, 15,36 МГ ц, 30,72 МГ ц и 30,72 МГ ц, соответственно. Блок использует быстрое преобразование Фурье с 2048 точками (БПФ) для всех значений NDLRB и возвращает количество выборок сетки ресурса, необходимых для выбранного NDLRB. По умолчанию блок исключает несущую постоянного тока (DC).
Задержка от первой входной выборки до первой выходной выборки зависит от вашего выбора NDLRB и типа циклического префикса, как показано в этой таблице.
Максимальная частота дискретизации | Соответствует скорости дискретизации NDLRB | |||
---|---|---|---|---|
NDLRB | Задержка - Нормальный CP | Задержка - Расширенный CP | Задержка - Нормальный CP | Задержка - Расширенный CP |
6 | 5295 | 5647 | 6654 | 6676 |
15 | 5241 | 5593 | 6520 | 6564 |
25 | 5181 | 5533 | 6660 | 6748 |
50 | 5031 | 5383 | 6700 | 6876 |
75 | 4881 | 5233 | 6930 | 7282 |
100 | 4731 | 5083 | 6780 | 7132 |
data
- Входные данныеВходные данные, заданные как знаковое вещественное или комплексное число.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Типы данных: single
| double
| int8
| int16
| int32
| signed fixed point
Поддержка комплексного числа: Да
valid
- Указывает на действительные входные данныеBoolean
скалярУправляющий сигнал, который указывает, когда выборка от data входного порта действительна. Когда это значение 1
(true), блок захватывает значения на data входном порте. Когда это значение 0
(false), блок игнорирует входные data выборки.
Типы данных: Boolean
NDLRB
- Количество нисходящих ресурсных блоков6
| 15
| 25
| 50
| 75
| 100
Количество нисходящих ресурсных блоков, заданное как 6
, 15
, 25
, 50
, 75
, или 100
. NDLRB должно быть одним из этих шести значений, заданных стандартом LTE TS 36.212 [1]. Блок производит выборку этого порта в начале каждого подкадра и игнорирует любые изменения в подкадре.
Чтобы включить этот порт, установите параметр NDLRB source равным Input port
.
Типы данных: uint8
| uint16
| uint32
| fixdt(0,K,0), K >= 7
| single
| double
cyclicPrefixType
- Тип CPТип CP, заданный как Boolean
скаляр. Когда это значение 0
(false), блок выбирает нормальный CP. Когда это значение 1
(true), блок выбирает расширенный CP. Блок производит выборку этого порта в начале каждого подкадра и игнорирует любые изменения в подкадре.
Чтобы включить этот порт, установите параметр Cyclic prefix source равным Input port
.
Типы данных: Boolean
reset
- Очистить внутренние состоянияУдаление внутреннего состояния, заданное как Boolean
скаляр. Когда это значение 1
(true), блок останавливает текущее вычисление и очищает все внутренние состояния. Когда это значение 0
(false), и valid входное значение 1
(true), блок начинает новый подкадр.
Чтобы включить этот порт, выберите параметр Enable reset input port.
Типы данных: Boolean
data
- Выходные данныеВыходные данные, возвращенные как знаковое вещественное или комплексное число. Тип данных совпадает с типом данных входного data порта. Когда вы очищаете параметр Divide butterfly outputs by two, выход размера слова увеличений на 11 биты, чтобы избежать переполнения.
Типы данных: single
| double
| int8
| int16
| int32
| signed fixed point
Поддержка комплексного числа: Да
valid
- Указывает на действительные выходные данныеУправляющий сигнал, который указывает, когда data выходной порт действителен. Блок устанавливает это значение равным 1
(true), когда выборки сетки ресурса доступны на data выходном порту. Когда Remove DC subcarrier выбран, это значение устанавливается на 0
(false) в центре выходных выборок, чтобы исключить несущую постоянного тока.
Типы данных: Boolean
ready
- Указывает, что блок готовУправляющий сигнал, который указывает, когда блок готов к новым входным данным. Когда это значение 1
(true), блок принимает входные данные на следующем временном шаге. Когда это значение 0
(false), блок игнорирует входные данные на следующем временном шаге.
Чтобы включить этот порт, установите параметр Input data sample rate равным Match input data sample rate to NDLRB
.
Типы данных: Boolean
NDLRB source
- Источник NDLRBProperty
(по умолчанию) | Input port
Можно задать NDLRB с входом портом или путем выбора значения для параметра. Чтобы включить параметр NDLRB, выберите Property
. Чтобы включить NDLRB порт, выберите Input port
.
NDLRB
- Количество нисходящих ресурсных блоков6
(по умолчанию) | 15
| 25
| 50
| 75
| 100
Количество нисходящих ресурсных блоков, заданное как 6
, 15
, 25
, 50
, 75
, или 100
. NDLRB должно быть одним из этих шести значений, заданных стандартом LTE TS 36.212 [1].
Чтобы включить этот параметр, установите параметр NDLRB source равным Property
.
Cyclic prefix source
- Источник типа циклического префиксаProperty
(по умолчанию) | Input port
Циклический префикс можно задать, выбрав значение параметров или используя вход порт. Чтобы включить параметр Cyclic prefix type, выберите Property
. Чтобы включить cyclicPrefixType порт, выберите Input port
.
Cyclic prefix type
- Тип циклического префиксаNormal
(по умолчанию) | Extended
Тип циклического префикса, заданный как Normal
или Extended
.
Чтобы включить этот параметр, установите параметр Cyclic prefix source равным Property
.
CP fraction
- Процент удаляемого циклического префикса0.55
(по умолчанию) | значение от 0 до 1Циклическая дробь префикса, заданная как значение от 0 до 1 включительно. Этот параметр задает процент выборок CP, которые блок удаляет из начала символа OFDM. Блок смещает оставшиеся выборки CP в конец символа OFDM.
Когда этот параметр 0.55
блок удаляет 55% CP из начала символа и смещает 45% в конец символа. Когда вы устанавливаете этот параметр 1
блок удаляет 100% CP из начала символа OFDM и не сдвигает никакие выборки в конец.
CP fraction обеспечивает оконную поддержку передачи LTE. Когда передатчик применяет оконную обработку, символы циклически расширяются и перекрываются. В проекте приемника лучшее местоположение, чтобы удалить префикс и извлечь символ, зависит от настроек окна в передатчике. Для получения дополнительной информации о оконной обработке для LTE-передатчика, смотрите раздел «Алгоритмы» lteOFDMModulate
(LTE Toolbox) функция.
Remove DC subcarrier
- Исключить или включить поднесущую постоянного токаoff
(по умолчанию) | on
Когда вы выбираете этот параметр, блок исключает поднесущую постоянного тока в выходе сетки ресурсов. Поднесущая постоянного тока присутствует в центре 12 × поднесущих NDLRB. Блок исключает поднесущую постоянного тока путем установки низкого valid сигнала (false
) для центрального цикла выходов поднесущих.
Enable reset input port
- Сигнал сбросаoff
(по умолчанию) | on
Выберите этот параметр, чтобы включить reset порт на значке блока.
Input data sample rate
- Входная частота выборкиUse maximum input data sample rate
(по умолчанию) | Match input data sample rate to NDLRB
Этот параметр задает тип частоты дискретизации, которую нужно выбрать для входных данных.
Чтобы обеспечить скорость выборки входных данных 30,72 МГц, выберите Use maximum input data sample rate
.
Чтобы обеспечить скорость выборки входных данных на основе параметра NDLRB, выберите Match input data sample rate to NDLRB
. Входные частоты дискретизации для NDLRB значений 6
, 15
, 25
, 50
, 75
, и 100
1,92 МГ ц, 3,84 МГ ц, 7,68 МГ ц, 15,36 МГ ц, 30,72 МГ ц и 30,72 МГ ц соответственно.
Для получения дополнительной информации см. раздел «Контроллер скорости передачи данных».
Divide butterfly outputs by two
- Разделите выходы БПФ-бабочки на дваoff
(по умолчанию) | on
Этот параметр управляет опцией масштабирования блока FFT HDL Optimized (DSP System Toolbox) внутри LTE OFDM Demodulator.
Когда вы выбираете этот параметр, БПФ реализует общий коэффициент N 1/ шкал путем деления выхода каждого умножения бабочки на два. Эта регулировка сохраняет выход БПФ в той же амплитуде, область значений и его вход. Если вы отключаете этот параметр, блок избегает переполнения, увеличивая размер слова на один бит после каждого умножения бабочки.
Rounding Method
- Режим округления для внутренних вычислений фиксированной точкиFloor
(по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Zero
Этот параметр задает тип режима округления для внутренних вычислений с фиксированной точкой. Для получения дополнительной информации о режимах округления см. Раздел «Режимы округления» (DSP System Toolbox). Когда вход является любым целочисленным типом данных или типом данных с фиксированной точкой, алгоритм БПФ использует арифметику с фиксированной точкой для внутренних вычислений. Этот параметр не применяется, когда вход имеет тип данных single
или double
. Округление применяется к операциям умножения и масштабирования двух множителей.
Последовательность операций блока LTE OFDM Demodulator переносится с использованием этих блоков: Data Rate Controller, CP Prefix Remover, Sample Repeater, FFT Shift, БПФ и Resource Grid Selection. Блок Контроллера Скорости Передачи Данных помогает в управлении скоростью входных данных, генерируя сигнал готовности. Блок удаления CP удаляет часть CP в начале символа и оставшуюся часть CP в конце символа. Блок Sample Repeater повторяет выборки на основе значений NDLRB. Блок повторяет выборки до тех пор, пока они не образуют 2048 выборок и преобразует скорость входных данных в максимальную скорость, поддерживаемую LTE. Блок FFT Shift выполняет сдвиг БПФ во временной области. Блок FFT преобразует сигнал частотного диапазона в сигнал временной области. Блок Resource Grid Selection извлекает элементы ресурсной сетки на основе NDLRB и скорости выборки входных данных и предоставляет демодулированный выход. Параметры, показанные на этом рисунке, конфигурируют поведение блока.
Блок принимает входные данные либо с максимальной скоростью 30,72 МГц, либо со скоростью дискретизации, соответствующей NDLRB. Скорости дискретизации входа для значений NDLRB 6, 15, 25, 50, 75 и 100 составляют 1,92 МГ ц, 3,84 МГ ц, 7,68 МГ ц, 15,36 МГ ц, 30,72 МГ ц и 30,72 МГ ц, соответственно.
Когда вы устанавливаете параметр Input data sample rate равным Use maximum input data sample rate
блок действует на основе параметров демодуляции (NDLRB и CP prefix type) и предоставляет выходы данные вместе с выходом valid сигналом следующему блоку.
Когда вы устанавливаете параметр Input data sample rate равным Match input data sample rate to NDLRB
блок генерирует сигнал выхода ready и управляет входом со скоростью относительно NDLRB. Блок принимает выборки данных относительно NDLRB, когда сигнал ready 1
Правда.
Этот рисунок показывает временную схему генерации ready сигнала для непрерывного входа, когда NDLRB 6
а CP prefix type есть Normal
, имеющий длину БПФ 128 и длину КП 10.
numHigh = FFT length + CP length = 128 + 10 = 138 тактов.
numLow = Maximum FFT length + Maximum CP length - (numHigh) = 2048 + 160 - (138) = 2070 тактов.
Этот рисунок показывает временную схему генерации ready сигнала для дискретного входа с 1
(высокий) для 16 тактов, когда NDLRB 6
а CP prefix type есть Normal
, имеющий длину БПФ 128 и длину КП 10.
numHigh = (FFT length + CP length -1) * Maximum FFT length / FFT length + 1 = (128 + 10 -1) * 16 + 1 = 2193 тактовых импульсов.
numLow = Maximum FFT Length + Maximum CP Length - (numHigh) = 2048 + 160 - (2193) = 15 тактов.
Этот блок поддерживает оконную передачу LTE путем реализации дробного циклического удаления префикса. Оконная обработка уменьшает выбросы вне диапазона. Передатчик выполняет оконцевание путем перекрытия хвоста каждого символа OFDM с главой следующего символа OFDM. Приемник должен избегать этих перекрываемых выборок в расчете БПФ. Дробная CP решает эту проблему, удаляя часть CP в начале символа и оставшуюся часть CP в конце символа. Реализация алгоритма CP-дроби также делает LTE OFDM Demodulator блок менее чувствительным к смещению по времени.
Параметр Cyclic prefix type определяет, ожидает ли блок нормального или расширенного CP. Когда блок работает с максимальной частотой дискретизации 30,72 МГц, он принимает, что каждый символ является 2048 выборками плюс циклический размер префикса, сопоставленный с этой частотой. При использовании обычного CP префикс первого символа в каждом пазе имеет 160 выборки, в то время как последующие символы имеют префикс 144 выборки. Расширенный CP имеет 512 выборки.
Когда блок работает со скоростями дискретизации относительно значения NDLRB, например, если NDLRB является 6, блок принимает 128 выборок плюс размер циклического префикса, сопоставленный с этой частотой. При использовании обычного CP префикс первого символа в каждом пазе имеет 10 выборки, в то время как последующие символы имеют префикс из девяти выборок. Расширенный CP имеет 32 выборки.
Блок обрабатывает CP в два этапа. Во-первых, блок вычисляет количество выборок CP, чтобы удалить, N r, и удаляет эти выборки из входных выборок. Затем он вычисляет количество выборок, чтобы сдвинуть, N с, и смещает эти выборки в конец символа OFDM во временном интервале. Эти два сегмента вместе составляют общую длину циклического префикса, N cp = N s + N r.
Параметр CP fraction управляет тем, сколько выборок блок удаляют в начале символа. Блок смещает оставшуюся часть циклического префикса с начала символа на конец символа. Блок квантует CP fraction, чтобы fi(0,11,10)
. Чтобы достичь целого числа выборок, блок вычисляет N r = floor
(N cp * CP fraction).
Форма волны показывает сигналы управления для двух каскадов удаления CP. Блок сконфигурирован для нормального CP, поэтому CP первого символа является 160 выборками. CP для последующих символов является 144 выборками. Это CP fraction 0.55
.
На первом этапе блок устанавливает сигнал внутреннего valid на 0
(false
), чтобы исключить первые N r выборок символа. Для первого символа N r = 88. Манипуляция valid сигналом также исключает окончательные выборки N s, которые заменяются сдвинутыми выборками на следующем этапе. Для первого символа N s = 72. На втором этапе блок записывает выборки N s в ОЗУ, а затем читает и возвращает эти выборки в конце символа. Блок сдвигает сигнал внутреннего valid, чтобы включить сдвинутые выборки в их новое местоположение. Результатом являются 2048 выборок, правильно выровненных во временном интервале при подготовке к БПФ.
Для второго символа с циклическим префиксом 144 выборки, N r = 80 и N s = 64.
Для получения дополнительной информации о оконной обработке LTE-передатчика, смотрите раздел «Алгоритмы» lteOFDMModulate
(LTE Toolbox) функция.
Когда блок LTE OFDM Demodulator использует максимальную длину БПФ 2048. Таким образом, когда предоставлены входные выборки, соответствующие фактической длине БПФ, блок Sample Repeater повторяет выборки до тех пор, пока они не образуют 2048 выборок. Для этой операции блок буферизует сначала входные выборки, а затем повторяет выборки на основе значения NDLRB. Этот механизм повторения помогает избежать масштабирования на входе БПФ блока. Для примера, если NDLRB равен 6, каждый символ OFDM состоит из 128 выборок. Блок преобразует эти 128 выборок в 2048 выборок, повторяя их 16 раз. После того, как блок генерирует 2048 выборок данных, он отправляет data и valid сигналы в следующий блок.
Обычно приемники выполняют сдвиг БПФ в частотный диапазон. Однако этот метод требует памяти и вводит задержку, связанную с размером БПФ. Вместо этого приемник может выполнить ту же операцию во временном интервале, используя свойство перемены частоты преобразований Фурье. Сдвиг функции в одной области соответствует умножению на комплексную экпоненту функцию в другой области. Чтобы уменьшить оборудование ресурсы и задержки, этот блок выполняет сдвиг БПФ, умножая выборки во временной области на функцию комплексной экпоненты.
Эти уравнения описывают сдвиг БПФ. Уравнение для БПФ с N точками
Для сдвига БПФ N/2 несущих в любом направлении замените , в результате чего
Это уравнение упрощает
С тех пор эквивалентно , и , это уравнение упрощает
Окончательное уравнение показывает, что сдвиг БПФ во временном интервале упрощается умножением на (-1)n. Поэтому блок реализует сдвиг БПФ путем умножения выборок во временной области на + 1 или -1.
Выход подсистемы сдвига БПФ подается на блок FFT HDL Optimized (DSP System Toolbox). Частота дискретизации выборок во временной области должна быть 30,72 МГц. Блок вычисляет БПФ с 2048 точками для всех значений NDLRB.
Параметр Divide butterfly outputs by two управляет тем, реализует ли БПФ общий коэффициент шкалы 1/ N, деля выход каждого умножения бабочки на два. Эта регулировка сохраняет выход БПФ в той же амплитуде, область значений и его вход. Когда вы отключаете масштабирование (по умолчанию), блок избегает переполнения, увеличивая размер слова на один бит после каждого умножения бабочки.
Эта часть алгоритма выбирает соответствующее количество поднесущих на основе NDLRB. Из 2048 поднесущих блок выбирает центральные 12xNDLRB поднесущие для выхода.
Если выбран параметр Remove DC subcarrier, блок исключает поднесущую постоянного тока из итогового выхода ресурсной сетки. Блок исключает поднесущую постоянного тока путем установки сигнала valid на 0
(false) для центрального цикла выходов поднесущих.
Для 25 NDLRB блок возвращает 12 × 25 = 300 выборок сетки ресурса. Блок указывает местоположение этих выходных выборок с validOut сигналом, установленным на 1
Правда. Сигнал validOut 0
(false) в центре выходных выборок, чтобы исключить несущую постоянного тока.
Эта форма волны показывает выход, когда вы устанавливаете параметр Input data sample rate равным Use maximum input data sample rate
и выберите NDLRB 25 с нормальным CP.
Эта форма волны показывает выход блока, когда вы устанавливаете параметр Input data sample rate равным Match input data sample rate to NDLRB
и выберите NDLRB 25 с нормальным CP. Блок повторяется четыре раза на входе БПФ для вычисления БПФ с 2048 точками. Фактические выборки БПФ отбираются на каждые четыре выборки на выходе БПФ. Блок выбирает центральные (12 × 25 = 300) ресурсные сетчатые элементы и выводит их вместе с действительным сигналом.
Эффективность синтезированного HDL-кода варьируется с вашей целью и опциями синтеза. Тип входных данных, используемых для генерации HDL-кода fixdt(1,16,14)
.
В этой таблице показаны результаты синтеза данных о ресурсах и эффективности при использовании блока с строением по умолчанию. Сгенерированный HDL, ориентированный на Xilinx® Zynq® XC7Z045I-FFG900-2L ПЛИС. Проект достигает тактовой частоты 280 МГц.
Ресурс | Используемое число |
---|---|
LUTs | 6072 |
Регистры | 8291 |
DSPs | 16 |
Блокируйте ОЗУ | 23 |
F7 Muxes | 0 |
F8 Muxes | 0 |
RAMB36/FIFO | 6 |
RAMB18 | 18 |
[1] 3GPP TS 36.212. «Мультиплексирование и канальное кодирование». 3rd Генерация Partnership Project; Группа технических спецификаций Radio Доступа Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL-адрес: https://www.3gpp.org.
[2] Sesia, S., I. Toufik, and M. Baker, eds. LTE - Долгосрочная эволюция UMTS: от теории к практике. Hoboken, NJ: John Wiley & Sons Ltd., 2009.
Этот блок поддерживает генерацию кода C/C + + для Simulink® режимы Accelerator и Rapid Accelerator и для генерации компонентов DPI.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет одну архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
Вы не можете сгенерировать HDL для этого блока внутри Resettable Synchronous Subsystem (HDL Coder).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.