exponenta event banner

dsp. NotchPeakFilter

Настраиваемый фильтр IIR второго порядка

Описание

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

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

  1. Создать dsp.NotchPeakFilter и задайте его свойства.

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

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

Создание

Описание

npFilter = dsp.NotchPeakFilter возвращает фильтр IIR второго порядка и пикового уровня, который независимо фильтрует каждый канал входного сигнала во времени, используя заданную центральную частоту и полосу пропускания 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 полоса пропускания дБ (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™ System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:

release(obj)

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

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

Примеры

свернуть все

В этом примере показано, как использовать 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) = (1 b) 1 z 21 2bcosw0z − 1 + (2b − 1) z − 2

Расчетное уравнение для фильтра надрезов:

H (z) = b1 − 2cosw0z 1 + z 21 2bcosw0z − 1 + (2b − 1) z − 2

с

b = 11 + tan (Δw/2)

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

Hnotch (z) + Hpeak (z) =  1they можно записать как: Hpeak (z) = 12 [1 A (z)] Hnotch (z) = 12 [1 + A ( z)] где A (z ) - фильтр allpass 2-го порядка. A (z) = a2 + a1z − 1 + z 21 + a1z − 1 + a2z − 2anda1 = − 2bcosü 0a2 = 2b − 1

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

где

G3dB=a2=2b−1Gcf=a1−a1a21−a22 =−cosw0

Обратите внимание, что Gcf зависит только от центральной частоты, а G3dB зависит только от полосы пропускания 3 дБ.

Ссылки

[1] Орфанидис, Софокл Дж. Введение в обработку сигналов. Река Верхнее Седло, Нью-Джерси: Прентис-Холл, 1996.

Представлен в R2014a