exponenta event banner

equiripple

Равноскоростной односкоростной фильтр FIR из объекта спецификации

Синтаксис

equiFilt = design(d,'equiripple','SystemObject',true)
equiFilt = design(d,'equiripple',designoption,value,...,'SystemObject',true)

Описание

equiFilt = design(d,'equiripple','SystemObject',true) конструирует четкий цифровой фильтр FIR, используя спецификации, представленные в объекте d. Конструкция фильтра Equiripple минимизирует максимальную пульсацию в полосах пропускания и пробках.

При использовании equiripple при использовании объектов спецификации фильтра Nyquist могут возникать случаи конструкции, когда конструкция фильтра не сходится. Ошибки сходимости возникают, главным образом, при больших порядках фильтрации, малой ширине перехода или больших затуханиях полосы останова. Эти спецификации по отдельности или вместе взятые могут привести к сбоям конструкции. Дополнительные сведения см. в разделе fdesign.nyquist в интерактивной справочной системе.

equiFilt = design(d,'equiripple',designoption,value,...,'SystemObject',true) возвращает четный фильтр FIR, в котором в качестве входных аргументов указываются варианты конструкции.

Для определения доступных вариантов конструкции используйте designopts с объектом спецификации и методом конструирования в качестве входных аргументов, как показано на рисунке.

designopts(d,'method')

Для получения полной справки об использовании equiripple, см. справочную систему командной строки. Например, для получения конкретной информации об использовании equiripple с d, объект спецификации, введите в подсказке MATLAB следующее.

help(d,'equiripple')

Примеры

свернуть все

Design a single-rate equiripple filter from a halfband filter 
specification object. Notice the help command used to learn about the 
options for the specification object and method.
d = fdesign.halfband('tw,ast',0.1,80);
designmethods(d,'Systemobject',true)
Design Methods that support System objects for class fdesign.halfband (TW,Ast):


butter
ellip
iirlinphase
equiripple
kaiserwin
help(d,'equiripple')
 DESIGN Design a Equiripple FIR filter.
    HD = DESIGN(D, 'equiripple') designs a Equiripple filter specified by the
    FDESIGN object D, and returns the DFILT/MFILT object HD.
 
    HD = DESIGN(D, ..., 'SystemObject', true) implements the filter, HD,
    using a System object instead of a DFILT/MFILT object.
 
    HD = DESIGN(..., 'FilterStructure', STRUCTURE) returns a filter with the
    structure STRUCTURE.  STRUCTURE is 'dffir' by default and can be any of
    the following:

    'dffir'
    'dffirt'
    'dfsymfir'
    'fftfir'
 
    Some of the listed structures may not be supported by System object
    filters. Type validstructures(D, 'equiripple', 'SystemObject', true) to
    get a list of structures supported by System objects.
 
    HD = DESIGN(..., 'MinPhase', MPHASE) designs a minimum-phase filter
    when MPHASE is TRUE.  MPHASE is FALSE by default.
 
    HD = DESIGN(..., 'StopbandShape', SHAPE) designs a filter whose stopband
    has the shape defined by SHAPE.  SHAPE can be 'flat', '1/f', or 'linear'.
    SHAPE is 'flat' by default.

    HD = DESIGN(..., 'StopbandDecay', DECAY) specifies the decay to use when
    'StopbandShape' is not set to 'flat'.  When the shape is '1/f' this
    specifies the power that 1/f is raised.  When shaped is 'linear' this
    specifies the slope of the stopband in dB/rad/s.
 
    % Example #1 - Design a halfband lowpass equiripple filter with increased stopband attenuation.
       TW = 0.1; % Transition Width
       Ast = 80; % Stopband Attenuation (dB)
       h  = fdesign.halfband('Type','Lowpass','TW,Ast',TW,Ast);
       Hd = design(h, 'equiripple', 'StopbandShape','linear','StopbandDecay',50);
       fvtool(Hd)
 
designopts(d,'equiripple')
ans = struct with fields:
    FilterStructure: 'dffir'
           MinPhase: 0
      StopbandShape: 'flat'
      StopbandDecay: 0
       SystemObject: 0

equiFilt = design(d,'equiripple','stopbandshape','flat','SystemObject',true);
fvtool(equiFilt);

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line.

fvtool показывает четкую природу фильтра.

В этом примере создается фильтр equiripple с транспонированной структурой прямой формы путем указания аргумента FilterStructure. Чтобы задать варианты конструкции для фильтра, используйте designopts объект метода и опций opts.

d = fdesign.lowpass('fp,fst,ap,ast');
opts = designopts(d,'equiripple');
opts.FilterStructure='dffirt';
opts.DensityFactor=20
opts = struct with fields:
    FilterStructure: 'dffirt'
      DensityFactor: 20
           MinPhase: 0
           MaxPhase: 0
           MinOrder: 'any'
      StopbandShape: 'flat'
      StopbandDecay: 0
        UniformGrid: 1
       SystemObject: 0

firFilt = design(d,'equiripple','SystemObject',true,opts)
firFilt = 
  dsp.FIRFilter with properties:

            Structure: 'Direct form transposed'
      NumeratorSource: 'Property'
            Numerator: [1x43 double]
    InitialConditions: 0

  Show all properties

fvtool(firFilt);

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line.

MaxPhase Вариант конструкции фильтров equripple FIR в настоящее время доступен только для фильтров нижних, верхних, полосовых и полосовых частот.

См. также

Функции

Представлен в R2011a