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

Первые четыре шага процесса проектирования фильтра относятся к объекту спецификации фильтра, в то время как последние два шага связаны с объектом реализации фильтра. Обе эти задачи рассматриваются более подробно в следующих разделах. Шаг 5 - конструкция фильтра, является шагом перехода от объекта спецификаций фильтра к объекту реализации. Этап анализа и проверки является абсолютно необязательным. Он предоставляет разработчику фильтров методы, обеспечивающие соответствие фильтра всем критериям проектирования. В зависимости от результатов этой проверки можно вернуться к шагам 3 и 4, либо выбрать другой алгоритм, либо настроить текущий. Вы также можете вернуться к шагам 3 или 4 после фильтрации входных данных с помощью разработанного фильтра (шаг 7) и обнаружить, что вы хотите изменить фильтр или изменить его дальше.
На схеме показана команда справки для каждого шага. Введите справочную строку в командной строке MATLAB ® для получения инструкций и дополнительных ссылок на документацию для конкретного шага. Не все шаги должны выполняться явным образом. Например, можно перейти от шага 1 непосредственно к шагу 5, и программа выполнит промежуточные три шага .
Ниже приведены подробности для каждого из этапов, показанных выше.
При вводе:
help fdesign/responsesДля запуска фильтра необходимо выбрать ответ. В этом примере объект спецификации полосового фильтра создается путем ввода следующего:
d = fdesign.bandpass
Спецификация представляет собой массив параметров конструкции для данного фильтра. Спецификация является свойством объекта Specifications.
Примечание
Спецификация не совпадает с объектом спецификации. Объект Specifications содержит спецификацию в качестве одного из своих свойств.
При выборе ответа фильтра доступно несколько различных спецификаций. Каждый из них содержит различную комбинацию параметров проектирования. После создания объекта спецификации фильтра можно запросить доступные спецификации для этого ответа. Спецификации, отмеченные звездочкой, требуют Toolbox™ системы DSP.
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 возвращает спецификацию по умолчанию для ответа, выбранного в разделе «Выбор ответа», и предоставляет значения по умолчанию для всех параметров конструкции, включенных в спецификацию. Доступность алгоритмов зависит от выбранной характеристики фильтра, параметров конструкции и доступности панели системных инструментов DSP. Другими словами, для того же фильтра нижних частот изменение записи спецификации также изменяет доступные алгоритмы. В следующем примере для фильтра нижних частот и спецификации '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 автоматически выбирает оптимальный алгоритм для выбранного ответа и спецификации.
Опции настройки, доступные для любого заданного алгоритма, зависят не только от самого алгоритма, выбранного в разделе Выбор алгоритма, но и от спецификации, выбранной в разделе Выбор спецификации. Чтобы просмотреть все доступные параметры, введите в командной строке MATLAB следующее:
help (d, 'algorithm-name')
d является объектом спецификации фильтра, и algorithm-name - имя алгоритма в отдельных кавычках, например, 'butter' или 'cheby1'. Применение этих опций настройки происходит во время проектирования фильтра, поскольку эти опции являются свойствами объекта реализации фильтра, а не объекта спецификации.
Если этот шаг не выполняется явно, выбирается оптимальная структура алгоритма.
Чтобы создать фильтр, используйте design команда:
% Design filter without specifying the algorithm filt = design(d,'Systemobject',true);
filt является объектом фильтра и d является объектом спецификаций. Этот код создает фильтр без указания алгоритма. Если алгоритм не указан, программа выбирает наилучший доступный. Чтобы применить алгоритм, выбранный в разделе Выбор алгоритма, используйте то же самое design , но укажите алгоритм следующим образом:
filt = design(d,'butter','Systemobject',true)
filt является новым объектом фильтра, и d является объектом спецификаций.Для получения справки и просмотра всех доступных параметров введите:
help fdesign/designdesign сама команда, а также параметры, относящиеся к методу или алгоритму. При настройке алгоритма эти параметры применяются на этом шаге. В следующем примере выполняется проектирование полосового фильтра, а затем изменение структуры фильтра.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™. Также можно просмотреть список методов анализа в категории Анализ фильтра (Filter Analysis).
Для анализа фильтра необходимо явно выполнить этот шаг.
После проектирования и оптимизации фильтра его можно использовать для фильтрации фактических входных данных.
y = filt(x)
Примечание
y = filt(x) выполняется только в R2016b или более поздних версиях. При использовании более ранней версии замените y = filt(x) с y = step(filt,x).
Примечание
При использовании Simulink ® можно экспортировать этот фильтр в блок Simulink с помощью realizemdl команда. Чтобы получить справку по этой команде, введите:
help realizemdl