Объект спецификации конструкции фильтра
Используйте fdesign функция для создания объекта спецификации конструкции фильтра, который содержит спецификации фильтра, такие как пульсация полосы пропускания, затухание полосы останова и порядок фильтрации. Затем используйте design для проектирования фильтра из объекта спецификации конструкции фильтра. Пример см. в разделе Проектирование прореживателя нижних частот.
Вот схема рабочего процесса, которая показывает простую процедуру проектирования, анализа и, наконец, применения фильтра к потоковым данным.

Дополнительные параметры управления см. в разделе Процедура проектирования фильтра. Полный рабочий процесс см. в разделе Проектирование фильтра в Fdesign - Обзор процесса.
возвращает объект спецификации конструкции для фильтра с заданным designSpecs = fdesign.response.response
определяет используемые переменные, определяющие конструкцию фильтра. Параметры конструкции фильтра применяются к методу конструкции фильтра, выбранному для фильтра. Выбранная опция спецификации определяет, какие методы конструирования применяются к designSpecs = fdesign.response(spec)fdesign объект.
задает частоту дискретизации в Гц для использования в спецификациях фильтра. Скаляр частоты дискретизации должен быть последним входным аргументом. При указании частоты дискретизации все спецификации частоты представлены в Гц.designSpecs = fdesign.response(___,Fs)
задает единицы измерения для любой спецификации величины, указанной во входных аргументах.designSpecs = fdesign.response(___,magunits)
Разработка 100-отводного дециматорного фильтра нижних частот FIR, который уменьшает частоту дискретизации сигнала с 60 кГц до 20 кГц. Полоса пропускания фильтра составляет до 6 кГц. Задайте пульсацию полосы пропускания 0,01 дБ и затухание полосы останова 100 дБ.
Fs = 60e3; N = 99; Fpass = 6e3; Apass = 0.01; Astop = 100; M = Fs/20e3;
Настройка объекта спецификаций конструкции фильтра с помощью fdesign.decimator функция.
filtSpecs = fdesign.decimator(M,'lowpass','N,Fp,Ap,Ast',N,Fpass,Apass,Astop,Fs);
Спроектируйте прореживатель нижних частот FIR с помощью design функция.
Результирующим фильтром является dsp.FIRDecimator object™ системы. Дополнительные сведения о применении этого фильтра к потоковым данным см. в разделе dsp.FIRDecimator.
decimFIR = design(filtSpecs,'SystemObject',true)decimFIR =
dsp.FIRDecimator with properties:
NumeratorSource: 'Property'
Numerator: [1x100 double]
DecimationFactor: 3
Structure: 'Direct form'
Show all properties
Использовать info для отображения информации о фильтре.
info(decimFIR)
ans = 10x56 char array
'Discrete-Time FIR Multirate Filter (real) '
'----------------------------------------- '
'Filter Structure : Direct-Form FIR Polyphase Decimator'
'Decimation Factor : 3 '
'Polyphase Length : 34 '
'Filter Length : 100 '
'Stable : Yes '
'Linear Phase : Yes (Type 2) '
' '
'Arithmetic : double '
Визуализация амплитудной характеристики фильтра с помощью fvtool.
fvtool(decimFIR,'Fs',Fs)
Сконструировать фильтр нижних частот для использования в сигнале, дискретизированном на частоте 96 кГц. Полоса пропускания фильтра составляет до 20 кГц. Полоса останова фильтра начинается с 24 кГц. Задайте пульсацию полосы пропускания 0,01 дБ и затухание полосы останова 80 дБ. Автоматически определите заказ, необходимый для соответствия спецификациям.
Настройка объекта спецификаций конструкции фильтра с помощью fdesign.lowpass функция.
Fs = 96e3; Fpass = 20e3; Fstop = 24e3; Apass = 0.01; Astop = 80; filtSpecs = fdesign.lowpass(Fpass,Fstop,Apass,Astop,Fs);
Определите доступные алгоритмы проектирования с помощью designmethods функция.
designmethods(filtSpecs,'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 функция, проектирование эквиптного FIR-фильтра и эллиптического IIR-фильтра, которые соответствуют спецификациям.
lpFIR = design(filtSpecs,'equiripple','SystemObject',true)
lpFIR =
dsp.FIRFilter with properties:
Structure: 'Direct form'
NumeratorSource: 'Property'
Numerator: [1x101 double]
InitialConditions: 0
Show all properties
lpIIR = design(filtSpecs,'ellip','SystemObject',true)
lpIIR =
dsp.BiquadFilter with properties:
Structure: 'Direct form II'
SOSMatrixSource: 'Property'
SOSMatrix: [5x6 double]
ScaleValues: [6x1 double]
InitialConditions: 0
OptimizeUnityScaleValues: true
Show all properties
Вы также можете measure конструкции для проверки соответствия фильтров ограничениям.
FIRmeas = measure(lpFIR)
FIRmeas = Sample Rate : 96 kHz Passband Edge : 20 kHz 3-dB Point : 21.4297 kHz 6-dB Point : 21.8447 kHz Stopband Edge : 24 kHz Passband Ripple : 0.0092309 dB Stopband Atten. : 80.6014 dB Transition Width : 4 kHz
IIRmeas = measure(lpIIR)
IIRmeas = Sample Rate : 96 kHz Passband Edge : 20 kHz 3-dB Point : 20.5524 kHz 6-dB Point : 20.7138 kHz Stopband Edge : 24 kHz Passband Ripple : 0.01 dB Stopband Atten. : 80 dB Transition Width : 4 kHz
Оценка и отображение вычислительного cost каждого фильтра. Четкий КИХ-фильтр требует гораздо больше коэффициентов, чем эллиптический БИХ-фильтр.
FIRcost = cost(lpFIR)
FIRcost = struct with fields:
NumCoefficients: 101
NumStates: 100
MultiplicationsPerInputSample: 101
AdditionsPerInputSample: 100
IIRcost = cost(lpIIR)
IIRcost = struct with fields:
NumCoefficients: 20
NumStates: 10
MultiplicationsPerInputSample: 20
AdditionsPerInputSample: 20
Использовать fvtool функция для визуализации результирующих конструкций и сравнения их свойств.
fvtool(lpFIR,lpIIR,'Fs',Fs); legend('FIR Equiripple','Elliptic IIR')

Сконструируйте фильтр Баттерворта нижних частот, который имеет граничную частоту полосы пропускания рад/образец, частоту полосы останова рад/образец, пульсацию полосы пропускания 1 дБ и затухание полосы останова 80 дБ.
Создать lowpass объект спецификации конструкции фильтра с использованием fdesign.lowpass функция. Задайте параметры конструкции.
lowpassSpecs = fdesign.lowpass(0.4,0.5,1,80);
Чтобы просмотреть список методов конструирования, доступных для объекта спецификации, используйте designmethods функция. Если доступно несколько методов, выберите один из них, который лучше всего соответствует критериям проектирования. Для этого примера выберите 'butter'.
designmethods(lowpassSpecs,'SystemObject',true)Design Methods that support System objects for class fdesign.lowpass (Fp,Fst,Ap,Ast): butter cheby1 cheby2 ellip equiripple ifir kaiserwin multistage
Кроме того, можно указать варианты конструкции, используемые при проектировании фильтра. Чтобы просмотреть список доступных параметров, запустите designoptions функция на lowpassSpecs. Варианты конструкции зависят от выбранного метода конструкции. Метод проектирования, в данном случае, 'butter', должен быть указан в качестве аргумента для designoptions функция.
designoptions(lowpassSpecs,'butter','Systemobject',true)
ans = struct with fields:
FilterStructure: {1x6 cell}
SOSScaleNorm: 'ustring'
SOSScaleOpts: 'fdopts.sosscaling'
MatchExactly: {'passband' 'stopband'}
DefaultFilterStructure: 'df2sos'
DefaultMatchExactly: 'stopband'
DefaultSOSScaleNorm: ''
DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]
Порядок фильтра, необходимый для соответствия набору конструктивных ограничений, также должен быть округлен до целого значения. Это ослабляет некоторые ограничения, и, как следствие, некоторые проектные спецификации выполняются, в то время как другие превышаются. 'MatchExactly' позволяет точно соответствовать полосе пропускания или полосе останова при превышении спецификации для другой полосы. Сконструируйте фильтр таким образом, чтобы он точно соответствовал полосе пропускания.
Результирующим фильтром является dsp.BiquadFiter object™ системы. Дополнительные сведения о применении этого фильтра к потоковым данным см. в разделе dsp.BiquadFilter.
IIRbutter = design(lowpassSpecs,'butter','MatchExactly','passband', ... 'SystemObject',true)
IIRbutter =
dsp.BiquadFilter with properties:
Structure: 'Direct form II'
SOSMatrixSource: 'Property'
SOSMatrix: [16x6 double]
ScaleValues: [17x1 double]
InitialConditions: 0
OptimizeUnityScaleValues: true
Show all properties
Использовать fvtool для визуализации амплитудной характеристики фильтра.
fvtool(IIRbutter)

