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 and other objects of type uitoolbar, uimenu. The axes 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 and other objects of type uitoolbar, uimenu. The axes 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 and other objects of type uitoolbar, uimenu. The axes 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 and other objects of type uitoolbar, uimenu. The axes 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