FIR Rate Conversion HDL Optimized

Сверхдискретизируйте, отфильтруйте и проредите входные сигналы — оптимизированный для генерации HDL-кода

Библиотека

Поддержка HDL DSP System Toolbox> Фильтрация

dsphdlfiltering

Описание

Блок FIR Rate Conversion HDL Optimized сверхдискретизировал, фильтрует и прореживает входные сигналы. Это оптимизировано для генерации HDL-кода и работает с одной выборкой каждого канала за один раз. Блок реализует эффективную многофазную архитектуру, чтобы избежать ненужных арифметических операций и высоких промежуточных частот дискретизации.

Блок сверхдискретизировал целочисленным коэффициентом L, применяет КИХ-фильтр и прореживает целочисленным коэффициентом M.

Блок имеет порты управления ввода и вывода для того, чтобы следовать по потоку выборок. В настройке по умолчанию блок использует validIn и validOut управляющие сигналы. Для дополнительного управления потоками можно включить ready выходной сигнал и request входной сигнал.

ready выходной порт указывает, что блок может принять новую выборку входных данных на следующем временном шаге. Когда LM, можно использовать 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Входной параметрВыборка данных в виде скаляра, или как вектор-строка, в котором каждый элемент представляет независимый канал. Блок принимает действительные или комплексные данные.
  • fixdt()

  • uint8/16/32, int8/16/32

  • double и single позволены для симуляции, но не для генерации HDL-кода.

validInВходной параметрПолучите значение dataIn, когда validIn true. Можно применяться, допустимые данные производят каждый ceil(L/M) временные шаги. boolean
requestВведите (Необязательно)Запросите для новой выходной выборки.boolean
dataOutВывод Передискретизируемая и отфильтрованная выборка данных, возвращенная как скаляр, или как вектор, в котором каждый элемент представляет независимый канал.То же самое как dataIn
validOutВывод Проверка dataOut значение. Когда validOut true, dataOut isvalid.boolean
readyВыведите (Необязательно)Указывает, что блок готов к новой входной выборке, когда ready true.boolean

Параметры

Основной

Interpolation factor

Сверхдискретизировав фактор, L в виде скалярного целого числа. Значение по умолчанию равняется 3.

Decimation factor

Прореживая фактор, M в виде скалярного целого числа. Значение по умолчанию равняется 2.

FIR filter coefficients

Отфильтруйте коэффициенты в виде вектора в убывающих степенях z-1.

Можно сгенерировать коэффициенты фильтра с помощью функций создания фильтра Signal Processing Toolbox™ (таких как fir1). Спроектируйте фильтр lowpass с нормированной частотой среза, не больше, чем min(1/L,1/M). Блок инициализирует внутренние состояния фильтра, чтобы обнулить. Коэффициентами по умолчанию является firpm(70,[0 .28 .32 1],[1 1 0 0]).

Enable ready output port

Установите этот флажок, чтобы включить порт, который указывает, когда блок может, на следующем временном шаге, принять новую выборку входных данных.

Enable request input port

Установите этот флажок, чтобы включить порт, который запрашивает, чтобы блок возвратил выходную выборку. Когда request портом является true, и существует выходная доступная выборка, блок возвращает новую выходную выборку и устанавливает validOut к true. Когда request false, или нет никакой новой доступной выборки, блок устанавливает validOut к false.

Типы данных

Rounding mode

Методом округления значения по умолчанию для внутренних вычислений фиксированной точки является Floor. Simplest округление режима не поддержано.

Saturate on integer overflow

Обработка Переполнения по умолчанию для внутренних вычислений фиксированной точки является переносом.

Coefficients Data Type

Тип данных КИХ фильтрует коэффициенты в виде fixdt(s,wl,fl) объект с signedness, word length, и fractional length свойства. Значением по умолчанию является fixdt(1,16,16).

Output Data Type

Тип данных выборок выходных данных. Можно выбрать Inherit: Inherit via internal rule, Inherit: Full precision, или задайте fixdt(s,wl,fl) объект. Значением по умолчанию является Inherit: Same word length as input.

Примеры

развернуть все

Преобразуйте сигнал от 48 кГц до 32 кГц с помощью блока FIR Rate Conversion HDL Optimized.

Источник является входным сигналом косинуса, произведенным на уровне 48 кГц. Модель передает новую выборку данных в блок на каждом временном шаге путем содержания validIn = true. После передискретизации, validOut сигналом является true на только 2/3 временных шагов.

Откройте модель

Сконфигурируйте модель

