Спроектируйте фильтр в 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