Разработайте фильтр в Fdesign — обзор процесса

Схема технологического маршрута и методология проектирования фильтра

Примечание

Исследование схемы технологического маршрута

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

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

Схема показывает команду справки для каждого шага. Введите горячую линию в командной строке 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'

Команда 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 возвращает спецификацию по умолчанию для ответа, в котором вы выбрали, Выбирают 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 автоматически выбирает оптимальный алгоритм для выбранного ответа и спецификации.

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

Опции настройки, доступные для любого данного алгоритма, зависят не только от самого алгоритма, выбранный в Выбирают Algorithm, но также и на спецификации, выбранной в, Выбирают 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 является Объектом Спецификаций. Этот код создает фильтр, не задавая алгоритм. Когда алгоритм не задан, программное обеспечение выбирает наилучший имеющийся.

Чтобы применить алгоритм, выбранный в, Выбирают 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