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

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

Кодер поддерживает генерацию кода для многократного каскада объектов фильтра (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 чтобы открыть диалоговое окно Генерация HDL, передав в каскадном фильтре System 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')

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

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

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

    • Дециматоры и/или односкоростные фильтрующие структуры

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

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

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

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

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

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

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

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

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

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