Сверхдискретизируйте, отфильтруйте и субдискретизируйте входные сигналы — оптимизированный для генерации HDL-кода
Фильтрация/Многоскоростные фильтры
dspmlti4
Блок FIR Rate Conversion HDL Optimized сверхдискретизировал, фильтрует и субдискретизирует входные сигналы. Это оптимизировано для генерации HDL-кода и работает с одной выборкой каждого канала за один раз. Блок реализует эффективную многофазную архитектуру, чтобы избежать ненужных арифметических операций и высоких промежуточных частот дискретизации.
Блок сверхдискретизировал целочисленным фактором L, применяет КИХ-фильтр и субдискретизирует целочисленным фактором M.
Блок имеет порты управления ввода и вывода для того, чтобы следовать по потоку выборок. В настройке по умолчанию блок использует управляющие сигналы validOut
и validIn
. Для дополнительного управления потоками можно включить выходной сигнал ready
и входной сигнал request
.
Выходной порт ready
указывает, что блок может принять новую выборку входных данных на следующем временном шаге. Когда L ≥ M, можно использовать сигнал ready
достигнуть непрерывных выборок выходных данных. Если вы применяете новую входную выборку после каждого раза, когда блок возвращает ready
= true
, блок возвращает выборку вывода данных с validOut
= true
на каждом временном шаге.
Когда вы не включаете порт ready
, можно применить допустимую выборку данных только каждый ceil(L/M)
временные шаги. Например:
L/M = 4/5 — можно применить новую входную выборку на каждый временной шаг.
L/M = 3/2 — можно применить новую входную выборку на любой временной шаг.
Когда вы включаете входной порт request
, блок возвращает следующую выходную выборку, когда request
является true
, и допустимая выходная выборка доступна. Когда вы не используете request
, блок возвращает выходные выборки, когда они доступны. Когда нет новых данных доступно, блок возвращает validOut
= false
.
Можно соединить входной порт request
с выходным портом ready
нисходящего блока.
Этот значок показывает все дополнительные порты блока FIR Rate Conversion HDL Optimized.
Порт | Направление | Описание | Тип данных |
---|---|---|---|
dataIn | Входной параметр | Выборка данных, заданная как скаляр, или как вектор - строка, в котором каждый элемент представляет независимый канал. Блок принимает действительные или комплексные данные. |
|
validIn | Входной параметр | Получите значение dataIn , когда validIn будет true . Можно применяться, допустимые данные выбирают каждый ceil(L/M) временные шаги. | boolean |
request | Введите (Необязательно) | Запросите для новой выходной выборки. | boolean |
dataOut | Вывод | Передискретизируемая и отфильтрованная выборка данных, возвращенная как скаляр, или как вектор, в котором каждый элемент представляет независимый канал. | То же самое как dataIn |
validOut | Вывод | Проверка значения dataOut . Когда validOut является true , dataOut допустим. | boolean |
ready | Выведите (Необязательно) | Указывает, что блок готов к новой входной выборке, когда ready является true . | boolean |
Сверхдискретизировав фактор, L, заданный как скалярное целое число. Значение по умолчанию равняется 3.
Субдискретизируя фактор, M, заданный как скалярное целое число. Значение по умолчанию равняется 2.
Отфильтруйте коэффициенты, заданные как вектор в убывающих степенях z-1.
Можно сгенерировать коэффициенты фильтра с помощью функций проекта фильтра Signal Processing Toolbox™ (таких как fir1
). Разработайте фильтр lowpass с нормированной частотой среза, не больше, чем min(1/L,1/M)
. Блок инициализирует внутренние состояния фильтра, чтобы обнулить. Коэффициентами по умолчанию является firpm(70,[0 .28 .32 1],[1 1 0 0])
.
Установите этот флажок, чтобы включить порт, который указывает, когда блок может, на следующем временном шаге, принять новую выборку входных данных.
Установите этот флажок, чтобы включить порт, который запрашивает, чтобы блок возвратил выходную выборку. Когда портом request
является true
, и существует выходная доступная выборка, блок возвращает новую выходную выборку и устанавливает validOut
на true
. Когда request
является false
, или нет никакой новой доступной выборки, блок устанавливает validOut
на false
.
Методом округления значения по умолчанию для внутренних вычислений фиксированной точки является Floor
. режим округления Simplest
не поддержан.
Обработка Переполнения по умолчанию для внутренних вычислений фиксированной точки является переносом.
Тип данных КИХ фильтрует коэффициенты, заданные как объект fixdt(s,wl,fl)
с signedness
, word length
и свойствами fractional length
. Значением по умолчанию является fixdt(1,16,16)
.
Тип данных выборок выходных данных. Можно выбрать Inherit: Inherit via internal rule
, Inherit: Full precision
, или задать объект fixdt(s,wl,fl)
. Значением по умолчанию является Inherit: Same word length as input
.
Блок FIR Rate Conversion HDL Optimized реализует полностью параллельную многофазную архитектуру фильтра. Схема показывает, куда блок бросает типы данных, согласно вашей настройке.
Модели HDL блока конвейерно обрабатывают задержку, таким образом, существует начальная задержка нескольких временных шагов, прежде чем объект возвратит первую допустимую выходную выборку. Задержка зависит от коэффициентов фильтра и факторов передискретизации. Чтобы определить задержку от первой выборки в к первой выборке, наблюдайте сигнал validOut
.
Для выборки проектных показателей сгенерируйте HDL для блока, как сконфигурировано в Скорости передачи данных Управления Используя Готовое и пример Портов Запроса. Фильтр в качестве примера передискретизирует в 5/2 и использует симметричный фильтр с 71 касанием. Входные выборки и коэффициенты фильтра 16 битов шириной. Проект был предназначен к Xilinx® Virtex®-6 FPGA, с помощью Xilinx синтез ISE и инструменты маршрута и место.
После места и маршрута, проект достигает частоты часов на 535 МГц. Это использует эти ресурсы.
LUT | 592 |
FFS | 979 |
Xilinx LogiCORE® DSP48 | 15 |
Блокируйте RAM (16K) | 0 |
Производительность синтезируемого HDL-кода отличается в зависимости от ваших коэффициентов фильтра, цели FPGA и опций синтеза.