exponenta event banner

filterBuilder

Интерактивный дизайн фильтра

Синтаксис

filterBuilder(h)
filterBuilder('response')

Описание

filterBuilder запускает интерактивный инструмент для построения фильтров. Он опирается на fdesign объектно-ориентированная конструкция фильтра и предназначена для сокращения времени разработки в процессе разработки фильтра. filterBuilder использует подход, ориентированный на спецификацию, чтобы найти наилучший алгоритм для требуемого отклика.

Примечание

Для использования необходимо установить Toolbox™ обработки сигналов fdesign и filterBuilder. Некоторые функции, описанные ниже, могут быть недоступны, если установка не включает дополнительно системный Toolbox™ DSP. Можно проверить наличие обеих панелей инструментов, введя ver в командной строке.

Дополнительные сведения об использовании filterBuilder, см. раздел Процесс проектирования построителя фильтров.

Использовать filterBuilder, введите filterBuilder в командной строке MATLAB ® с использованием одного из трех подходов:

  • Просто введите filterBuilder. MATLAB открывает диалоговое окно для выбора типа ответа фильтра. После выбора типа ответа фильтра filterBuilder открывает соответствующее диалоговое окно проектирования фильтра.

  • Войти filterBuilder(h), где h - существующий объект фильтра. Например, если h - полосовой фильтр, filterBuilder(h) открывает диалоговое окно проектирования полосового фильтра. h объект должен быть создан с помощью filterBuilder или использование fdesign.

    Примечание

    Для создания и импорта объектов фильтра System необходимо иметь программное обеспечение DSP System Toolbox.

  • Войти filterBuilder('response') заменять response с методом ответа из следующей таблицы. MATLAB открывает диалоговое окно проектирования фильтра, соответствующее заданному отклику.

Примечание

Для реализации ряда конструкций фильтров, перечисленных в следующей таблице, необходимо иметь программное обеспечение DSP System Toolbox. Если имеется только программное обеспечение Signal Processing Toolbox, можно разработать ограниченный набор следующих типов фильтров-ответов.

Метод ответаОписание конструкции результирующего фильтраОбъект фильтра
arbgrpdelayКонструкция фильтра произвольной групповой задержкиfdesign.arbgrpdelay(Панель системных инструментов DSP)
arbmagКонструкция фильтра произвольной величиныfdesign.arbmag(Панель системных инструментов DSP)
arbmagnphaseФильтр произвольного отклика (величина и фаза)fdesign.arbmagnphase(Панель системных инструментов DSP)
audioweightingФильтр взвешивания звукаfdesign.audioweighting(Панель системных инструментов DSP)
bandpass или bpПолосовой фильтрfdesign.bandpass(Панель системных инструментов DSP)
bandstop или bsПолосовой фильтрfdesign.bandstop(Панель системных инструментов DSP)
cicФильтр CICfdesign.decimator(M,'cic',...) или fdesign.interpolator(L,'cic',...)
Посмотрите fdesign.decimator(Панель системных инструментов DSP) и fdesign.interpolator(Панель системных инструментов DSP)
ciccompКомпенсатор CICfdesign.ciccomp(Панель системных инструментов DSP)
расческаГребенчатый фильтрfdesign.comb(Панель системных инструментов DSP)
разностьФильтр дифференциатораfdesign.differentiator(Панель системных инструментов DSP)
fracdelayФильтр дробной задержкиfdesign.fracdelay(Панель системных инструментов DSP)
полупенда или hbПолуполосный фильтрfdesign.halfband(Панель системных инструментов DSP)
highpass или hpФильтр верхних частотfdesign.highpass(Панель системных инструментов DSP)
hilbФильтр Гильбертаfdesign.hilbert(Панель системных инструментов DSP)
isinc,
isinclp, или
isinchp
Обратный sinc-фильтр нижних или верхних частотfdesign.isinclp(Панель системных инструментов DSP) и
fdesign.isinchp(Панель системных инструментов DSP)
lowpass или lpФильтр нижних частот (по умолчанию)fdesign.lowpass(Панель системных инструментов DSP)
меткаФильтр надрезовfdesign.notch(Панель системных инструментов DSP)
nyquistФильтр Найквистаfdesign.nyquist(Панель системных инструментов DSP)
октаваОктавный фильтрfdesign.octave(Панель системных инструментов DSP)
parameqФильтр параметрического эквалайзераfdesign.parameq(Панель системных инструментов DSP)
пикПиковый фильтрfdesign.peak(Панель системных инструментов DSP)

