Полифаза фильтров и быстрое преобразование Фурье - оптимизировано для генерации HDL-кода
Поддержка/фильтрация HDL-файлов DSP System Toolbox
Блок Channelizer HDL Optimized разделяет широкополосный входной сигнал на несколько узкополосных выходных сигналов. Он обеспечивает аппаратную скорость и оптимизацию площади для потоковых приложений данных. Блок принимает скаляр или векторный вход реальных или комплексных данных, обеспечивает аппаратно удобные сигналы управления и имеет опциональные выходные сигналы управления системой координат. Вы можете достичь пропускной способности выборка гига сэмплов в секунду (GSPS) с помощью векторного входа. Блок реализует полифазный фильтр с одним подфильтром на входной векторный элемент. Аппаратная реализация чередует подфильтры, что приводит к совместному использованию каждого множителя фильтра (FFT Length/ Input Size). В реализации БПФ используется тот же алгоритм Radix 2 ^ 2 БПФ, что и в блоке FFT HDL Optimized.
dataIn
- Входные данныеРазмер вектора должен быть степенью 2, которая составляет от 1 до 64 и не больше, чем количество каналов (длина БПФ).
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Блок не принимает uint64
данные.
Типы данных: fixed point
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| single
| double
Поддержка комплексного числа: Да
validIn
- Указывает на действительные входные данныеКогда validIn true
блок захватывает значение на dataIn.
Типы данных: Boolean
reset
- Сброс управляющего сигнала (опционально)Когда reset true
блок останавливает текущее вычисление и очищает внутреннее состояние.
Чтобы включить этот порт, выберите Enable reset input port.
Типы данных: Boolean
dataOut
- Выходные данные частотного каналаЕсли вы задаете Output vector size Same as number of frequency bands
(по умолчанию), выходные данные являются вектором 1-by- M, где M - длина БПФ.
Если вы задаете Output vector size Same as input size
, выходные данные являются вектором M -by-1, где M - размер входного вектора.
Порядок выхода является естественным для любого выхода. Тип выходных данных является результатом Filter output data type и роста разрядности в БПФ, необходимого для предотвращения переполнения.
validOut
- Указывает на действительные выходные данныеБлок устанавливает validOut на true
с каждой действительной выборкой на dataOut.
Типы данных: Boolean
startOut
- Указывает первый допустимый цикл выходных данных (необязательно)Блок устанавливает startOut на true
во время первой действительной выборки на dataOut.
Чтобы включить этот порт, выберите Enable start output port.
Типы данных: Boolean
endOut
- Указывает на последний допустимый цикл выходных данных (необязательно)Блок устанавливает endOut на true
во время последней допустимой выборки на dataOut.
Чтобы включить этот порт, выберите Enable end output port.
Типы данных: Boolean
Number of frequency bands (FFT length)
- длина БПФ8
(по умолчанию) | целочисленную степень двойкиДля генерации HDL-кода длина БПФ должна быть степенью 2 от 23 к 216.
Filter coefficients
- Полифазы фильтра[ -0.032, 0.121, 0.318, 0.482, 0.546, 0.482, 0.318, 0.121, -0.032 ]
(по умолчанию) | вектор числовых значенийЕсли количество коэффициентов не кратно Number of frequency bands (FFT length), блок заполняет этот вектор нулями. Спецификацией фильтра по умолчанию является фильтр конечной импульсной характеристики приподнятого косинуса, rcosdesign(0.25,2,4,'sqrt')
. Можно задать вектор коэффициентов или вызов функции создания фильтра, которая возвращает значения коэффициентов. Комплексные коэффициенты не поддерживаются. По умолчанию блок переводит коэффициенты в совпадающий тип данных, что и вход.
Complex multiplication
- HDL реализация комплексных умножителейUse 4 multipliers and 2 adders
(по умолчанию) | Use 3 multipliers and 5 adders
HDL- реализации комплексных умножителей, заданные как 'Use 4 multipliers and 2 adders'
или 'Use 3 multipliers and 5 adders'
. В зависимости от вашего инструмента синтеза и целевого устройства, одна опция может быть быстрее или меньше.
Эта опция применяется только при использовании архитектуры Radix 2 ^ 2.
Output vector size
- Размер выходных данныхSame as number of frequency bands
(по умолчанию) | Same as input size
Выходные данные являются вектором-строкой M каналов -by-1. Порядок выхода является естественным для любого выхода .
Same as number of frequency bands
- Выходные данные являются вектором с M 1 байт, где M - длина БПФ.
Same as input size
- Выходные данные являются вектором M -by-1, где M - размер входного вектора.
Divide butterfly outputs by two
- масштабирование БПФКогда вы выбираете этот параметр, FFT реализует общий коэффициент шкалы 1/ N путем масштабирования результата каждой стадии трубопровода по 2. Эта регулировка сохраняет выход БПФ в той же амплитуде, область значений и его вход. Если масштабирование отключено, БПФ избегает переполнения, увеличивая размер слова на 1 бит на каждом этапе.
Rounding mode
- Метод округления, используемый для внутренних вычислений с фиксированной точкойFloor
(по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Zero
См. «Режимы округления» Блок использует арифметику с фиксированной точкой для внутренних вычислений, когда вход является любым целым числом или типом данных с фиксированной точкой. Эта опция не применяется, когда вход single
или double
. Каждый этап БПФ проходит после умножения коэффициента twiddle, но перед бабочками. Округление также может происходить при приведении коэффициентов и выхода полифазного фильтра к заданным типам данных.
Saturate on integer overflow
- Обработка переполнения для внутренних вычислений с фиксированной точкойСм. «Обработка переполнения». Блок использует арифметику с фиксированной точкой для внутренних вычислений, когда вход является любым целым числом или типом данных с фиксированной точкой. Эта опция не применяется, когда вход single
или double
. Эта опция применяется к приведению коэффициентов и выхода полифазного фильтра к указанным типам данных.
Алгоритм БПФ избегает переполнения либо масштабирования выхода каждого этапа (Normalize
включен), или путем увеличения размера слова на 1 бит на каждом этапе (Normalize
отключен).
Coefficient data type
- Тип данных коэффициентов фильтраInherit: Same word length as input
(по умолчанию) | выражение типа данныхБлок приводит полифазы фильтра к этому типу данных с помощью заданных параметров округления и переполнения. Когда вы выбираете Inherit: Same word length as input
(по умолчанию), блок выбирает двоичную точку используя fi()
лучшие правила точности.
Filter output data type
- Тип данных выхода полифазного фильтраInherit: Same word length as input
(по умолчанию) | Inherit: via internal rule
| выражения типа данныхБлок приводит выход фильтра полифазы (вход в БПФ) к этому типу данных с помощью заданных параметров округления и переполнения. Когда вы выбираете Inherit: Same word length as input
(по умолчанию), блок выбирает двоичную точку лучшей точности, принимая во внимание значения коэффициентов фильтра и область значений входного типа данных.
По умолчанию логика БПФ не изменяет тип данных. Когда вы отключаете Divide butterfly outputs by two, БПФ увеличивает размер слова на 1 бит на каждом этапе, чтобы избежать переполнения.
Enable reset input port
- Дополнительный сигнал сбросаКогда вы выбираете этот параметр, порт reset отображается на значке блока. Когда вход reset true
блок останавливает вычисление и очищает все внутренние состояния.
Enable start output port
- Дополнительный сигнал управления, указывающий на начало данныхКогда вы выбираете этот параметр, порт startOut отображается на значке блока. Сигнал startOut верен для первого цикла выхода данных в систему координат.
Enable end output port
- Дополнительный сигнал управления, указывающий конец данныхКогда вы выбираете этот параметр, порт endOut отображается на значке блока. Сигнал endOut верен для последнего цикла выхода данных в систему координат.
Алгоритм полифазного фильтра требует подфильтра для каждого канала FFT. Для получения дополнительной информации об архитектуре полифазного фильтра см. [1] и Channelizer страницу с описанием блока.
Примечание
Выходы блока Channelizer HDL Optimized не совпадают с выходами блока Channelizer sample-for-sample. Это несоответствие связано с тем, что блоки применяют входные выборки к подфильтрам в разных порядках. Блок Channelizer HDL Optimized применяет вход X (0) к подфильтру E M -1 (z), X (1) к подфильтру E M -2 (z),..., X (M-1) к подфильтру E0 (z). Каналы, обнаруженные обоими блоками, совпадают, когда анализируются на нескольких системах координат.
Если размер входного вектора, M, совпадает с длиной БПФ, N, то блок реализует N подфильтров в оборудовании. Каждый подфильтр является транспонированным конечной импульсной характеристикой фильтром прямой формы с NumCoeffs/ N отводами.
Если размер вектора меньше N, блок реализует один подфильтр для каждого входного векторного элемента. Множители подфильтра совместно используются по мере необходимости для реализации N канальных фильтров. Общие отводы множителей имеют интерполяционную таблицу для коэффициентов фильтрации N/ M. За каждым отводом следует линия задержки N/ M -1 циклов.
Выходы подфильтров приводятся к указанному Filter output data type с помощью выбранных параметров округления и переполнения. Каждый патрубок фильтра в подфильтре конвейеризован, чтобы нацелить секции DSP FPGA.
Для образца, для БПФ длины 8 и входы размера вектора 4, блок реализует четыре фильтра. Каждый множитель разделяется N/ M раза или дважды. Каждое касание применяет два коэффициента, и линия задержки N/ M -1 циклов.
Для скалярного входа блок реализует один фильтр. Каждый множитель разделяется N раза. Каждое касание применяет N коэффициенты, и линия задержки составляет N -1 цикла.
Задержка изменяется с длиной БПФ и размером вектора. После обновления модели задержка отображается на значке блока. Отображаемая задержка является количеством циклов между первым допустимым входом и первым действительным выходом, принимая, что вход смежен. Коэффициенты фильтра не влияют на задержку. Установка размера выхода равного размеру входа уменьшает задержку, потому что выборки не сохраняются и не переупорядочиваются.
Эта схема показывает validIn
и validOut
сигналы для смежных входных данных с размером вектора 16 и длиной БПФ 512.
Схема также показывает необязательные startOut
и endOut
сигналы, которые указывают контуры системы координат. Когда включено, startOut
импульсы для одного цикла с первым validOut
системы координат и endOut
импульсы для одного цикла с последним validOut
системы координат.
Если вы применяете непрерывные входные кадры (нет зазора в validIn
между системами координат), выход также будет непрерывным, после начальной задержки.
The validIn
сигнал может быть несмежным. Данные в сопровождении validIn
сигнал сохранен до тех пор, пока система координат не будет заполняема. Затем данные выводятся в смежной системе координат из N циклов (длина БПФ). Эта схема показывает несмежный вход и смежный выход для длины БПФ 512 и размера вектора 16 выборок.
Эти данные о ресурсах и эффективности являются результатами размещения и маршрута из сгенерированного HDL-кода, нацеленного на Xilinx® Virtex® 6 (XC6VLX240-1ff784) ПЛИС. Три примера в таблицах используют это строение:
Длина БПФ (по умолчанию) - 8
Длина фильтра - 96 коэффициентов
16-битные комплексные входные данные
Типы выходных данных коэффициентов и фильтров (по умолчанию) - те же, что и количество полос частот
Комплексное умножение (по умолчанию) - 4 умножителя, 2 сумматора
Выход - включён
Минимизация включения синхроимпульса (параметр HDL Coder™)
Эффективность синтезированного HDL-кода варьируется с вашей целью и опциями синтеза.
Для скалярного входа проект достигает тактовой частоты 346 МГц. Задержка составляет 53 цикла. Подфильтры разделяют каждый множитель восемь (N) раз. В проекте используются эти ресурсы.
Ресурс | Используемое число |
---|---|
LUT | 1591 |
FFS | 2681 |
Xilinx LogiCORE® DSP48 | 16 |
Для входных векторов с четырьмя выборками конструкция достигает тактовой частоты 333 МГц. Задержка составляет 31 цикл. Подфильтры разделяют каждый множитель дважды (N/ M). В проекте используются эти ресурсы.
Ресурс | Используемое число |
---|---|
LUT | 1912 |
FFS | 3986 |
Файлы Xilinx LogiCORE DSP48 | 56 |
Для входных векторов с восемью выборками конструкция достигает тактовой частоты 292 МГц. Задержка составляет 20 циклов. Когда размер входа совпадает с длиной БПФ, подфильтры не используют никаких умножителей. В проекте используются эти ресурсы.
Ресурс | Используемое число |
---|---|
LUT | 1388 |
FFS | 2302 |
Файлы Xilinx LogiCORE DSP48 | 110 |
[1] Харрис, Ф. Дж., К. Дик и М. Райс. «Цифровые приемники и передатчики, использующие Polyphase Filter Banks для беспроводной связи». Транзакции IEEE по теории и методам СВЧ. Том 51, № 4, апрель 2003 года.
Этот блок поддерживает генерацию кода C/C + + для Simulink® режимы Accelerator и Rapid Accelerator и для генерации компонентов DPI.
Этот блок имеет одну архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.