response - Требуемый отклик фильтраВ таблице указаны возможные ответы фильтра.
Метод ответа fdesign | Описание |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Используйте doc fdesign.response синтаксис в подсказке MATLAB для получения справки по определенной структуре. Например, эта команда предоставляет дополнительные сведения об объекте спецификации нижних частот:
doc fdesign.lowpass
Каждый response имеет Specification свойство, определяющее спецификации, используемые для проектирования фильтра. Можно использовать значения по умолчанию или указать Specification свойство при построении объекта спецификации.
Использование Specification свойство, можно предоставить ограничения фильтра, такие как порядок фильтра или ослабление полосы пропускания для использования при построении фильтра из объекта спецификации.
spec - Технические требования к конструкции фильтраСпецификации конструкции фильтра, заданные как символьный вектор. Набор доступных опций спецификации зависит от fdesign. функция. Для получения дополнительной информации см. responsefdesign. страницы.response
Конструкция фильтра основана на спецификациях, предоставленных fdesign. объект. Например, при создании объекта спецификации конструкции фильтра нижних частот по умолчанию responsefdesign.lowpass, выражение спецификации имеет значение 'Fp,Fst,Ap,Ast'. Расчетные параметры фильтра - Fp (частота полосы пропускания), Fst (частота стоп-полосы), Ap (passband ripple), и Ast (затухание полосы останова) - устанавливаются значения по умолчанию. design функция проектирует фильтр на основе этих параметров.
Спецификации, не содержащие порядок фильтров, приводят к конструкциям минимального порядка при вызове design функция:
d = fdesign.lowpass; % Specification is 'Fp,Fst,Ap,Ast' FIReq = design(d,'equiripple','SystemObject',true); length(FIReq.Numerator) % Returns 43. The filter order is 42
Выбранная опция спецификации определяет, какие методы конструирования применимы. Вы можете использовать setspecs для одновременной установки всех спецификаций.
Можно задать значения спецификации фильтра, передав их после Specification аргумент или путем передачи значений без Specification.
Конструкторы объектов фильтра принимают входные аргументы в том же порядке, что и setspecs и Specification.
Когда первый вход в fdesign. не является допустимым responseSpecification опция, fdesign предполагает, что входной аргумент является спецификацией фильтра и применяет его с использованием значения по умолчанию Specification вариант. Например, 'Fp,Fst,Ap,Ast' является значением по умолчанию для объекта нижних частот.
Fs - Частота выборкиЧастота дискретизации, используемая в спецификациях фильтра, заданная в Гц. Скаляр частоты дискретизации должен быть последним входным аргументом. При указании частоты дискретизации все спецификации частоты представлены в Гц.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
magunits - Единицы измерения для спецификации величины'dB' (по умолчанию) | 'linear' | 'squared'Единицы измерения для спецификации величины, указанные как:
'dB' -- децибелы
'linear' -- линейные единицы
'squared' -- энергоблоки
Когда вы опускаете magunits аргумент, fdesign предполагает, что все величины находятся в дБ. Обратите внимание, что fdesign сохраняет все характеристики величины в дБ. Если установить magunits на вариант, отличный от 'dB', функция преобразует единицу в 'dB'.
designSpecs - Объект спецификации конструкции фильтраfdesign.response объектfdesign возвращает объект спецификации конструкции фильтра. Каждый объект спецификации конструкции фильтра имеет следующие свойства:
Имя свойства | Значение по умолчанию | Описание |
|---|---|---|
| Зависит от выбранного типа | Определяет тип создаваемого фильтра, например интерполятор или полосовой фильтр. Это значение доступно только для чтения. |
| Зависит от выбранного типа | Определяет характеристики фильтра, используемые для определения требуемых характеристик фильтра, таких как частота отсечки |
| Зависит от выбранного типа фильтра | Содержит описания спецификаций фильтра, используемых для определения объекта, и спецификаций фильтра, используемых при создании фильтра из объекта. Это значение доступно только для чтения. |
| Логичный | Определяет, используется ли при расчете фильтра нормированная частота от 0 до 1 или частота дискретизации в диапазоне частот от 0 до Fs/2. Принимает либо |
В дополнение к этим свойствам объекты спецификации конструкции фильтра могут также иметь другие свойства, в зависимости от того, проектируют ли они односкоростные фильтры или многоскоростные фильтры.
Добавлены свойства многоскоростных фильтров | Описание |
|---|---|
| Указывает величину уменьшения частоты дискретизации. Всегда положительное целое число. |
| Указывает величину увеличения частоты дискретизации. Всегда положительное целое число. |
| Длина полифазы - это длина каждого многофазного субфильтра, который составляет прореживатель или интерполятор или фильтры коэффициента изменения скорости. Общая длина фильтра является результатом |
Ниже приведена схема рабочего процесса общей процедуры проектирования и анализа фильтра.

