design

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

Описание

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) для получения дополнительной информации о дополнительных входных параметрах.

Примеры

свернуть все

Спроектируйте КИХ equiripple фильтр lowpass. Задайте частоту ребра полосы пропускания 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: [-0.0057 -0.0010 0.0010 0.0040 0.0065 0.0073 ... ]
    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

Спроектируйте КИХ минимальной фазы equiripple фильтр по установке 'MinPhase' к true.

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

            Structure: 'Direct form'
      NumeratorSource: 'Property'
            Numerator: [0.0162 0.0380 0.0723 0.1143 0.1561 0.1875 0.1980 ... ]
    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 object and other objects of type uitoolbar, uimenu. The axes object 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 object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) contains 3 objects of type line. These objects represent Default scaling, L-infinity norm scaling.

Входные параметры

свернуть все

fdesign возвращает объект спецификации создания фильтра. Каждый объект спецификации создания фильтра имеет эти свойства.

PropertyName

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

Описание

Response

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

Задает тип фильтра, чтобы спроектировать, такие как интерполятор или полосовой фильтр. Это - значение только для чтения.

Specification

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

Задает характеристики фильтра, используемые, чтобы задать желаемую эффективность фильтра, такую как частота среза Fc или порядок фильтра N.

Description

Зависит от типа фильтра, который вы выбираете

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

NormalizedFrequency

Логический true

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

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

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

Описание

DecimationFactor

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

InterpolationFactor

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

PolyphaseLength

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

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

designmethods(designSpecs,'Systemobject',true)

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

Методы разработки

Описание

butter

Фильтр Баттерворта

cheby1

Фильтр Чебышевский Тип 1

cheby2

Чебышевский фильтр Типа II

ellip

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

equiripple

КИХ-фильтр Equiripple

firls

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

freqsamp

Произведенный частотой КИХ-фильтр

ifir

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

iirlinphase

Квазилинейный фильтр фазы IIR

iirlpnorm

Наименьшее количество P-нормы оптимальный БИХ-фильтр

iirls

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

fircls

КИХ-фильтр метода наименьших квадратов с ограничениями

kaiserwin

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

maxflat

КИХ-фильтр Maxflat

multistage

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

window

КИХ-фильтр с помощью оконной импульсной характеристики

ansis142

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

bell41009

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

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

Ключевое слово метода разработки

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

'FIR'

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

'IIR'

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

'ALLFIR'

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

'ALLIIR'

Производит фильтры из каждого применимого БИХ-метода разработки для технических требований в 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
Для просмотра документации необходимо авторизоваться на сайте