Примечание

Поскольку они не изменяют структуру фильтра, параметры величины и метод проектирования можно настроить при использовании filterBuilder.

Области проектирования построителя фильтров

Основная панель проектирования

Основная панель построителя фильтров зависит от типа ответа фильтра, но базовая структура совпадает. На следующем рисунке показана основная компоновка диалогового окна.

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

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

  • Сохранить переменную как - если нажать кнопку Применить, чтобы применить изменения, или кнопку ОК, чтобы закрыть это диалоговое окно, filterBuilder сохраняет текущий фильтр в рабочей области MATLAB как объект фильтра с введенным именем.

  • Показать отклик фильтра (View Filter Response) - отображает отклик величины для текущих спецификаций фильтра и метода проектирования, открывая инструмент визуализации фильтра (FVTool).

Примечание

filterBuilder содержит опцию «Применить». При каждом нажатии кнопки «Применить» filterBuilder записывает измененный фильтр в рабочую область MATLAB. Этот измененный фильтр имеет имя переменной, назначенное в поле Сохранить переменную как. Чтобы применить изменения без перезаписи переменной в рабочей области, измените имя переменной в поле Сохранить переменную (Save variable), как после нажатия кнопки Применить (Apply).

В диалоговом окне «Построитель фильтров» имеются три вкладки, содержащие три области: «Главная», «Типы данных» и «Создание кода». Первая панель изменяется в соответствии с проектируемым фильтром. Последние две панели одинаковы для всех фильтров. Эти панели рассматриваются в следующих разделах.

Панель «Типы данных»

Вторая вкладка диалогового окна «Построитель фильтров» показана на следующем рисунке.

Раскрывающийся список Арифметика (Arithmetic) позволяет выбрать Double precision, Single precision, или Fixed point. Некоторые из этих опций могут быть недоступны в зависимости от параметров фильтра. Эти параметры описаны в следующей таблице.

Запись арифметического спискаВлияние на фильтр
Double precisionВсе операции фильтрации и коэффициенты используют представления с двойной точностью, плавающей запятой и математику. filterBuilder для создания фильтра, double precision является значением по умолчанию для свойства Арифметика.
Single precisionВсе операции фильтрации и коэффициенты используют представления с плавающей запятой и математические представления с одной точностью.
Fixed pointЭта запись применяет выбранные значения по умолчанию, обычно используемые на многих цифровых процессорах, к свойствам фильтра с фиксированной точкой. Эти свойства включают в себя длины слов коэффициентов, длины дробей и различные режимы работы. Этот параметр позволяет использовать только фиксированные типы данных с подписью. Конструкция фильтра с фиксированной точкой с filterBuilder доступна только при установке ПО Fixed-Point Designer™ вместе с ПО DSP System Toolbox.

На следующем рисунке показана панель «Типы данных» после выбора Fixed point для параметра «Арифметика» и задайте для параметра «Внутренние элементы фильтра» значение Specify precision. На этом рисунке показана панель Типы данных для случая, когда флажок Использовать системный объект для реализации фильтра не установлен на главной панели.

При установке флажка Использовать системный объект для реализации фильтра (Use a System object to implementation filter) на главной панели появляется панель Типы данных (Data Types), как показано ниже.

Не все параметры, описанные в следующем разделе, применяются ко всем фильтрам. Например, фильтры FIR не имеют параметров Section input и Section output.

Входной сигнал

