measure

Измерьте характеристики частотной характеристики фильтра Системного объекта

Описание

пример

measure(sysobj) отображает измерения различных величин от частотной характеристики фильтра System object™, sysobj. Измерения включают в себя фактическую неравномерность в полосе пропускания, минимальное затухание в полосе задерживания остановки, частотную точку, в которой коэффициент усиления фильтра на 3 дБ ниже номинального коэффициента усиления полосы пропускания и т.д. Вы должны создать sysobj использование fdesign и design с аргументом пары "имя-значение" 'SystemObject', true. Можно опционально задать дополнительные опции одним или несколькими Name,Value аргументы в виде пар.

M = measure(sysobj) возвращает измерения, M, так, что измерения могут быть запрошены программно. Для примера, чтобы запросить точку 3 дБ, введите M.F3dB. Тип get(M) чтобы просмотреть полный список свойств, которые можно запросить. Обратите внимание, что различные фильтрующие характеристики генерируют различные измерения.

M = measure(sysobj,'Arithmetic',arithType) анализирует Системный объект фильтра, sysobj, на основе арифметики, указанной в arithType вход. arithType может быть задано одно из 'double', 'single', или 'fixed'. Когда вход арифметики не задан, и Системный объект фильтра находится в разблокированном состоянии, инструмент анализа принимает фильтр двойной точности.

M = measure(sysobj,'freqspec', freqspecvalue) передает значение частоты как вход в measure для порядка соответствующих измерений величины. Для проектов, которые не задают некоторые частотные ограничения, можно определить соответствующие измерения величины с помощью этой опции.

В следующем примере ребро полосы пропускания, неравномерность в полосе пропускания и ширина перехода БИХ неизвестны.

 designLowpass = fdesign.lowpass('N,F3dB,Ast',8,0.5,80);
 chebFilter = design(designLowpass,'cheby2');
 measure(chebFilter)
Sample Rate      : N/A (normalized frequency)
Passband Edge    : Unknown                   
3-dB Point       : 0.5                       
6-dB Point       : 0.51823                   
Stopband Edge    : 0.68727                   
Passband Ripple  : Unknown                   
Stopband Atten.  : 79.9994 dB                
Transition Width : Unknown        
Задайте ребро полосы пропускания, который будет 0.4, и измерьте неравномерность в полосе пропускания и ширину перехода этого фильтра.
 measure(chebFilter,'Fpass',0.4)
Sample Rate      : N/A (normalized frequency)
Passband Edge    : 0.4                       
3-dB Point       : 0.5                       
6-dB Point       : 0.51823                   
Stopband Edge    : 0.68727                   
Passband Ripple  : 0.013644 dB               
Stopband Atten.  : 79.9994 dB                
Transition Width : 0.28727   

Примеры

свернуть все

Создайте lowpass и проверьте, соответствует ли фактический фильтр спецификациям. В этом случае используйте нормированную частоту для Fs, настройки по умолчанию.

desigLowpass = fdesign.lowpass('Fp,Fst,Ap,Ast',0.45,0.55,0.1,80)
desigLowpass = 
  lowpass with properties:

               Response: 'Lowpass'
          Specification: 'Fp,Fst,Ap,Ast'
            Description: {4x1 cell}
    NormalizedFrequency: 1
                  Fpass: 0.4500
                  Fstop: 0.5500
                  Apass: 0.1000
                  Astop: 80

designmethods(desigLowpass,'SystemObject',true)
Design Methods that support System objects for class fdesign.lowpass (Fp,Fst,Ap,Ast):


butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin
multistage

Используйте метод проекта equiripple по умолчанию.

equiFilter = design(desigLowpass,'SystemObject',true)
equiFilter = 
  dsp.FIRFilter with properties:

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

  Show all properties

Измерьте спецификации проектируемого lowpass.

measure(equiFilter)
ans = 
Sample Rate      : N/A (normalized frequency)
Passband Edge    : 0.45                      
3-dB Point       : 0.47798                   
6-dB Point       : 0.48913                   
Stopband Edge    : 0.55                      
Passband Ripple  : 0.095021 dB               
Stopband Atten.  : 80.1164 dB                
Transition Width : 0.1                       
 

Stopband Edge, Passband Edge, Passband Ripple, и Stopband Attenuation все соответствуют спецификациям.

Теперь, используя Fs в линейной частоте создайте полосно-пропускающий фильтр и измерьте характеристики величины характеристики.

designBandpass = fdesign.bandpass
designBandpass = 
  bandpass with properties:

               Response: 'Bandpass'
          Specification: 'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2'
            Description: {7x1 cell}
    NormalizedFrequency: 1
                 Fstop1: 0.3500
                 Fpass1: 0.4500
                 Fpass2: 0.5500
                 Fstop2: 0.6500
                 Astop1: 60
                  Apass: 1
                 Astop2: 60

