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

Примеры

свернуть все

Проектируйте конечную импульсную характеристику фильтр 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: [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

Создайте фильтр равновесия конечной импульсной характеристики минимальной фазы путем установки '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

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

cheby2

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

ellip

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

equiripple

Фильтр Equiripple конечной импульсной характеристики

firls

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

freqsamp

Частотно-дискретизированный конечной импульсной характеристикой фильтр

ifir

Интерполированный конечная импульсная характеристика

iirlinphase

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

iirlpnorm

БИХ наименьшей P-нормы

iirls

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

fircls

Конечная импульсная характеристика с методами наименьших квадратов с ограничениями

kaiserwin

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

maxflat

Фильтр конечной импульсной характеристики Maxflat

multistage

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

window

Конечная импульсная характеристика с оконной импульсной характеристикой

ansis142

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

bell41009

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

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

Ключевое слово Design Method

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

'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 функция. The opts структура получена при выполнении designopts(designSpecs,method).

designSpecs = fdesign.notch
opts = designopts(designSpecs,'butter')
opts.FilterStructure = 'df1sos'
filt = design(designSpecs,'butter',opts,'SystemObject',true))
Введенный в R2009a