Проектируйте конечную импульсную характеристику фильтр lowpass равновесного действия. Задайте частоту ребра полосы пропускания 0,2, рад/выборка и частоту ребра стоповой полосы 0,25, рад/выборка. Установите неравномерность в полосе пропускания на 0,5 дБ, а затухание в полосе задерживания на 40 дБ.
designSpecs =
lowpass with properties:
Response: 'Lowpass'
Specification: 'Fp,Fst,Ap,Ast'
Description: {4x1 cell}
NormalizedFrequency: 1
Fpass: 0.2000
Fstop: 0.2500
Apass: 0.5000
Astop: 40
Используйте метод Equiripple по умолчанию для разработки фильтра.
filt =
dsp.FIRFilter with properties:
Structure: 'Direct form'
NumeratorSource: 'Property'
Numerator: [1x69 double]
InitialConditions: 0
Show all properties
Определите доступные методы проекта путем запуска designmethods
функция на объекте спецификации создания фильтра, designSpecs
.
Design Methods that support System objects for class fdesign.lowpass (Fp,Fst,Ap,Ast):
butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin
multistage
Можно также задать опции проекта, используемые при разработке фильтра. Чтобы увидеть список доступных опций, запустите designoptions
функция на designSpecs
.
ans = struct with fields:
FilterStructure: {'dffir' 'dffirt' 'dfsymfir' 'fftfir'}
DensityFactor: 'double'
MinPhase: 'bool'
MaxPhase: 'bool'
MinOrder: {'any' 'even' 'odd'}
StopbandShape: {'flat' 'linear' '1/f'}
StopbandDecay: 'double'
UniformGrid: 'bool'
SystemObject: 'bool'
DefaultFilterStructure: 'dffir'
DefaultDensityFactor: 16
DefaultMaxPhase: 0
DefaultMinOrder: 'any'
DefaultMinPhase: 0
DefaultStopbandDecay: 0
DefaultStopbandShape: 'flat'
DefaultSystemObject: 0
DefaultUniformGrid: 1
Создайте фильтр равновесия конечной импульсной характеристики минимальной фазы путем установки 'MinPhase'
на true
.
filtMin =
dsp.FIRFilter with properties:
Structure: 'Direct form'
NumeratorSource: 'Property'
Numerator: [1x59 double]
InitialConditions: 0
Show all properties
Отображение диаграмм нулей и полюсов стандартных и минимально-фазовых проектов.
Перепроектируйте фильтр эллиптическим методом. Определите доступные опции проекта для эллиптического метода.
ans = struct with fields:
FilterStructure: {1x6 cell}
SOSScaleNorm: 'ustring'
SOSScaleOpts: 'fdopts.sosscaling'
MatchExactly: {'passband' 'stopband' 'both'}
SystemObject: 'bool'
DefaultFilterStructure: 'df2sos'
DefaultMatchExactly: 'both'
DefaultSOSScaleNorm: ''
DefaultSOSScaleOpts: [1x1 fdopts.sosscaling]
DefaultSystemObject: 0
Точно соответствовать полосе пропускания путем установки 'MatchExactly'
на 'passband'
.
filt =
dsp.BiquadFilter with properties:
Structure: 'Direct form II'
SOSMatrixSource: 'Property'
SOSMatrix: [3x6 double]
ScaleValues: [4x1 double]
InitialConditions: 0
OptimizeUnityScaleValues: true
Show all properties
Вы можете задать масштабирование нормы Pth на секциях второго порядка. Используйте масштабирование нормы L-бесконечности во временном интервале.
filtL =
dsp.BiquadFilter with properties:
Structure: 'Direct form II'
SOSMatrixSource: 'Property'
SOSMatrix: [3x6 double]
ScaleValues: [4x1 double]
InitialConditions: 0
OptimizeUnityScaleValues: true
Show all properties
Отображение частотных характеристик фильтров.