Преобразуйте в линейную частоту.

normalizefreq(designBandpass,false,1.5e3)
bpFilter = design(designBandpass,'cheby2','SystemObject',true);

Измерьте спецификации проектируемого полосно-пропускающего фильтра.

measure(bpFilter)
ans = 
Sample Rate             : 1.5 kHz    
First Stopband Edge     : 262.5 Hz   
First 6-dB Point        : 319.9585 Hz
First 3-dB Point        : 324.9744 Hz
First Passband Edge     : 337.5 Hz   
Second Passband Edge    : 412.5 Hz   
Second 3-dB Point       : 425.0256 Hz
Second 6-dB Point       : 430.0415 Hz
Second Stopband Edge    : 487.5 Hz   
First Stopband Atten.   : 60 dB      
Passband Ripple         : 0.17985 dB 
Second Stopband Atten.  : 60 dB      
First Transition Width  : 75 Hz      
Second Transition Width : 75 Hz      
 

Измерьте характеристики частотной характеристики высокочастотного фильтра. Создайте dsp.HighpassFilter Системный объект со свойствами по умолчанию. Измерьте характеристики частотной характеристики фильтра.

HPF = dsp.HighpassFilter
HPF = 
  dsp.HighpassFilter with properties:

               FilterType: 'FIR'
    DesignForMinimumOrder: true
        StopbandFrequency: 8000
        PassbandFrequency: 12000
      StopbandAttenuation: 80
           PassbandRipple: 0.1000
               SampleRate: 44100

  Show all properties

HPFMeas = measure(HPF)
HPFMeas = 
Sample Rate      : 44.1 kHz   
Stopband Edge    : 8 kHz      
6-dB Point       : 10.418 kHz 
3-dB Point       : 10.8594 kHz
Passband Edge    : 12 kHz     
Stopband Atten.  : 81.8558 dB 
Passband Ripple  : 0.08066 dB 
Transition Width : 4 kHz      
 

Измерьте характеристики частотной характеристики lowpass. Создайте dsp.LowpassFilter Системный объект со свойствами по умолчанию. Измерьте характеристики частотной характеристики фильтра.

LPF = dsp.LowpassFilter
LPF = 
  dsp.LowpassFilter with properties:

               FilterType: 'FIR'
    DesignForMinimumOrder: true
        PassbandFrequency: 8000
        StopbandFrequency: 12000
           PassbandRipple: 0.1000
      StopbandAttenuation: 80
               SampleRate: 44100

  Show all properties

LPFMeas = measure(LPF)
LPFMeas = 
Sample Rate      : 44.1 kHz  
Passband Edge    : 8 kHz     
3-dB Point       : 9.1311 kHz
6-dB Point       : 9.5723 kHz
Stopband Edge    : 12 kHz    
Passband Ripple  : 0.08289 dB
Stopband Atten.  : 81.6141 dB
Transition Width : 4 kHz     
 

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

свернуть все

Вход фильтр, заданный как один из следующих Системных объектов фильтра:

Когда sysobj является общим фильтром в дискретном времени, для примера, односкоростным lowpass фильтром, measure(sysobj) возвращает следующие спецификации фильтра.

Спецификация lowpass

Описание

Sample Rate

Частота дискретизации фильтров.

Passband Edge

Расположение ребра полосы пропускания при ее переходе.

3-dB Point

Расположение точки -3 дБ на кривой отклика.

6-dB Point

Расположение точки -6 дБ на кривой отклика.

Stopband Edge

Расположение ребра переходной полосы при его входе в стоповый диапазон.

Passband Ripple

Рябь в полосе.

Stopband Atten

Ослабление в полосе упора.

Transition Width

Ширина перехода между полосой пропускания и полосой упора, в нормализованной частоте или абсолютной частоте. Измеряется между Fpass и Fstop.

Когда sysobj - полосно-заграждающий фильтр, measure(sysobj) возвращает эти спецификации для полученного полосно-заграждающего фильтра.

Спецификация полосно-заграждающего фильтра

Описание

Sample Rate

Частота дискретизации фильтров.

First Passband Edge

Расположение ребра первой полосы пропускания.

First 3-dB Point

Расположение ребра точки -3 дБ в первой полосе.

First 6-dB Point

Расположение ребра точки -6 дБ в первой полосе.

First Stopband Edge

Расположение начала пробки.

Second Stopband Edge

Расположение конца пробки.

Second 6-dB Point

Расположение ребра точки -6 дБ во второй полосе.

Second 3-dB Point

