Схема технологического маршрута, показанная в следующей фигуре, перечисляет шаги и показывает порядок процесса проектирования фильтра.
Первые четыре шага процесса проектирования фильтра относятся к Объекту Спецификаций фильтра, в то время как последние два шага включают Объект Реализации фильтра. Оба из этих объектов обсуждены более подробно в следующих разделах. Шаг 5 - проект фильтра, шаг перехода от Объекта Спецификаций фильтра до объекта Implementation. Шаг анализа и верификации является абсолютно дополнительным. Это предоставляет методы разработчику фильтра, чтобы гарантировать, что фильтр выполняет все критерии расчета. В зависимости от результатов этой верификации можно циклично выполниться назад к шагам 3 и 4, чтобы или выбрать различный алгоритм или настроить текущий. Можно также хотеть вернуться к шагам 3 или 4 после того, как вы фильтруете входные данные с разработанным фильтром (шаг 7) и находите, что хотите настроить фильтр или изменить его далее.
Схема показывает команду справки для каждого шага. Введите горячую линию в командной строке MATLAB®, чтобы получить инструкции и дальнейшие ссылки на документацию для конкретного шага. Не все шаги должны быть выполнены явным образом. Например, вы могли пойти от шага 1 непосредственно к шагу 5, и временные три шага выполнены для вас программным обеспечением.
Следующее является деталями для каждого из шагов, показанных выше.
Если вы вводите:
help fdesign/responses
Необходимо выбрать ответ, чтобы инициировать фильтр. В этом примере Объект Спецификаций полосового фильтра создается путем ввода следующего:
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