Каскадные фильтры

Поддерживаемые каскадные типы фильтра

Кодер поддерживает генерацию кода для многоскоростного каскада объектов фильтра (dsp.FilterCascade).

Генерация каскада фильтрует код

Инстанцируйте этапов фильтра и расположите каскадом их в рабочей области MATLAB®.

hm1 = dsp.FIRDecimator('DecimationFactor',12); 
hm2 = dsp.FIRDecimator('DecimationFactor',4); 
my_cascade = dsp.FilterCascade(hm1,hm2);
Для получения дополнительной информации использования смотрите dsp.FilterCascade в документации DSP System Toolbox™.

Кодер в настоящее время налагает определенные ограничения на типы фильтра, позволенные в каскадном фильтре. Смотрите Ограничения для Генерации кода с Каскадными Фильтрами прежде, чем создать ваши этапы фильтра и расположите каскадом объект фильтра.

Генерация каскада фильтрует код с fdhdltool Функция

Вызовите fdhdltool открыть диалоговое окно Generate HDL, передающее в каскадной Системе фильтра object™ и тип входных данных фиксированной точки.

fdhdltool(my_cascade,numerictype(1,16,15))
Установите желаемые свойства генерации кода и нажмите кнопку Generate, чтобы сгенерировать код.

Генерация каскада фильтрует код с generatehdl Функция

Вызовите generatehdl сгенерировать HDL-код для вашего фильтра, передающего в каскадном Системном объекте фильтра, типе входных данных фиксированной точки и свойствах генерации кода, как желаемый.

generatehdl(my_cascade,'InputDataType',numerictype(1,16,15), ...
    'Name','MyFilter','TargetLanguage','Verilog', ...
    'GenerateHDLTestbench','on')

Ограничения для генерации кода с каскадными фильтрами

Следующие правила и ограничения применяются к каскадным фильтрам, когда используется в генерации кода:

  • Можно сгенерировать код для каскадов, которые комбинируют следующие типы фильтра:

    • Decimators и/или структуры односкоростного фильтра

    • Интерполяторы и/или структуры односкоростного фильтра

    Генерация кода для каскадов, которые включают и decimators и интерполяторы, не поддержана. Если неподдерживаемые структуры фильтра или комбинации структур фильтра включены в каскад, генерация кода возвращает ошибку.

  • Для генерации кода позволена только плоская (одноуровневая) каскадная структура. Вложение каскадных фильтров запрещено.

  • По умолчанию сгенерированный HDL-код исключает регистры ввода и вывода из этапов каскада, за исключением:

    • Вход первой стадии и выход заключительного этапа.

    • Входные регистры этапов интерполятора.

    Чтобы сгенерировать выходные регистры для каждого этапа, выберите опцию Add pipeline registers в диалоговом окне Generate HDL. При использовании этой опции внутренние конвейерные регистры могут также быть добавлены, в зависимости от структур фильтра.

  • Когда каскадный фильтр передается fdhdltool, опция FIR adder style отключена. Если вы требуете, чтобы древовидные сумматоры для КИХ просочились каскад, выберите опцию Add pipeline registers (поскольку конвейеры требуют древовидных КИХ-сумматоров стиля).

  • Кодер генерирует отдельные файлы HDL-кода для каждого этапа каскада, в дополнение к коду верхнего уровня для самого каскадного фильтра. Файлы кода этапа фильтра идентифицированы путем добавления вектора символов '_stage1', '_stage2'... '_stageN' к имени фильтра.

Рисунок показывает настройки по умолчанию опций диалогового окна Generate HDL для каскадного создания фильтра.