exponenta event banner

дизайн

Применение метода конструирования к объекту спецификации фильтра

Описание

filt = design(designSpecs,'Systemobject',true) использует объект спецификации фильтра, designSpecs, для создания системного object™ фильтра, filt. Если метод конструирования не указан в качестве входного аргумента, design использует метод проектирования по умолчанию. Использовать designmethods(designSpecs,'default') для просмотра метода конструкции по умолчанию для объекта спецификации конструкции фильтра. Дополнительные сведения о спецификациях конструкции фильтра см. в разделе Проектирование фильтра в Fdesign - Обзор процесса.

filt = design(designSpecs,method,'Systemobject',true) использует метод проектирования, заданный method. method должен быть одним из параметров, возвращаемых designmethods.

пример

filt = design(designSpecs,method,PARAM,VALUE,...,'Systemobject',true) задает параметры метода проектирования. Использовать designoptions(designSpecs,method) для просмотра списка доступных вариантов методов проектирования на выбор. Для получения подробной справки по каждой из этих опций введите help(designSpecs,method) в командной строке MATLAB ®.

filt = design(designSpecs,method,opts,'Systemobject',true) задание параметров метода проектирования с использованием структуры opts. opts обычно получается из designopts и затем задана как вход в design функция. Использовать help(designSpecs,method) для получения дополнительной информации о дополнительных вводах.

Примеры

свернуть все

Проектирование фильтра нижних частот equiriple FIR. Задайте частоту краев полосы пропускания 0,2δ рад/образец и частоту краев полосы стопа 0,25δ рад/образец. Установите пульсацию полосы пропускания 0,5 дБ, а затухание полосы останова 40 дБ..

