Проектирование фильтра в Fdesign - Обзор процесса

Технологическая схема и методика создания фильтра

Примечание

Изучение технологической схемы

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

Первые четыре шага процесса создания фильтра относятся к объекту спецификаций фильтра, в то время как последние два шага включают в себя объект реализации фильтра. Оба этих объектов более подробно рассматриваются в следующих разделах. Шаг 5 - проект фильтра, является шагом перехода от объекта спецификаций фильтра к объекту реализации. Шаг анализа и верификации совершенно необязателен. Он предоставляет разработчику фильтров методы, гарантирующие соответствие фильтра всем критериям проекта. В зависимости от результатов этой верификации, можно выполнить циклический возврат к шагам 3 и 4, чтобы либо выбрать другой алгоритм, либо настроить текущий. Вы также можете вернуться к шагам 3 или 4 после фильтрации входных данных с помощью проектируемого фильтра (шаг 7) и обнаружить, что вы хотите настроить фильтр или изменить его дальше.

Схема показывает команду help для каждого шага. Введите линию справки в MATLAB® командная строка для получения инструкций и дополнительных ссылок на документацию для конкретного шага. Не все шаги должны выполняться явным образом. Например, вы можете перейти от шага 1 непосредственно к шагу 5, и промежуточные три шага сделаны для вас программным обеспечением.

Ниже приведены подробные данные для каждого из шагов, показанных выше.

Выберите ответ

Если вы вводите:

help fdesign/responses
в командной строке MATLAB отображается список всех доступных ответов фильтра.

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

d = fdesign.bandpass

Выбор спецификации

Спецификация является массивом расчётных параметров для данного фильтра. Спецификация является свойством объекта спецификаций.

Примечание

Спецификация отличается от объекта спецификаций. Объект спецификаций содержит спецификацию как одно из своих свойств.

Когда вы выбираете ответ фильтра, существует ряд различных спецификаций. Каждый содержит разную комбинацию расчётных параметров. После создания объекта спецификаций фильтра можно запросить доступные спецификации для этого ответа. Спецификации, отмеченные звездочкой, требуют использования DSP System Toolbox™.

d = fdesign.bandpass; % step 1 - choose the response
set (d, 'specification')
ans =

  16×1 cell array

    'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2'
    'N,F3dB1,F3dB2'
    'N,F3dB1,F3dB2,Ap'
    'N,F3dB1,F3dB2,Ast'
    'N,F3dB1,F3dB2,Ast1,Ap,Ast2'
    'N,F3dB1,F3dB2,BWp'
    'N,F3dB1,F3dB2,BWst'
    'N,Fc1,Fc2'
    'N,Fc1,Fc2,Ast1,Ap,Ast2'
    'N,Fp1,Fp2,Ap'
    'N,Fp1,Fp2,Ast1,Ap,Ast2'
    'N,Fst1,Fp1,Fp2,Fst2'
    'N,Fst1,Fp1,Fp2,Fst2,C'
    'N,Fst1,Fp1,Fp2,Fst2,Ap'
    'N,Fst1,Fst2,Ast'
    'Nb,Na,Fst1,Fp1,Fp2,Fst2'
d = fdesign.arbmag; 
set(d,'specification')
ans =

  7×1 cell array

    'N,F,A'
    'F,A,R'
    'Nb,Na,F,A'
    'N,B,F,A'
    'N,B,F,A,C'
    'B,F,A,R'
    'Nb,Na,B,F,A'

The set можно использовать команду для выбора одной из доступных спецификаций следующим образом:

d = fdesign.lowpass;
% step 1: get a list of available specifications
set (d, 'specification') 
ans =

  18×1 cell array

    'Fp,Fst,Ap,Ast'
    'N,F3dB'
    'Nb,Na,F3dB'
    'N,F3dB,Ap'
    'N,F3dB,Ap,Ast'
    'N,F3dB,Ast'
    'N,F3dB,Fst'
    'N,Fc'
    'N,Fc,Ap,Ast'
    'N,Fp,Ap'
    'N,Fp,Ap,Ast'
    'N,Fp,F3dB'
    'N,Fp,Fst'
    'N,Fp,Fst,Ap'
    'N,Fp,Fst,Ast'
    'N,Fst,Ap,Ast'
    'N,Fst,Ast'
    'Nb,Na,Fp,Fst'
% step 2: set the required specification
 set (d, 'specification', 'N,Fc') 
Если вы не выполняете этот шаг явно, fdesign возвращает спецификацию по умолчанию для ответа, выбранного в Select a Response, и предоставляет значения по умолчанию для всех расчётных параметров, включенных в спецификацию.

Выберите алгоритм

