Объект спецификации создания фильтра
Используйте fdesign
функция, чтобы создать объект спецификации создания фильтра, который содержит спецификации для фильтра, такие как неравномерность в полосе пропускания, затухание в полосе задерживания и порядок фильтра. Затем используйте design
функционируйте, чтобы спроектировать фильтр от объекта спецификаций создания фильтра. Для примера см. Проект Lowpass Decimator.
Вот диграмма рабочего процесса, которая показывает простую процедуру, чтобы спроектировать, анализировать, и наконец применить фильтр на потоковую передачу данных.
Для большего количества опций управления см. Процедуру Создания фильтра. Для полного рабочего процесса см. Проект Фильтр в Fdesign — Обзор Процесса.
возвращает объект спецификации проекта для фильтра с данным designSpecs
= fdesign.response
.response
задает переменные, чтобы использовать, которые задают ваше создание фильтра. Параметры создания фильтра применяются к методу создания фильтра, который вы выбираете для своего фильтра. Опция спецификации, которую вы выбираете, определяет, какие методы разработки применяются designSpecs
= fdesign.response
(spec
)к fdesign
объект.
задает частоту дискретизации в Гц, чтобы использовать в спецификациях фильтра. Скаляр частоты дискретизации должен быть последним входным параметром. Если вы задаете частоту дискретизации, все спецификации частоты находятся в Гц.designSpecs
= fdesign.response
(___,Fs
)
задает модули для любой спецификации величины, которую вы обеспечиваете во входных параметрах.designSpecs
= fdesign.response
(___,magunits
)
Спроектируйте КИХ с 100 касаниями lowpass decimator фильтр, который уменьшает частоту дискретизации сигнала с 60 кГц до 20 кГц. Полоса пропускания фильтра расширяет до 6 кГц. Задайте неравномерность в полосе пропускания 0,01 дБ и затухание в полосе задерживания 100 дБ.
Fs = 60e3; N = 99; Fpass = 6e3; Apass = 0.01; Astop = 100; M = Fs/20e3;
Setup объект спецификаций создания фильтра использование fdesign.decimator
функция.
filtSpecs = fdesign.decimator(M,'lowpass','N,Fp,Ap,Ast',N,Fpass,Apass,Astop,Fs);
Спроектируйте КИХ lowpass decimator использование 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)
Спроектируйте фильтр lowpass, чтобы использовать на сигнале, произведенном на уровне 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
функция, спроектируйте equiripple КИХ-фильтр и эллиптический БИХ-фильтр, которые соответствуют спецификациям.
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
из каждого фильтра. equiripple КИХ-фильтр требует значительно большего количества коэффициентов, чем эллиптический БИХ-фильтр.
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')
Спроектируйте Фильтр Баттерворта lowpass, который имеет частоту ребра полосы пропускания рад/выборка, частота полосы задерживания рад/выборка, неравномерность в полосе пропускания 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, чтобы получить справку на определенной структуре. Например, эта команда предоставляет больше информации об объекте спецификации lowpass:
doc fdesign.lowpass
Каждый response
имеет Specification
свойство, которое задает спецификации, чтобы использовать, чтобы спроектировать ваш фильтр. Можно использовать значения по умолчанию или задать Specification
свойство, когда вы создаете объект спецификаций.
Используя Specification
свойство, можно обеспечить ограничения фильтра, такие как порядок фильтра или затухание полосы пропускания, чтобы использовать, когда вы создаете свой фильтр из объекта спецификации.
spec
— Спецификации создания фильтраСпецификации создания фильтра, заданные как вектор символов. Набор доступных опций спецификации зависит от fdesign.
функция. Для получения дополнительной информации обратитесь к отдельному response
fdesign.
страницы.response
Создание фильтра основано на спецификациях, обеспеченных fdesign.
объект. Например, когда вы создаете объект спецификации создания фильтра lowpass по умолчанию, response
fdesign.lowpass
, выражение спецификации установлено в 'Fp,Fst,Ap,Ast'
. Параметры создания фильтра — Fp
(частота полосы пропускания), Fst
(частота полосы задерживания), Ap
(неравномерность в полосе пропускания) и 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.
не допустимый response
Specification
опция, fdesign
принимает, что входной параметр является спецификацией фильтра и применяет ее с помощью Specification
по умолчанию опция. Например,
'Fp,Fst,Ap,Ast'
значение по умолчанию для объекта lowpass.
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
возвращает объект спецификации создания фильтра. Каждый объект спецификации создания фильтра имеет эти свойства:
PropertyName | Значение по умолчанию | Описание |
---|---|---|
| Зависит от выбранного типа | Задает тип фильтра, чтобы спроектировать, такие как интерполятор или полосовой фильтр. Это - значение только для чтения. |
| Зависит от выбранного типа | Задает характеристики фильтра, используемые, чтобы задать желаемую производительность фильтра, такую как частота среза |
| Зависит от типа фильтра, который вы выбираете | Содержит описания спецификаций фильтра, используемых, чтобы задать объект и спецификации фильтра, которые вы используете, когда вы создаете фильтр из объекта. Это - значение только для чтения. |
| Логический | Определяет, использует ли вычисление фильтра нормированную частоту от 0 до 1, или диапазон частот от 0 до Fs/2, частота дискретизации. Принимает любой |
В дополнение к этим свойствам объекты спецификации создания фильтра могут иметь другие свойства также, в зависимости от того, проектируют ли они односкоростные фильтры или многоскоростные фильтры.
Добавленные свойства для многоскоростных фильтров | Описание |
---|---|
| Задает сумму, чтобы уменьшить уровень выборки. Всегда положительное целое число. |
| Задает сумму, чтобы увеличить уровень выборки. Всегда положительное целое число. |
| Многофазная длина является длиной каждого многофазного подфильтра, который составляет decimator или интерполятор или фильтры фактора изменения уровня. Общая длина фильтра является продуктом |
Вот диграмма рабочего процесса полной процедуры для того, чтобы проектировать и анализировать фильтр.
Вот шаги подробно:
Создайте fdesign.
объект спецификации задать расчетные параметры.response
Используйте designmethods
определить методы создания фильтра, которые работают на ваш новый объект спецификации фильтров. Если вы принимаете решение использовать метод оформления по умолчанию, то этот шаг является дополнительным.
Если бы вы предпочитаете изменять проектные решения и хотели бы видеть список доступных параметров, запустить designoptions
функция на объекте спецификации. Выход также показывает проектным решениям использование фильтра по умолчанию.
Используйте design
спроектировать фильтр от объекта спецификации фильтров. Задайте метод разработки (определенный из шага 2) как вход. Если проектные решения должны измениться от значений по умолчанию, задайте их как пары "имя-значение" после метода разработки.
Если вы вызываете design
функция без любых выходных аргументов, FVTool запускается и показывает ответ величины спроектированного фильтра.
В качестве альтернативы используйте fvtool
функция.
Последующий анализ, такой как просмотр частотной характеристики фильтра, вычисление стоимости реализации фильтра и измерения характеристик ответа фильтра, может быть сделан с помощью одного из поддерживаемых Методов анализа для Системных объектов Фильтра.
Если вы анализируете фильтр и решаете, что фильтр удовлетворяет конструктивным ограничениям, можно применить объект фильтра к потоковой передаче входных данных. Для получения дополнительной информации о том, как передать данные объекту фильтра, отошлите к соответствующей Системе фильтра object™ страницы с описанием.
Для подробного примера на проекте и анализе, смотрите Спецификацию Фильтра Баттерворта Lowpass и Проект.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.