dsp.NotchPeakFilter

Настраиваемая отметка второго порядка и худой БИХ-фильтр

Описание

NotchPeakFilter возразите фильтрует каждый канал входа с помощью БИХ-реализации фильтра.

Отфильтровать каждый канал входа:

  1. Создайте dsp.NotchPeakFilter объект и набор его свойства.

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

npFilter = dsp.NotchPeakFilter возвращает отметку второго порядка и худой БИХ-фильтр, который независимо фильтрует каждый канал входа в зависимости от времени, с помощью заданной центральной частоты и полосы пропускания на 3 дБ.

npFilter = dsp.NotchPeakFilter('Specification','Quality factor and center frequency') задает добротность (Q фактор) метки или пикового фильтра вместо 3 полоса пропускания дБ.

npFilter = dsp.NotchPeakFilter('Specification','Coefficients') задает содействующие значения, которые влияют на полосу пропускания и центральную частоту непосредственно, вместо того, чтобы задать расчетные параметры в Гц. Это удаляет вычисления тригонометрии, включенные, когда свойства настраиваются.

пример

npFilter = dsp.NotchPeakFilter(Name,Value) возвращает фильтр метки с каждым заданным набором имени свойства к заданному значению. Незаданные свойства имеют значения по умолчанию.

Свойства

развернуть все

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

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Установите спецификацию как 'Bandwidth and center frequency', 'Quality factor and center frequency', или 'Coefficients'.

Задайте 3 фильтра полоса пропускания дБ в виде конечного положительного числа в Гц. Значение должно быть скаляром между 0 и половина частоты дискретизации.

Настраиваемый: да

Зависимости

Это свойство применимо только если Specification 'Bandwidth and center frequency'.

Типы данных: single | double

Задайте центральную частоту фильтра (и для метки и для пика) в виде конечного положительного числа в Гц. Значение должно быть скаляром между 0 и половина частоты дискретизации.

Настраиваемый: да

Зависимости

Это свойство применимо только если Specification установлен в 'Bandwidth and center frequency' или 'Quality factor and center frequency'.

Типы данных: single | double

Задайте добротность (Q фактор) и для метки и для пиковых фильтров. Фактор Q задан как центральная частота, разделенная на полосу пропускания. Более высокий фактор Q соответствует более узкой метке или пику. Фактором Q должно быть скалярное значение, больше, чем 0.

Настраиваемый: да

Зависимости

Это свойство применимо только если Specification установлен в 'Quality factor and center frequency'.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

Задайте частоту дискретизации входа в Гц в виде конечного числа.

Типы данных: single | double

Задайте значение, которое определяет 3 фильтра полоса пропускания дБ в виде конечного числа в области значений [-1 1]. Значение -1 соответствует максимальному 3 полоса пропускания дБ (SampleRate/4), и 1 соответствует минимальному 3 полоса пропускания дБ (0 Гц, фильтр allpass).

Настраиваемый: да

Зависимости

Это свойство только применимо если Specification установлен в 'Coefficients'.

Типы данных: single | double

Задайте коэффициент, который определяет центральную частоту фильтра в виде конечного числа в области значений [-1 1]. Значение -1 соответствует минимальной центральной частоте (0 Гц), и 1 соответствует максимальной центральной частоте (SampleRate/2 Гц). Значение по умолчанию 0, который соответствует SampleRate/4 Гц.

Настраиваемый: да

Зависимости

Это свойство только применимо если Specification установлен в 'Coefficients'.

Типы данных: single | double

Использование

Описание

Y = npFilter(x) фильтры каждый канал (столбец) входного сигнала, x, произвести фильтр метки выход, Y.

[Yn,Yp] = npFilter(x) фильтры каждый канал входного сигнала, x, произвести фильтр метки выход, Yn, и пиковый фильтр выход, Yp.

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

развернуть все

Входной сигнал в виде вектора или матрицы.

Типы данных: single | double
Поддержка комплексного числа: Да

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

развернуть все

Отметьте фильтруют выходной параметр, возвращенный как вектор или матрица.

Типы данных: single | double
Поддержка комплексного числа: Да

Пиковый фильтр выходной параметр, возвращенный как вектор или матрица.

Типы данных: single | double
Поддержка комплексного числа: Да

Функции объекта

Чтобы использовать объектную функцию, задайте Систему object™ как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

getBandwidthПолучите полосу пропускания на 3 дБ
getCenterFrequencyПолучите центральную частоту
getOctaveBandwidthПолоса пропускания в количестве октав
getQualityFactorПолучите добротность
tfПередаточная функция
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

В этом примере показано, как использовать dsp.NotchPeakFilter в качестве фильтра метки с центральной частотой 5 000 Гц и полосой пропускания на 3 дБ 500 Гц.

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным step синтаксис. Например, myObject (x) становится шагом (myObject, x).

npFilter = dsp.NotchPeakFilter('CenterFrequency',5000,'Bandwidth',500);
sa =  dsp.SpectrumAnalyzer('SampleRate',44100,...
    'PlotAsTwoSidedSpectrum',false,'SpectralAverages',50);