Доступность алгоритмов зависит от выбранной характеристики фильтра, расчётных параметров и доступности DSP System Toolbox. Другими словами, для того же lowpass изменение записи спецификации также изменяет доступные алгоритмы. В следующем примере для lowpass и спецификации 'N, Fc', доступен только один алгоритм -window.

% step 2: set the required specification
set (d, 'specification', 'N,Fc') 
% step 3: get available algorithms
designmethods (d,'Systemobject',true) 

Design Methods that support System objects for class fdesign.lowpass (N,Fc):


window

Однако для спецификации 'Fp,Fst,Ap,Ast', доступен ряд алгоритмов.
set (d, 'specification', 'Fp,Fst,Ap,Ast')
designmethods(d,'Systemobject',true)
Design Methods that support System objects for class fdesign.lowpass (Fp,Fst,Ap,Ast):


butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin
multistage
Пользователь выбирает конкретный алгоритм и реализует фильтр с design функция.
filt = design(d,'butter','Systemobject',true)
filt = 

  dsp.BiquadFilter with properties:

                   Structure: 'Direct form II'
             SOSMatrixSource: 'Property'
                   SOSMatrix: [13×6 double]
                 ScaleValues: [14×1 double]
           InitialConditions: 0
    OptimizeUnityScaleValues: true

  Show all properties
Предыдущий код создает фильтр, где filt - объект реализации фильтра. Эта концепция обсуждается далее на следующем этапе.

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

Настройте алгоритм

Опции индивидуальной настройки, доступные для любого заданного алгоритма, зависят не только от самого алгоритма, выбранного в Select an Algorithm, но и от спецификации, выбранной в Select a Specification. Чтобы исследовать все доступные опции, введите в командной строке MATLAB следующее:

help (d, 'algorithm-name')
где d является объектом спецификации фильтра и algorithm-name - имя алгоритма в одинарных кавычках, таких как 'butter' или 'cheby1'.

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

Если вы не выполняете этот шаг явно, выбирается оптимальная структура алгоритма.

Проектирование фильтра

Чтобы создать фильтр, используйте design команда:

% Design filter without specifying the algorithm
filt = design(d,'Systemobject',true);
где filt является объектом фильтра и d является объектом спецификаций. Этот код создает фильтр, не задавая алгоритм. Когда алгоритм не задан, программное обеспечение выбирает лучший из доступных.

Чтобы применить алгоритм, выбранный в Select an Algorithm, используйте тот же design команда, но задайте алгоритм следующим образом:

filt = design(d,'butter','Systemobject',true)
где filt является новым объектом фильтра и d является объектом спецификаций.

Чтобы получить помощь и увидеть все доступные опции, введите:

help fdesign/design
Эта команда справки описывает не только опции для design сама команда, но также опции, которые относятся к методу или алгоритму. При настройке алгоритма эти опции применяются на этом шаге. В следующем примере вы проектируете полосно-пропускающий фильтр, а затем изменяете структуру фильтра:
filt = design(d, 'butter', 'filterstructure', 'df2sos','Systemobject',true)
filt = 

  dsp.BiquadFilter with properties:

                   Structure: 'Direct form II'
             SOSMatrixSource: 'Property'
                   SOSMatrix: [13×6 double]
                 ScaleValues: [14×1 double]
           InitialConditions: 0
    OptimizeUnityScaleValues: true

  Show all properties

Шаг создания фильтра, так же как и первая задача выбора отклика, должен выполняться явным образом. Объект фильтра создается только при design вызывается.

Проектный анализ

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

  • Анализ частотного диапазона - включает частотную характеристику, групповую задержку, диаграммы нулей и полюсов и фазовый отклик через функции freqz, grpdelay, zplane, и phasez.

  • Анализ временного интервала - включает импульс и переходную характеристику через функции impz и stepz.

  • Анализ реализации - Включает оценку затрат на реализацию фильтра, спектральную плотность степени выхода фильтра из-за округлого шума и оценку частотной характеристики фильтра через функции cost, noisepsd, и freqrespest.

Для получения списка методов анализа для фильтра в дискретном времени введите в командной строке MATLAB следующее:

dsp.<sysobjName>.helpFilterAnalysis

Замените <sysobjName> с именем Системной object™. Также можно просмотреть список методов анализа в категории Анализ фильтров.

Чтобы проанализировать фильтр, необходимо явно выполнить этот шаг.

Реализуйте или примените фильтр к входным данным

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

y = filt(x)
Этот шаг никогда не выполняется автоматически для вас. Для фильтрации данных необходимо явно выполнить этот шаг.

Примечание

y = filt(x) выполняется только в R2016b или более поздней версии. Если вы используете более ранний релиз, замените y = filt(x) с y = step(filt,x).

Примечание

Если у вас есть Simulink®, у вас есть опция экспорта этого фильтра в блок Simulink с помощью realizemdl команда. Чтобы получить справку по этой команде, введите:

help realizemdl