exponenta event banner

мера

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

Описание

пример

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) анализирует объект System фильтра, 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   

Примеры

свернуть все

Создайте фильтр нижних частот и проверьте соответствие фактического фильтра спецификациям. В этом случае используйте нормированную частоту для 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

Измерьте характеристики проектируемого фильтра нижних частот.

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      
 

Измерьте характеристики частотной характеристики фильтра нижних частот. Создать 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 является общим дискретно-временным фильтром, например односкоростным фильтром нижних частот, measure(sysobj) возвращает следующие спецификации фильтра.

Спецификация фильтра нижних частот

Описание

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'. Если арифметический ввод не задан и объект «Система фильтров» разблокирован, инструмент анализа использует фильтр двойной точности. Если арифметический ввод не указан и объект System заблокирован, функция выполняет анализ на основе типа данных заблокированного ввода.

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

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

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

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

Чтобы проверить, заблокирован или разблокирован объект System, используйте 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