exponenta event banner

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

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

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

Создание кода каскадного фильтра

Создайте экземпляры этапов фильтра и каскадируйте их в рабочей области MATLAB ®.

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

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

Создание кода каскадного фильтра с помощью fdhdltool Функция

Звонить fdhdltool для открытия диалогового окна Generate HDL (Генерировать ЛПВП), проходящего через каскадный фильтр System object™ (Система) и тип входных данных с фиксированной точкой.

fdhdltool(my_cascade,numerictype(1,16,15))
Задайте требуемые свойства создания кода и нажмите кнопку «Создать» для создания кода.

Создание кода каскадного фильтра с помощью generatehdl Функция

Звонить generatehdl чтобы создать код HDL для фильтра, передав в каскадном фильтре системный объект, тип входных данных с фиксированной точкой и требуемые свойства генерации кода.

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

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

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

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

    • Прореживатели и/или односкоростные структуры фильтров

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

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

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

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

    • Вход первой ступени и выход конечной ступени.

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

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

  • При передаче каскадного фильтра fdhdltool, опция стиля сумматора FIR отключена. Если для фильтров FIR в каскаде требуются древовидные сумматоры, выберите опцию Добавить регистры трубопроводов (Add pipeline regists) (так как для трубопроводов требуются вектористические сумматоры).

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

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