dsp.NotchPeakFilter

Настраиваемый фильтр с защелкиванием и БИХ второго порядка

Описание

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

Для фильтрации каждого канала входного входа:

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

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

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

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

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

пример

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

Свойства

расширить все

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

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

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

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

Задайте 3 фильтра dB-полоса как конечный положительный числовой скаляр в Гц. Значение должно быть скаляром между 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 фильтра Шумовая полоса dB как конечный числовой скаляр в области значений [-1 1]. Значение -1 соответствует максимальному 3 Пропускная способность dB (SampleRate/ 4), и 1 соответствует минимальному 3 Пропускная способность dB (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 как узкополосный фильтр с центральной частотой 5000 Гц и пропускной способностью 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, а центральная частота Fc равна 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)

where0 = 2, f0/fs - центральная частота в радианах/выборке (f0 - центральная частота в Гц, а fs - частота дискретизации в Гц). Вычислим = 2πΔf/fs - ширина полосы 3 дБ в радианах/дискретизации (И-f - ширина полосы 3 дБ в Гц). Обратите внимание, что эти два фильтра являются комплементарными:

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

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

где

G3dB=a2=2b1Gcf=a1a1a21a22=cosw0

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

Ссылки

[1] Orfanidis, Sophocles J. Введение в обработку сигналов. Upper Saddle River, NJ: Prentice Hall, 1996.

Введенный в R2014a