Интерактивные создания фильтра
filterBuilder(h)
filterBuilder('response
')
filterBuilder
запускает интерактивный инструмент для создания фильтров. Он полагается на fdesign
объектно-ориентированная парадигма создания фильтра и предназначена для сокращения времени разработки в процессе создания фильтра. filterBuilder
использует центрированный по спецификации подход, чтобы найти лучший алгоритм для желаемого отклика.
Примечание
Для использования необходимо установить Signal Processing Toolbox™ fdesign
и filterBuilder
. Некоторые функции, описанные ниже, могут быть недоступны, если установка дополнительно не включает DSP System Toolbox™. Можно проверить наличие обоих тулбоксов путем ввода ver
в командной строке.
Для получения дополнительной информации о том, как использовать filterBuilder
, см. «Процесс проекта Filter Builder».
Использовать filterBuilder
, введите filterBuilder
в MATLAB® командная строка с использованием одного из трех подходов:
Просто введите filterBuilder
. MATLAB открывает диалоговое окно для выбора типа отклика фильтра. После выбора типа отклика фильтра, filterBuilder
запускает соответствующее диалоговое окно создания фильтра.
Войти filterBuilder(h)
, где h - существующий объект фильтра. Для примера, если h
является полосно-пропускающим фильтром, filterBuilder(h)
открывает диалоговое окно создания фильтра полосы пропускания. The h
объект должен быть создан с помощью filterBuilder
или используя fdesign
.
Примечание
Для создания и импорта Системных объектов фильтра необходимо иметь программное обеспечение DSP System Toolbox.
Войти filterBuilder('
для замены response
')response
с методом отклика из следующей таблицы. MATLAB открывает диалоговое окно создания фильтра, которое соответствует заданному отклику.
Примечание
Необходимо иметь программное обеспечение DSP System Toolbox для реализации ряда созданий фильтра, перечисленных в следующей таблице. Если у вас есть только программное обеспечение Signal Processing Toolbox, можно спроектировать ограниченный набор следующих типов фильтра-отклика.
Метод отклика | Описание полученного создания фильтра | Объект фильтра |
---|---|---|
arbgrpdelay | Произвольная групповая задержка создания фильтра | fdesign.arbgrpdelay (DSP System Toolbox) |
arbmag | Произвольные величины создания фильтра | fdesign.arbmag (DSP System Toolbox)
|
arbmagnphase | Фильтр произвольной характеристики (величина и фаза) | fdesign.arbmagnphase (DSP System Toolbox)
|
audioweighting | Фильтр взвешивания звука | fdesign.audioweighting (DSP System Toolbox) |
полосу пропускания или bp | Полосовой фильтр | fdesign.bandpass (DSP System Toolbox) |
bandstop или bs | Полосообразующий фильтр | fdesign.bandstop (DSP System Toolbox) |
cic | CIC-фильтр | fdesign.decimator(M,'cic',...) или fdesign.interpolator(L,'cic',...) Посмотрите fdesign.decimator (DSP System Toolbox) и fdesign.interpolator (DSP System Toolbox) |
ciccomp | Компенсатор CIC | fdesign.ciccomp (DSP System Toolbox) |
расческа | Гребенчатый фильтр | fdesign.comb (DSP System Toolbox) |
diff | Дифференцирующий фильтр | fdesign.differentiator (DSP System Toolbox) |
fracdelay | Фильтр дробной задержки | fdesign.fracdelay (DSP System Toolbox) |
полуполоса или hb | Полуполосный фильтр | fdesign.halfband (DSP System Toolbox) |
highpass или hp | Фильтр Highpass | fdesign.highpass (DSP System Toolbox) |
hilb | Фильтр Гильберта | fdesign.hilbert (DSP System Toolbox) |
изинк, isinclp, или isinchp | Обратный sinc lowpass или highpass фильтр | fdesign.isinclp (DSP System Toolbox) и fdesign.isinchp (DSP System Toolbox) |
lowpass или lp | Lowpass фильтр (по умолчанию) | fdesign.lowpass (DSP System Toolbox) |
метка | Узкополосный фильтр | fdesign.notch (DSP System Toolbox) |
nyquist | Фильтр Найквиста | fdesign.nyquist (DSP System Toolbox) |
октава | Октавный фильтр | fdesign.octave (DSP System Toolbox) |
parameq | Параметрический фильтр эквалайзера | fdesign.parameq (DSP System Toolbox) |
пик | Пик фильтра | fdesign.peak (DSP System Toolbox) |
Примечание
Поскольку они не изменяют структуру фильтра, спецификации величины и метод разработки настраиваются при использовании filterBuilder
.
Основная панель Filter Builder изменяется в зависимости от типа отклика фильтра, но базовая структура совпадает. Следующий рисунок показывает базовое размещение диалогового окна.
При выборе отклика для фильтра меняются доступные опции и расчётные параметры, отображаемые в диалоговом окне. Это отображение позволяет вам фокусироваться только на параметрах, которые имеют смысл в контексте вашего создания фильтра.
Каждое диалоговое окно создания фильтра включает опции, отображаемые в верхней части диалогового окна, показанного на следующем рисунке.
Save variable as - когда вы нажимаете Apply, чтобы применить ваши изменения или OK, чтобы закрыть это диалоговое окно, filterBuilder
сохраняет текущий фильтр в рабочем пространстве MATLAB как объект фильтра с введенным именем.
View Filter Response - Отображает величину ответ для текущих спецификаций фильтра и проекта метода путем открытия Инструмента визуализации фильтра (FVTool).
Примечание
filterBuilder
диалоговое окно включает опцию Apply. Каждый раз, когда вы кликаете Apply, filterBuilder
записывает измененный фильтр в рабочее рабочее пространство MATLAB. Этот измененный фильтр имеет имя переменной, которое вы присвоили в Save variable as. Чтобы применить изменения без перезаписи переменной в рабочей рабочей области, измените имя переменной в Save variable as перед нажатием кнопки Apply.
В диалоговом окне Filter Builder есть три вкладки, содержащие три панели: Main, Data Types и Code Generation. Первая панель изменяется в соответствии с проектируемым фильтром. Последние две панели одинаковы для всех фильтров. Эти панели рассматриваются в следующих разделах.
Вторая вкладка в диалоговом окне Filter Builder показана на следующем рисунке.
Поле Arithmetic выпадающего списка позволяет выбирать Double precision
, Single precision
, или Fixed point
. Некоторые из этих опций могут быть недоступны в зависимости от параметров фильтра. В следующей таблице описаны эти опции.
Запись в списке арифметических данных | Эффект на фильтр |
---|---|
Double precision | Все операции фильтрации и коэффициенты используют представления с двойной точностью, с плавающей точкой и math. когда вы используете filterBuilder чтобы создать фильтр, double precision является значением по умолчанию для свойства Арифметики. |
Single precision | Все операции фильтрации и коэффициенты используют представления с одной точностью с плавающей точкой и математику. |
Fixed point | Эта запись применяет выбранные значения по умолчанию, обычно используемые на многих цифровых процессорах, к свойствам фильтра с фиксированной точкой. Эти свойства включают размеры слова коэффициентов, длины дробей и различные рабочие режимы. Этот параметр позволяет использовать только фиксированные типы данных со знаком. Создание фильтра с фиксированной точкой с filterBuilder доступно только при установке программного обеспечения Fixed-Point Designer™ вместе с программным обеспечением DSP System Toolbox. |
Следующий рисунок показывает панель Data Types после выбора Fixed point
для Arithmetic и установки Filter internals равными Specify precision
. Этот рисунок показывает область Data Types для случая, когда флажок Use a System object to implement filter не установлен на панели Main.
Когда вы устанавливаете Use a System object to implement filter флажок на панели Main, панель Data Types появляется следующим образом:
Не все параметры, описанные в следующем разделе, применяются ко всем фильтрам. Для примера конечной импульсной характеристики фильтры не имеют параметров Section input и Section output.
Укажите формат фильтра для фильтруемых данных. Для всех случаев, filterBuilder
реализует фильтры, которые используют двоичное масштабирование точек и входа со знаком. Вы устанавливаете размер слова и длину дроби по мере необходимости.
Выберите, как вы задаете размер слова и длину дроби числителя фильтра и коэффициентов знаменателя:
Specify word length
позволяет вводить размер слова коэффициентов в битах. В этом режиме filterBuilder
автоматически устанавливает длину дроби коэффициентов только в двоичном масштабе, который обеспечивает лучшую точность для значения и размера слова коэффициентов.
Binary point scaling
позволяет вводить размер слова и длину дроби коэффициентов в битах. Если применимо, вводите отдельные длины дробей для коэффициентов числителя и знаменателя.
Коэффициенты фильтра не подчиняются параметрам Rounding mode и Overflow mode, которые доступны при выборе Specify precision
из списка «Внутренние фильтры». Коэффициенты всегда насыщены и округлены до Nearest
.
Выберите, как вы задаете размер слова и длину дроби типа данных с фиксированной точкой, переходя в каждый раздел фильтра SOS. Этот параметр видим только, когда выбранная структура фильтра является БИХ и SOS.
Binary point scaling
позволяет вводить слова и длины дробей входных входов разделов в битах.
Specify word length
позволяет вводить размеры слова в битах.
Выберите, как вы задаете размер слова и длину дроби типа данных с фиксированной точкой, выходящих из каждого раздела фильтра SOS. Этот параметр видим только, когда выбранная структура фильтра является БИХ и SOS.
Binary point scaling
позволяет вводить слова и длины дробей разделов, выхода в битах.
Specify word length
позволяет вводить выход размеров слова в битах.
Содержит состояния фильтра до, во время и после операций фильтра. Состояния выполняют роль фильтрующей памяти между запусками фильтрации или сеансами. Используйте этот параметр, чтобы задать, как обозначить слово состояния и длины дроби. Этот параметр не виден для структур фильтра прямой формы и прямой формы I, потому что filterBuilder
выводит состояние непосредственно из формата входа. Государства всегда используют подписанное представление:
Binary point scaling
позволяет вам ввести размер слова и длину дроби аккумулятора в битах.
Specify precision
позволяет вводить размер слова и длину дроби в битах (при наличии).
Определяет, как фильтр обрабатывает выходы операций продукта. Выберите один из следующих опций:
Full precision
- Поддерживать полную точность в результате.
Keep LSB
- Сохраните наименее значимый бит в результате, когда вам нужно укоротить слова данных.
Specify Precision
- Позволяет вам задать точность (длину дроби), используемую выходом из умножений.
Задайте, как фильтр с фиксированной точкой выполняет арифметические операции в фильтре. Затронутые фрагменты фильтра являются продуктами фильтра, суммами, состояниями и выходом. Выберите один из следующих опций:
Full precision
- Указывает, что фильтр поддерживает полную точность во всех вычислениях для продуктов, выхода и в аккумуляторе.
Specify precision
- Установите длины слова и дроби, применяемые к результатам операций с продуктом, выходу фильтра и аккумулятору. Выбор этой опции включает элементы управления длиной слова и дроби.
Выбор этой опции предписывает фильтру использовать представления со знаком для коэффициентов фильтра.
Устанавливает размер слова для связанного параметра фильтра в битах.
Устанавливает длину дроби для связанного параметра фильтра в битах.
Используйте этот параметр, чтобы задать, как вы хотите обозначить слово аккумулятора и длины дроби.
Определяет, как аккумулятор выводит сохраненные значения. Выберите один из следующих опций:
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 очистите, фильтр препятствует приведению дополнений к формату суммы перед операцией сложения. Выберите этот параметр, чтобы получить самые точные результаты из суммирования, не учитывая оборудование, которое может использовать фильтр. Входной формат, на который ссылаются Cast before sum, зависит от структуры фильтра, который вы используете.
Эффект очистки или выбора Cast before sum следующий:
Cleared - настраивает операции суммирования фильтров, чтобы сохранить дополнения в формате, перенесенном из предыдущей операции.
Выбран - настраивает операции суммирования фильтров, чтобы преобразовать входной формат дополнений в соответствии с выходным форматом суммирования перед выполнением операции суммирования. Обычно выбор Cast before sum генерирует результаты из суммирования, которые более точно совпадают с результатами, обнаруженными в цифровых сигнальных процессорах.
Панель генерации кода содержит опции для различных реализаций завершённого создания фильтра. В зависимости от вашей установки, вы можете сгенерировать код MATLAB, VHDL и Verilog из разработанного фильтра. Можно также принять решение создать или обновить Simulink® модель из проектируемого фильтра. В следующем разделе описываются эти опции.
Для получения дополнительной информации об этой опции смотрите Открытие пользовательского интерфейса HDL-кодера Filter Design из Filter Builder (Filter Design HDL Coder).
Generate MATLAB code based on filter specifications
Generate function that returns your filter as an output
Выбор этой опции генерирует функцию, которая проектирует объект фильтра используя fdesign
.
Generate function that filters your data
Выбор этой опции генерирует функцию, которая принимает данные как входные и выводит данные, отфильтрованные проектируемым фильтром. Тип данных выходного сигнала фильтра устанавливается в соответствии с настройками типа данных на панели Data Types.
Нажимая на кнопку Generate MATLAB code, открывается диалоговое окно Save File. Укажите имя файла и его местоположение, а также сохраните. Фильтр теперь содержится в редактируемом файле.
Generate Simulink blocks and subsystems from your designed filters
Когда вы нажимаете Generate Model, построитель фильтров генерирует блоки Simulink и подсистемы из разработанных вами фильтров.
При нажатии на кнопку Generate Model открывается диалоговое окно Экспорт в Simulink.
Block Name - Имя нового блока подсистемы, установленное на Filter по умолчанию.
Destination — Current
сохраняет сгенерированную модель в текущей модели Simulink. New
создает новую модель, которая будет содержать сгенерированный блок. User Defined
создает новую модель или подсистему в местоположении, указанном в User Defined
.
Overwrite generated 'Filter' block - перезаписывает существующий блок с именем, заданным в Block Name. Снимите этот флажок, чтобы создать новый блок с таким же именем.
Build model using basic elements - Создает модель, используя только основные блоки.
Optimize for zero gains - удаляет все блоки с нулевым усилением из модели.
Optimize for unity gains - Заменяет все усиления единства прямыми соединениями.
Optimize for negative gains - удаляет все блоки отрицательного коэффициента усиления и знака изменений в ближайшем блоке суммирования.
Optimize delay chains - Заменяет цепи задержки, составленные из n модулей задержки, одной задержкой по n.
Optimize for unity scale values - удаляет все шкалы значения умножения на 1 из структуры фильтра.
Input processing - Задайте, как сгенерированный блок фильтра или блок подсистемы обрабатывает вход. В зависимости от типа проектируемого фильтра может быть доступна одна или обе из следующих опций:
Columns as channels (frame based)
- Блок обрабатывает каждый столбец входа как отдельный канал.
Elements as channels (sample based)
- Блок обрабатывает каждый элемент входа как отдельный канал.
Для получения дополнительной информации об обработке на основе выборок и на основе фреймов смотрите Концепции на основе выборок и фреймов (DSP System Toolbox).
Realize Model - Создает модель с заданными параметрами.
Когда на панели Use a System object to implement filter установлен флажок Main, кнопка Generate Model на панели Simulink model отключается при следующих условиях:
Выберите Filter response следующим Comb
и Arithmetic на панели Data Types следующим Fixed point
.
Выберите Filter response следующим Arbitrary Response
, Impulse response как IIR
, установите Specify response as либо на Magnitudes and phases
или Frequency response
и Arithmetic на панели Data Types следующим образом Fixed point
.
Эти настройки проектируют dsp.IIRFilter
Системная object™ с арифметикой фиксированной точки. Генерация модели Simulink для dsp.IIRFilter
с фиксированной точкой объект не поддерживается.
Выберите ответ фильтра из filterBuilder
Response Selection главное меню.
При наличии программного обеспечения DSP System Toolbox появляется следующее Response Selection меню.
Выберите нужный ответ фильтра из меню и спроектируйте фильтр.
В следующих разделах описываются опции, доступные для каждого типа ответа.
Смотрите Peak/Notch Filter Design - Main Pane.