Ниже подробно описаны шаги:
Создание fdesign. для задания конструктивных параметров.response
Использовать designmethods для определения методов конструкции фильтра, которые работают для нового объекта спецификации фильтра. Если выбран метод проектирования по умолчанию, этот шаг является необязательным.
Если вы предпочитаете изменить варианты конструкции и хотите увидеть список доступных вариантов, запустите designoptions в объекте спецификации. Выходные данные также показывают варианты конструкции, используемые фильтром по умолчанию.
Использовать design для проектирования фильтра из объекта спецификации фильтра. Укажите метод проектирования (определенный на шаге 2) в качестве входных данных. Если варианты конструкции должны отличаться от значений по умолчанию, укажите их как пары имя-значение, следуя методу конструкции.
Если вы вызываете design функция без каких-либо выходных аргументов, FVTool запускается и показывает амплитудную характеристику проектируемого фильтра.
В качестве альтернативы используйте fvtool функция.
Дальнейший анализ, такой как просмотр частотной характеристики фильтра, расчет стоимости реализации фильтра и измерение характеристик отклика фильтра, может быть выполнен с использованием одного из поддерживаемых методов анализа для объектов системы фильтрации.
После анализа фильтра и определения того, что он удовлетворяет проектным ограничениям, можно применить объект фильтра к потоковым входным данным. Дополнительные сведения о передаче данных в объект фильтра см. на соответствующих ссылочных страницах object™ системы фильтров.
Подробный пример конструкции и анализа см. в разделе Спецификация и конструкция фильтра бабочек нижних частот.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.