Укажите формат фильтра для данных, подлежащих фильтрации. Для всех случаев: filterBuilder реализует фильтры, использующие двоичное масштабирование точек и ввод со знаком. При необходимости можно задать длину слова и длину дроби.

Коэффициенты

Выберите способ задания длины слова и длины дроби числителя фильтра и коэффициентов знаменателя:

  • Specify word length позволяет ввести длину слова коэффициентов в битах. В этом режиме filterBuilder автоматически устанавливает длину дроби коэффициентов в двоично-точечное масштабирование, которое обеспечивает наилучшую возможную точность для значения и длины слова коэффициентов.

  • Binary point scaling позволяет ввести длину слова и длину дроби коэффициентов в битах. Если применимо, введите длины отдельных дробей для коэффициентов числителя и знаменателя.

  • Коэффициенты фильтра не соответствуют параметрам режима округления и режима переполнения, которые доступны при выборе Specify precision из списка Фильтровать внутренние элементы (Filter internals). Коэффициенты всегда насыщены и округлены до Nearest.

Ввод сечения

Выберите способ указания длины слова и длины дроби типа данных с фиксированной точкой в каждом разделе фильтра SOS. Этот параметр отображается только в том случае, если выбранной структурой фильтра являются IIR и SOS.

  • Binary point scaling позволяет вводить значения длины слов и дробей в битах.

  • Specify word length позволяет вводить длины слов в битах.

Вывод раздела

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

  • Binary point scaling позволяет вводить длины слов и дробей выходных данных секции в битах.

  • Specify word length позволяет ввести длину выходного слова в битах.

Государство

Содержит состояния фильтра до, во время и после операций фильтра. Состояния действуют как память фильтра между запусками или сеансами фильтрации. Используйте этот параметр, чтобы указать, как обозначать длину слова состояния и дроби. Этот параметр не отображается для структур фильтрации прямой и прямой форм, поскольку filterBuilder выводит состояние непосредственно из входного формата. Государства всегда используют подписанное представление:

  • Binary point scaling позволяет ввести длину слова и длину дроби накопителя в битах.

  • Specify precision позволяет ввести длину слова и длину дроби в битах (если доступно).

Продукт

Определяет, как фильтр обрабатывает выходные данные операций изделия. Выберите один из следующих вариантов:

  • Full precision - Сохранять полную точность результата.

  • Keep LSB - Сохранить наименьший бит в результате, когда вам нужно сократить слова данных.

  • Specify Precision - позволяет установить точность (длину дроби), используемую при выводе умножений.

Внутренние устройства фильтра

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

  • Full precision - указывает, что фильтр поддерживает полную точность во всех расчетах для продуктов, выходных данных и в накопителе.

  • Specify precision - Задайте значения длины слов и дробей, применяемые к результатам операций с изделием, выходному сигналу фильтра и накопителю. При выборе этого параметра включаются элементы управления длиной слова и дроби.

Подписанный

При выборе этой опции фильтр будет использовать подписанные представления для коэффициентов фильтра.

Длина слова

Задает длину слова для соответствующего параметра фильтра в битах.

Длина фракции

Задает длину дроби для параметра ассоциативного фильтра в битах.

Accum

Используйте этот параметр, чтобы указать, как следует обозначать слова-накопители и длины дробей.

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

  • Full precision - Поддерживать полную точность в аккумуляторе.

  • Keep MSB - Сохранить в накопителе старший разряд.

  • Keep LSB - Храните младший бит в накопителе, когда нужно укоротить слова данных.

  • Specify Precision - позволяет установить точность (длину дроби), используемую накопителем.

Продукция

Задает режим, используемый фильтром для масштабирования выходных данных после фильтрации. Имеются следующие варианты:

  • Avoid Overflow - Установите длину фракции выходных данных, чтобы избежать переполнения данных. Avoid overflow считается консервативной настройкой, поскольку она не зависит от значений входных данных и диапазона.

  • Best Precision - Установка длины доли выходных данных для максимизации точности выходных данных.

  • Specify Precision - установка длины дроби, используемой отфильтрованными данными.