designSpecs = fdesign.lowpass('Fp,Fst,Ap,Ast',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 = design(designSpecs,'SystemObject',true)
filt = 
  dsp.FIRFilter with properties:

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

  Show all properties

Определите доступные методы проектирования, запустив designmethods функция на объекте спецификации конструкции фильтра, designSpecs.

designmethods(designSpecs,'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 функция на designSpecs.

designoptions(designSpecs,'equiripple')
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

Проектирование эквиптного фильтра с минимальной фазой FIR путем настройки 'MinPhase' кому true.

filtMin = design(designSpecs,'equiripple','MinPhase',true,'SystemObject',true)
filtMin = 
  dsp.FIRFilter with properties:

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

  Show all properties

Отображение нулевых полюсных графиков конструкций по умолчанию и конструкций с минимальной фазой.

fvt = fvtool(filt,filtMin,'Analysis','polezero');
legend(fvt,'Default design','Minimum-phase design')

Figure Filter Visualization Tool - Pole-Zero Plot contains an axes and other objects of type uitoolbar, uimenu. The axes with title Pole-Zero Plot contains 6 objects of type line, text. These objects represent Default design: Zero, Default design: Pole, Minimum-phase design: Zero, Minimum-phase design: Pole.

Измените конструкцию фильтра с помощью эллиптического метода. Определите доступные варианты конструкции для эллиптического метода.

designoptions(designSpecs,'ellip')
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 = design(designSpecs,'ellip','MatchExactly','passband','SystemObject',true)
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 = design(designSpecs,'ellip','MatchExactly','passband','SOSScaleNorm','linf', ...
    'SystemObject',true)
filtL = 
  dsp.BiquadFilter with properties:

                   Structure: 'Direct form II'
             SOSMatrixSource: 'Property'
                   SOSMatrix: [3x6 double]
                 ScaleValues: [4x1 double]
           InitialConditions: 0
    OptimizeUnityScaleValues: true

  Show all properties

Отображение частотных характеристик фильтров.

fvt = fvtool(filt,filtL);
legend(fvt,'Default scaling','L-infinity norm scaling')

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 3 objects of type line. These objects represent Default scaling, L-infinity norm scaling.

Входные аргументы

свернуть все

fdesign возвращает объект спецификации конструкции фильтра. Все объекты спецификации конструкции фильтра имеют эти свойства.

Имя свойства

Значение по умолчанию

Описание

Response

Зависит от выбранного типа

Определяет тип создаваемого фильтра, например интерполятор или полосовой фильтр. Это значение доступно только для чтения.

Specification

Зависит от выбранного типа

Определяет характеристики фильтра, используемые для определения требуемых характеристик фильтра, таких как частота отсечки Fc или порядок фильтрации N.

Description

Зависит от выбранного типа фильтра

Содержит описания спецификаций фильтра, используемых для определения объекта, и спецификаций фильтра, используемых при создании фильтра из объекта. Это значение доступно только для чтения.

NormalizedFrequency

Логичный true

Определяет, используется ли при расчете фильтра нормированная частота от 0 до 1 или частота дискретизации в диапазоне частот от 0 до Fs/2. Принимает либо true или false без одинарных кавычек. Фильтры взвешивания звука не поддерживают нормализованную частоту.

В дополнение к этим свойствам объекты спецификации конструкции фильтра могут также иметь другие свойства, в зависимости от того, проектируют ли они односкоростные фильтры или многоскоростные фильтры.

Добавлены свойства многоскоростных фильтров

Описание

DecimationFactor

Указывает величину уменьшения частоты дискретизации. Всегда положительное целое число.

InterpolationFactor

Указывает величину увеличения частоты дискретизации. Всегда положительное целое число.

PolyphaseLength

Длина полифазы - это длина каждого многофазного субфильтра, который составляет прореживатель или интерполятор или фильтры коэффициента изменения скорости. Общая длина фильтра является результатом pl и коэффициенты изменения ставок. pl должно быть четным целым числом.

Метод проектирования, заданный как символьный вектор. Метод конструирования, предоставленный в качестве входного аргумента, должен быть одним из методов, возвращаемых:

designmethods(designSpecs,'Systemobject',true)

В таблице перечислены все методы проектирования. Их подмножество становится доступным в зависимости от объекта спецификации конструкции фильтра. designSpecs.

Методы проектирования

Описание

butter

Фильтр бабочки

cheby1

Фильтр типа I Чебышева

cheby2

Фильтр типа II Чебышева

ellip

Эллиптический фильтр

equiripple

Фильтр Equiripple FIR

firls

Фильтр КИХ с наименьшим квадратом линейной фазы

freqsamp

Фильтр КИХ с частотной выборкой

ifir

Интерполированный фильтр FIR

iirlinphase

Квазилинейный фазовый БИХ-фильтр

iirlpnorm

Оптимальный фильтр БИХ по наименьшей P-норме

iirls

Фильтр БИХ методом наименьших квадратов

fircls

Фильтр наименьших квадратов с ограничением FIR

kaiserwin

Фильтр окна Кайзера

maxflat

Фильтр Maxflat FIR

multistage

Многоступенчатый фильтр

window

Фильтр FIR с использованием оконной импульсной характеристики

ansis142

Фильтр ANSI S1.42. Применяется к fdesign.audioweighting объект.

bell41009

Bell 41009 (C-сообщение) фильтр БИХ. Применяется к fdesign.audioweighting объект.

Для более быстрого проектирования фильтров используйте аргумент ввода method принимает множество специальных ключевых слов, которые заставляют design вести себя по-разному. В этой таблице представлены ключевые слова, которые можно использовать для method еще как design отвечает на ключевое слово:

Ключевое слово метода конструирования

Описание реакции на проект

'FIR'

Силы design для создания фильтра FIR. Если для объекта не существует метода проектирования FIR d, design возвращает ошибку.

'IIR'

Силы design для создания фильтра БИХ. Если для объекта не существует метода проектирования IIR d, design возвращает ошибку.

'ALLFIR'

Производит фильтры из каждого применимого метода проектирования FIR для спецификаций в d, один фильтр для каждого метода проектирования. В результате, design возвращает несколько фильтров в выходном объекте.

'ALLIIR'

Производит фильтры из каждого применимого метода проектирования IIR для спецификаций в d, один фильтр для каждого метода проектирования. В результате, design возвращает несколько фильтров в выходном объекте.

'ALL'

Проектирование фильтров с использованием всех применимых методов проектирования для объекта спецификации d. В результате, design возвращает несколько фильтров, по одному для каждого метода конструирования. design использует методы проектирования в порядке, designmethods(D,'Systemobject',true) возвращает их.

Ключевые слова не чувствительны к регистру.

Когда design возвращает несколько фильтров в выходном объекте, используйте индексирование для просмотра отдельных фильтров. Например, чтобы увидеть третий фильтр в filt, введите:

filt(3)

Пример: filt = design(designSpecs,'butter','SystemObject',true)

Пример: filt = design(designSpecs,'ALLFIR','SystemObject',true)

Укажите варианты конструкции путем передачи opts структура в качестве входных данных для design функция. opts структура получается путем выполнения designopts(designSpecs,method).

designSpecs = fdesign.notch
opts = designopts(designSpecs,'butter')
opts.FilterStructure = 'df1sos'
filt = design(designSpecs,'butter',opts,'SystemObject',true))
Представлен в R2009a