Задайте параметры скорости передачи данных в InitFcn 'callback'.

Сконфигурируйте блок FIR Rate Conversion HDL Optimized. Используйте коэффициент интерполяции по умолчанию 2 и фактор децимации 3. Используйте firmpm функционируйте, чтобы спроектировать equiripple КИХ-фильтр. В группе Типов данных, набор Содействующий тип данных к fixdt(1,16,15) чтобы разместить фильтр, вы спроектировали.

Запустите модель и отобразите результаты

Запустите модель. Используйте Logic Analyzer, чтобы просмотреть сигналы ввода и вывода блока. Синий значок в модели указывает на переданные потоком сигналы. Запустите Logic Analyzer из панели инструментов модели.

В Logic Analyzer отметьте шаблон validIn и получившийся validOut сигнал.

Сгенерируйте HDL-код

Чтобы сгенерировать HDL-код от блока FIR Rate Converter HDL Optimized, щелкните правой кнопкой по блоку и выберите Create Subsystem from Selection. Затем щелкните правой кнопкой по подсистеме и выберите HDL Code> Generate HDL Code for Subsystem.

Преобразуйте сигнал от 40 МГц до 100 МГц с помощью блока FIR Rate Converter HDL Optimized. Использует дополнительный request входной сигнал и ready выходной сигнал, чтобы управлять скоростью передачи данных.

  • Чтобы представлять уровень системных часов 200 МГц, модель соединяет повторяющийся истинно-ложный сигнал с request порт. Эта настройка генерирует выходные выборки на уровне 100 МГц, т.е. каждый шаг второго раза. В качестве альтернативы можно соединить этот порт с ready порт нисходящего блока.

  • Когда блок может принять новую входную выборку на следующем временном шаге, он устанавливает ready выходной сигнал к true. Модель соединяет этот сигнал с источником формы волны, который генерирует одну выборку за один раз.

Откройте модель

Сконфигурируйте модель

Задайте параметры скорости передачи данных в InitFcn 'callback'.

Сконфигурируйте блок FIR Rate Conversion HDL Optimized. Используйте коэффициент интерполяции 5 и фактор децимации 2. Используйте firmpm функционируйте, чтобы спроектировать equiripple КИХ-фильтр. Установите оба флажка, чтобы включить ready и request порты. % В группе Типов данных, набор Содействующий тип данных к fixdt(1,16,15) размещать ваше создание фильтра.

Запустите модель и отобразите результаты

Запустите модель. Используйте Logic Analyzer, чтобы просмотреть сигналы ввода и вывода блока. Синий значок в модели указывает на переданные потоком сигналы. Запустите Logic Analyzer из панели инструментов модели.

В Logic Analyzer отметьте шаблон request и получившийся validOut сигнал и шаблон ready и получившийся validIn сигнал.

Сгенерируйте HDL-код

Чтобы сгенерировать HDL-код от блока FIR Rate Converter HDL Optimized, щелкните правой кнопкой по блоку и выберите Create Subsystem from Selection. Затем щелкните правой кнопкой по подсистеме и выберите HDL Code> Generate HDL Code for Subsystem.

Алгоритм

Блок FIR Rate Conversion HDL Optimized реализует полностью параллельную многофазную архитектуру фильтра. Схема показывает, куда блок бросает типы данных, согласно вашей настройке.

Задержка

Модели HDL блока конвейерно обрабатывают задержку, таким образом, существует начальная задержка нескольких временных шагов, прежде чем объект возвратит первую допустимую выходную выборку. Задержка зависит от коэффициентов фильтра и факторов передискретизации. Чтобы определить задержку из первой выборки в к первой выборке, наблюдайте validOut сигнал.

Производительность

Для выборки проектных показателей сгенерируйте HDL для блока, как сконфигурировано в Скорости передачи данных Управления Используя Готовое и пример Портов Запроса. Фильтр в качестве примера передискретизирует в 5/2 и использует симметричный фильтр с 71 касанием. Входные выборки и коэффициенты фильтра 16 битов шириной. Проект был предназначен к Xilinx® Virtex®-6 FPGA, с помощью Xilinx синтез ISE и инструменты маршрута и место.

После места и маршрута, проект достигает частоты часов на 535 МГц. Это использует эти ресурсы.

LUT592
FFS979

Xilinx LogiCORE® DSP48

15
Блокируйте RAM (16K)0

Производительность синтезируемого HDL-кода варьируется в зависимости от ваших коэффициентов фильтра, цели FPGA и опций синтеза.

Расширенные возможности

Смотрите также

|

Введенный в R2015b