Расположение ребра точки -3 дБ во второй полосе.

Second Passband Edge

Расположение начала второго полосы пропускания.

First Passband Ripple

Рябь в первой полосе пропускания.

Stopband Atten

Ослабление в полосе упора.

Second Passband Ripple

Рябь во второй полосе пропускания.

First Transition Width

Ширина первой переходной области. Измеряется между точками -3 и -6 дБ.

Second Transition Width

Ширина второй переходной области. Измеряется между точками -6 и -3 дБ.

Когда sysobj является интерполятором, дециматором или преобразователем скорости, measure(sysobj) возвращает эти спецификации для полученного фильтра.

Спецификация фильтра интерполятора

Описание

Sample Rate

Частота дискретизации фильтров.

First Passband Edge

Расположение ребра полосы пропускания при ее переходе.

3-dB Point

Расположение точки -3 дБ на кривой отклика.

6-dB Point

Расположение точки -6 дБ на кривой отклика.

Stopband Edge

Расположение ребра переходной полосы при его входе в стоповый диапазон.

Passband Ripple

Рябь в полосе.

Stopband Atten

Ослабление в полосе упора.

Transition Width

Ширина перехода между полосой пропускания и полосой упора, в нормализованной частоте или абсолютной частоте. Измеряется между Fpass и Fstop.

Арифметика, используемая в анализе фильтра, задается как 'double', 'single', или 'Fixed'. Когда вход арифметики не задан и Системный объект фильтра разблокирован, инструмент анализа принимает фильтр двойной точности. Когда арифметический вход не задан и системный объект заблокирован, функция выполняет анализ на основе типа данных заблокированного входа.

The 'Fixed' значение применяется к фильтрации системных объектов только со свойствами с фиксированной точкой.

Когда 'Arithmetic' входной параметр задается как 'Fixed' и объект фильтра имеет тип данных коэффициентов, установленный на 'Same word length as input'арифметический анализ зависит от того, разблокирован или заблокирован системный объект.

  • unlocked -- Функция объекта анализа не может определить тип данных коэффициентов. Функция принимает, что тип данных коэффициентов подписан, имеет 16-битный размер слова и автоматически масштабируется. Функция выполняет анализ с фиксированной точкой на основе этого предположения.

  • locked -- Когда тип входных данных 'double' или 'single'функция объекта анализа не может определить тип данных коэффициентов. Функция принимает, что тип данных коэффициентов подписан, имеет 16-битный размер слова и автоматически масштабируется. Функция выполняет анализ с фиксированной точкой на основе этого предположения.

Чтобы проверить, заблокирован ли или разблокирован системный объект, используйте isLocked функция.

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

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

В следующем примере ребро полосы пропускания, неравномерность в полосе пропускания и ширина перехода БИХ неизвестны.

 designLowpass = fdesign.lowpass('N,F3dB,Ast',8,0.5,80);
 chebFilter = design(designLowpass,'cheby2');
 measure(chebFilter)
Sample Rate      : N/A (normalized frequency)
Passband Edge    : Unknown                   
3-dB Point       : 0.5                       
6-dB Point       : 0.51823                   
Stopband Edge    : 0.68727                   
Passband Ripple  : Unknown                   
Stopband Atten.  : 79.9994 dB                
Transition Width : Unknown        
Задайте ребро полосы пропускания, который будет 0.4, и измерьте неравномерность в полосе пропускания и ширину перехода этого фильтра.
 measure(chebFilter,'Fpass',0.4)
Sample Rate      : N/A (normalized frequency)
Passband Edge    : 0.4                       
3-dB Point       : 0.5                       
6-dB Point       : 0.51823                   
Stopband Edge    : 0.68727                   
Passband Ripple  : 0.013644 dB               
Stopband Atten.  : 79.9994 dB                
Transition Width : 0.28727   

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

свернуть все

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

Измерения, M могут быть запрошены программно. Для примера, чтобы запросить точку 3 дБ, введите M.F3dB. Напечатать get(M) чтобы просмотреть полный список свойств, которые можно запросить. Обратите внимание, что различные фильтрующие характеристики генерируют различные измерения.

Совет

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

f = fdesign.lowpass('N,F3dB,Ast',8,0.5,80);
H = design(f,'cheby2','SystemObject',true);
measure(H)
возвращает значения Unknown для ребра полосы пропускания, неравномерности в полосе пропускания и измерений ширины перехода, но

f = fdesign.lowpass('N,F3dB,Ast',8,0.5,80);
H = design(f,'cheby2','SystemObject',true);
measure(H,'Fpass',0.4)
обеспечивает измерения для всех возвращенных значений.

См. также

Функции

Введенный в R2011a