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