Рабочие параметры фиксированной точки

Параметры в этой группе управляют тем, как фильтр округляет значения с фиксированной точкой и как он обрабатывает значения, которые переполняются.

Режим округления

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

  • ceil - Округлый к положительной бесконечности.

  • convergent - Округлить до ближайшего представимого целого числа. Привязывает к ближайшему даже сохраненному целому числу. Это наименее смещенный из методов, доступных в этом программном обеспечении.

  • zero/fix - Округлый к нулю.

  • floor - Округлый к отрицательной бесконечности.

  • nearest - Округлый в сторону ближайшего. Связи вокруг к положительной бесконечности.

  • round - Округлый в сторону ближайшего. Связи вокруг к отрицательной бесконечности для отрицательных чисел и к положительной бесконечности для положительных чисел.

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

Режим переполнения

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

  • Saturate - Ограничить выход наибольшим положительным или отрицательным представимым значением.

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

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

Отливка до суммы

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

Если снять флажок Привести перед суммой (Cast before sum), фильтр предотвращает приведение добавленных элементов к формату суммы перед операцией сложения. Выберите этот параметр, чтобы получить наиболее точные результаты суммирования без учета оборудования, которое может использоваться фильтром. Формат ввода, на который ссылается команда Привести перед суммой, зависит от используемой структуры фильтра.

Эффект очистки или выбора Литейная форма перед суммой выглядит следующим образом:

  • Очищено (Cleared) - настраивает операции суммирования фильтра для сохранения добавленных значений в формате, перенесенном из предыдущей операции.

  • Выбрано (Selected) - настраивает операции суммирования фильтра для преобразования входного формата добавленных данных в формат вывода суммирования перед выполнением операции суммирования. Обычно выбор Cast before sum генерирует результаты суммирования, которые более точно совпадают с результатами цифровых сигнальных процессоров.

Область создания кода

Панель создания кода содержит опции для различных реализаций завершенной конструкции фильтра. В зависимости от установки можно создать код MATLAB, VHDL и Verilog из разработанного фильтра. Можно также выбрать создание или обновление модели Simulink ® из разработанного фильтра. Эти параметры описаны в следующем разделе.

HDL

Дополнительные сведения об этой опции см. в разделе Открытие пользовательского интерфейса кодера HDL проекта фильтра в построителе фильтров (кодер HDL проекта фильтра).

MATLAB

Создание кода MATLAB на основе спецификаций фильтра

  • Создание функции, возвращающей фильтр в качестве вывода

    При выборе этой опции создается функция, которая проектирует объект фильтра с помощью fdesign.

  • Создание функции фильтрации данных

    При выборе этой опции создается функция, которая принимает данные в качестве входных и выводит данные, отфильтрованные с помощью разработанного фильтра. Тип данных вывода фильтра задается в соответствии с настройками типа данных на панели «Типы данных».

При нажатии на кнопку «Создать код MATLAB» открывается диалоговое окно «Сохранить файл». Укажите имя и расположение файла и сохраните файл. Теперь фильтр содержится в редактируемом файле.

Модель Simulink

Создание блоков и подсистем Simulink на основе разработанных фильтров

Если щелкнуть Создать модель (Generate Model), построитель фильтров создает блоки и подсистемы Simulink из разработанных фильтров.