for i=1:5000
    y = npFilter(randn(1024,1));
    sa(y);
    if (i==2500)
        % Tune center frequency to 10000
        npFilter.CenterFrequency = 10000;
    end
end
release(npFilter)
release(sa)

Создайте dsp.NotchPeakFilter объект с Specification набор свойств к 'Quality factor and center frequency'. Добротность по умолчанию Q равняется 5 и центральной частоте, ФК составляет 11 025 Гц.

np = dsp.NotchPeakFilter('Specification','Quality factor and center frequency')
np = 
  dsp.NotchPeakFilter with properties:

      Specification: 'Quality factor and center frequency'
      QualityFactor: 5
    CenterFrequency: 11025
         SampleRate: 44100

Вычислите полосу пропускания на 3 дБ фильтра пика метки с помощью getBandwidth функция. Полоса пропускания вычисляется как отношение центральной частоты и добротности, FcQ.

getBandwidth(np)
ans = 2205

Визуализируйте ответ фильтра с помощью fvtool.

fvtool(np)

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 an object of type line.

Создайте dsp.NotchPeakFilter объект с Specification набор свойств к 'Coefficients'.

np = dsp.NotchPeakFilter('Specification','Coefficients')
np = 
  dsp.NotchPeakFilter with properties:

                 Specification: 'Coefficients'
          BandwidthCoefficient: 0.7265
    CenterFrequencyCoefficient: 0
                    SampleRate: 44100

Определите центральную частоту фильтра пика метки с помощью getCenterFrequency функция. Когда Specification установлен в 'Coefficients', центральная частота определяется из CenterFrequencyCoefficient значение и частота дискретизации.

getCenterFrequency(np)
ans = 11025

Визуализируйте ответ фильтра с помощью fvtool.

fvtool(np)

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 an object of type line.

Создайте dsp.NotchPeakFilter объект в настройке по умолчанию.

np = dsp.NotchPeakFilter
np = 
  dsp.NotchPeakFilter with properties:

      Specification: 'Bandwidth and center frequency'
          Bandwidth: 2205
    CenterFrequency: 11025
         SampleRate: 44100

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

getOctaveBandwidth(np)
ans = 0.2881

Визуализируйте ответ фильтра с помощью fvtool.

fvtool(np)

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 an object of type line.

Создайте dsp.NotchPeakFilter объект в настройке по умолчанию, где Specification свойство установлено в 'Bandwidth and center frequency'.

np = dsp.NotchPeakFilter
np = 
  dsp.NotchPeakFilter with properties:

      Specification: 'Bandwidth and center frequency'
          Bandwidth: 2205
    CenterFrequency: 11025
         SampleRate: 44100

Определите добротность фильтра с помощью getQualityFactor функция. Добротность дана отношением центральной частоты к полосе пропускания.

getQualityFactor(np)
ans = 5

Визуализируйте ответ фильтра с помощью fvtool.

fvtool(np)

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 an object of type line.

Создайте dsp.NotchPeakFilter Система object™. Получите коэффициенты передаточной функции, соответствующей метке и пиковым фильтрам.

notchpeak = dsp.NotchPeakFilter;
[Bnotch,Anotch,Bpeak,Apeak] = tf(notchpeak)
Bnotch = 1×3

    0.8633   -0.0000    0.8633

Anotch = 1×3

    1.0000   -0.0000    0.7265

Bpeak = 1×3

    0.1367         0   -0.1367

Apeak = 1×3

    1.0000   -0.0000    0.7265

Bnotch и Anotch векторы из числителя и коэффициентов знаменателя для эквивалентной передаточной функции, соответствующей фильтру метки. Bpeak и Apeak векторы из числителя и коэффициентов знаменателя для эквивалентной передаточной функции, соответствующей пиковому фильтру.

Алгоритмы

Уравнение проекта для пикового фильтра:

H(z)=(1b)1z212bcosw0z1+(2b1)z2

Уравнение проекта для фильтра метки:

H(z)=b12cosw0z1+z212bcosw0z1+(2b1)z2

с

b=11+tan(Δw/2)

то, где ω0 = 2πf0/fs является центральной частотой в радианах/выборке (f0 является центральной частотой в Гц, и фс является частотой дискретизации в Гц). Δω = 2πΔf/fs является полосой пропускания на 3 дБ в радианах/выборке (Δf, полоса пропускания на 3 дБ в Гц). Обратите внимание на то, что два фильтра дополнительны:

Hnotch(z)+Hpeak(z)=1они могут быть записаны как:Hpeak(z)=12[1A(z)]Hnotch(z)=12[1+A(z)]где A(z)  a 2без обозначения даты закажите  фильтр allpass.A(z)=a2+a1z1+z21+a1z1+a2z2иa1=2bcosω0a2=2b1

Фильтр реализуется можно следующим образом:

где

G3dB=a2=2b1Gcf=a1a1a21a22=cosw0

Заметьте, что G cf зависит только от центральной частоты и G, 3 дБ зависят только от полосы пропускания на 3 дБ.

Ссылки

[1] Orfanidis, Софокл Дж. Введение в обработку сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.

Смотрите также

Функции

Объекты

Блоки

Введенный в R2014a