При нажатии кнопки Создать модель (Generate Model) открывается диалоговое окно Экспорт в Simulink (Export to Simulink).

  • Имя блока (Block Name) - имя нового блока подсистемы, по умолчанию задано значение Фильтр (Filter).

  • Пункт назначения - Current сохраняет созданную модель в текущей модели Simulink. New создает новую модель, содержащую созданный блок. User Defined создает новую модель или подсистему в местоположении, указанном в User Defined.

  • Перезаписать созданный блок «Filter» - перезаписывает существующий блок с именем, указанным в поле «Имя блока». Снимите этот флажок, чтобы создать новый блок с таким же именем.

  • Построить модель с использованием базовых элементов (Build model using basic elements) - построение модели с использованием только базовых блоков.

  • Оптимизация для нулевого коэффициента усиления - удаление всех блоков нулевого коэффициента усиления из модели.

  • Оптимизация для преимуществ единства - заменяет все преимущества единства прямыми связями.

  • Оптимизировать для отрицательных коэффициентов усиления (Optimize for negative gears) - удаляет все блоки отрицательного коэффициента усиления и знак изменения в ближайшем блоке суммирования.

  • Оптимизировать цепочки задержки - заменяет цепочки задержки, состоящие из n единичных задержек, одной задержкой на n.

  • Оптимизировать для значений масштаба единицы (Optimize for unity scale values) - удаляет все умножения значений масштаба на 1 из структуры фильтра.

  • Обработка входных данных - укажите, как генерируемый блок фильтра или блок подсистемы обрабатывает входные данные. В зависимости от типа проектируемого фильтра может быть доступна одна или обе из следующих опций:

    • Columns as channels (frame based) - Блок обрабатывает каждый столбец входа как отдельный канал.

    • Elements as channels (sample based) - Блок обрабатывает каждый элемент входа как отдельный канал.

    Дополнительные сведения об обработке на основе образцов и кадров см. в разделе Концепции на основе образцов и кадров (панель системных инструментов DSP).

  • Реализовать модель - построение модели с заданными параметрами.

Если на главной панели установлен флажок Использовать системный объект для реализации фильтра (Use a System object to implementation filter), кнопка Создать модель (Generate Model) на панели модели Simulink отключается при следующих условиях.

  • Выбрать ответ фильтра как Comb и арифметика на панели «Типы данных» как Fixed point.

  • Выбрать ответ фильтра как Arbitrary Response, Импульсная характеристика как IIR, задайте для параметра «Указать ответ» значение Magnitudes and phases или Frequency responseи Арифметика на панели «Типы данных» как Fixed point.

Эти настройки проектируют dsp.IIRFilter object™ системы с арифметикой фиксированной точки. Создание модели Simulink для фиксированной точки dsp.IIRFilter объект не поддерживается.

Фильтровать ответы

Выберите ответ фильтра из filterBuilder Главное меню «Выбор ответа».

При наличии программного обеспечения DSP System Toolbox появляется следующее меню Response Selection.

Выберите нужный ответ фильтра в меню и создайте свой фильтр.

В следующих разделах описаны опции, доступные для каждого типа ответа.

Конструкция фильтра произвольного ответа - основная панель

 Характеристики фильтра

 Спецификация ответа

 Свойства области данных

 Алгоритм

 Реализация фильтра

Дизайн фильтра взвешивания звука - главная панель

 Характеристики фильтра

 Алгоритм

 Реализация фильтра

Проектирование полосового фильтра - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Конструкция полосового фильтра - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Конструкция фильтра CIC - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

Проектирование компенсатора CIC - Основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Конструкция гребенчатого фильтра - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Дизайн фильтра дифференциатора - главная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Проектирование с дробной задержкой - основная панель

 Частотные характеристики

Конструкция фильтра в полуполосах - главная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Макет фильтра верхних частот - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Конструкция фильтра Гильберта - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Конструкция инверсного синк-фильтра - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Конструкция фильтра нижних частот - главная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Дизайн фильтра Nyquist - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Конструкция октавного фильтра - основная панель

 Характеристики фильтра

 Алгоритм

 Реализация фильтра

Проектирование фильтра параметрического эквалайзера - главная панель

 Характеристики фильтра

 Частотные характеристики

 Характеристики усиления

 Алгоритм

 Реализация фильтра

Конструкция пикового/режущего фильтра - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Конструкция фильтра формирования импульсов - основная панель

 Характеристики фильтра

 Частотные характеристики

 Магнитудные характеристики

 Алгоритм

 Реализация фильтра

Представлен в R2009a