dsp.HighpassFilter

Конечная импульсная характеристика или БИХ высокочастотный фильтр

Описание

The dsp.HighpassFilter Системная object™ независимо фильтрует каждый канал входа с течением времени, используя данные проекты спецификации. Можно задать FilterType свойство dsp.HighpassFilter на 'FIR' или 'IIR' для реализации объекта в виде конечных импульсных характеристик или БИХ высокочастотного фильтра.

Чтобы фильтровать каждый канал вашего входа:

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

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

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

Создание

Описание

HPF = dsp.HighpassFilter возвращает фильтр highpass конечной импульсной характеристики минимального порядка, HPF, с настройками фильтра по умолчанию. Вызов объекта с настройками свойств по умолчанию фильтрует входные данные с частотой в полосе стоп- 8 кГц, ширина полосы пропускания 12 кГц, затухание в полосе задерживания 80 дБ и неравномерность в полосе пропускания 0.1 дБ.

пример

HPF = dsp.HighpassFilter(Name,Value) возвращает фильтр highpass с дополнительными свойствами, заданными одним или несколькими Name,Value аргументы в виде пар. Name - имя свойства и Value - соответствующее значение. Name должен находиться внутри одинарных кавычек (''). Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

Свойства

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

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

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

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

Входная частота выборки в Гц, заданная как разделенная разделенными запятой парами, состоящая из 'SampleRate' и положительный действительный скаляр.

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

Тип фильтра, заданный как один из следующих опций:

  • 'FIR' - Объект проектирует КИХ фильтр верхнего уровня.

  • 'IIR' - Объект проектирует высокоскоростной (biquad) фильтр БИХ.

Проект фильтра минимального порядка, заданная как разделенная разделенными запятой парами, состоящая из 'DesignForMinimumOrder' и логическое значение. Если это свойство true, затем dsp.HighpassFilter проектирует фильтры с минимальным порядком, который удовлетворяет спецификациям по частоте полосы пропускания, частоте полосы остановки, неравномерности в полосе пропускания и затуханию в полосе задерживания. Установите эти спецификации с помощью соответствующих свойств. Если это свойство false, затем объект проектирует фильтры с тем порядком, который вы задаете в FilterOrder свойство. Это создание фильтра соответствует спецификациям частоты, неравномерности в полосе пропускания и затухания в полосе задерживания полосы пропускания, которые вы задаете используя соответствующие свойства.

Порядок фильтра конечной импульсной характеристики или БИХ, заданный как разделенная разделенными запятой парами, состоящая из 'FilterOrder' и положительный целочисленный скаляр.

Зависимости

Установка порядка фильтра действительна только тогда, когда значение 'DesignForMinimumOrder' является false.

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

Фильтруйте частоту ребра стоповой полосы в Гц, заданную как разделенную разделенными запятой парами, состоящую из 'StopbandFrequency' и настоящая положительная скалярная величина. Значение частоты ребра стоповой полосы в Гц должно быть меньше частоты полосы пропускания.

Зависимости

Вы можете задать частоту ребра полосы упора только при 'DesignForMinimumOrder' является true.

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

Фильтруйте частоту ребра полосы пропускания в Гц, заданную как разделенную разделенными запятой парами, состоящую из 'PassbandFrequency' и настоящая положительная скалярная величина. Значение ребра полосы пропускания в Гц должно быть менее половины SampleRate и больше StopbandFrequency.

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

Минимальное ослабление в диапазоне остановок в дБ, заданное как разделенная разделенными запятой парами, состоящая из 'StopbandAttenuation' и настоящая положительная скалярная величина. Минимальное ослабление в полосе остановок по умолчанию равняется 80 дБ.

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

Максимальная пульсация фильтра в полосе пропускания, в дБ, задается как разделенная разделенными запятой парами, состоящая из 'PassbandRipple' и настоящая положительная скалярная величина. Максимальная пульсация фильтра по умолчанию равна 0.1 дБ.

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

Свойства с фиксированной точкой

Метод округления для выходных операций с фиксированной точкой, заданный как вектор символов. Для получения дополнительной информации о режимах округления см. Раздел «Точность и область значений».

Длина слова и дроби коэффициентов, заданная как numerictype объект. Значение по умолчанию, numerictype(1,16) соответствует объекту числового типа со знаком с 16-битными коэффициентами и длиной дроби, определенной на основе значений коэффициентов, чтобы получить максимально возможную точность.

Это свойство не настраивается.

Размер слова на выходе совпадает с размером слова на входе. Длина дроби выхода вычисляется таким образом, чтобы вся динамическая область значений выхода могла быть представлен без переполнения. Для получения дополнительной информации о том, как вычисляется длина дроби выхода, смотрите Правила точности по фиксированной точке для предотвращения переполнения в конечную импульсную характеристику фильтрах.

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

Синтаксис

Описание

пример

y = HPF(x) highpass фильтрует входной сигнал, x. y является высокочастотной отфильтрованной версией x.

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

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

Зашумленные данные, заданный как вектор или матрица. Если входной сигнал является матрицей, каждый столбец матрицы рассматривается как независимый канал. Количество строк в входном сигнале обозначает длину канала. Этот объект принимает входы переменного размера. После того, как объект заблокирован, можно изменить размер каждого входного канала, но вы не можете изменить количество каналов.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

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

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

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

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

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

release(obj)

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

freqzЧастотная характеристика фильтра в дискретном времени Системного объекта
fvtoolВизуализация частотной характеристики фильтров DSP
impzИмпульсная характеристика фильтра в дискретном времени Системного объекта
infoИнформация о фильтре Системный объект
coeffsВозвращает фильтрация коэффициентов системного объекта в структуре
costОценка стоимости реализации фильтра Системный объект
grpdelayГрупповая задержка фильтра в дискретном времени Системного объекта
generatehdlСгенерируйте HDL-код для квантованного DSP-фильтра (требует Filter Design HDL Coder)
measureИзмерьте характеристики частотной характеристики фильтра Системного объекта
stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

Создайте минимальный порядок конечной импульсной характеристики высокочастотного фильтра для данных, отобранных с частотой дискретизации 44,1 кГц. Задает частоту полосы пропускания 12 кГц, частоту полосы остановки 8 кГц, неравномерность в полосе пропускания 0,1 дБ и затухание в полосе задерживания 80 дБ.

Fs = 44.1e3; 
filtertype = 'FIR';
Fpass = 12e3;
Fstop = 8e3; 
Rp = 0.1;
Astop = 80;
FIRHPF = dsp.HighpassFilter('SampleRate',Fs,...
                             'FilterType',filtertype,...
                             'PassbandFrequency',Fpass,...
                             'StopbandFrequency',Fstop,...
                             'PassbandRipple',Rp,...
                             'StopbandAttenuation',Astop);

Спроектируйте БИХ фильтр высокого уровня минимального порядка с такими же свойствами, как и конечной импульсной характеристикой фильтр высокого уровня. Использование clone чтобы создать системный объект с теми же свойствами, что и фильтр конечной импульсной характеристики Highpass. Измените FilterType свойство клонированного фильтра, чтобы IIR.

IIRHPF = clone(FIRHPF);
IIRHPF.FilterType = 'IIR';

Постройте график импульсной характеристики конечной импульсной характеристики высокочастотного фильтра. Коэффициент порядка нулей задерживается на 19 выборки, что равно групповой задержке фильтра. Фильтр конечной импульсной характеристики highpass является причинно- конечной импульсной характеристикой фильтром

fvtool(FIRHPF,'Analysis','impulse')

Figure Filter Visualization Tool - Impulse Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Impulse Response contains an object of type stem.

Постройте график импульсной характеристики БИХ высокочастотного фильтра.

fvtool(IIRHPF,'Analysis','impulse')

Figure Filter Visualization Tool - Impulse Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Impulse Response contains an object of type stem.

Постройте график величины и фазового отклика конечной импульсной характеристики highpass фильтра.

fvtool(FIRHPF,'Analysis','freq')

Figure Filter Visualization Tool - Magnitude Response (dB) and Phase Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) and Phase Response contains an object of type line.

Постройте график величины и фазового отклика БИХ highpass фильтра.

fvtool(IIRHPF,'Analysis','freq')

Figure Filter Visualization Tool - Magnitude Response (dB) and Phase Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) and Phase Response contains an object of type line.

Вычислите затраты на реализацию конечной импульсной характеристики highpass фильтра.

cost(FIRHPF)
ans = struct with fields:
                  NumCoefficients: 39
                        NumStates: 38
    MultiplicationsPerInputSample: 39
          AdditionsPerInputSample: 38

Вычислите затраты на реализацию БИХ highpass фильтра. Фильтр БИХ более эффективен в реализации, чем его конечной импульсной характеристике аналог.

cost(IIRHPF)
ans = struct with fields:
                  NumCoefficients: 18
                        NumStates: 14
    MultiplicationsPerInputSample: 18
          AdditionsPerInputSample: 14

Вычислите групповую задержку конечной импульсной характеристики высокочастотного фильтра.

grpdelay(FIRHPF)

Figure Filter Visualization Tool - Group delay contains an axes and other objects of type uitoolbar, uimenu. The axes with title Group delay contains an object of type line.

Вычислите групповую задержку высокочастотного фильтра БИХ. Фильтр конечной импульсной характеристики имеет постоянную групповую задержку (линейная фаза), в то время как его аналог БИХ не имеет.

grpdelay(IIRHPF)

Figure Filter Visualization Tool - Group delay contains an axes and other objects of type uitoolbar, uimenu. The axes with title Group delay contains an object of type line.

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

Настройте БИХ фильтр верхнего уровня. Частота дискретизации белого Гауссова шума составляет 44 100 Гц. Ширина полосы пропускания фильтра составляет 12 кГц, ширина полосы остановки - 8 кГц, неравномерность в полосе пропускания - 0,1 дБ, затухание в полосе задерживания - 80 дБ.

Fs = 44.1e3;
filtertype = 'IIR';
Fpass = 12e3;
Fstop = 8e3;
Rp = 0.1;
Astop = 80;
hpf = dsp.HighpassFilter('SampleRate',Fs,...
                             'FilterType',filtertype,...
                             'PassbandFrequency',Fpass,...
                             'StopbandFrequency',Fstop,...
                             'PassbandRipple',Rp,...
                             'StopbandAttenuation',Astop);

Просмотрите величину ответ highpass-фильтра.

fvtool(hpf)

Создайте объект анализатора спектра.

sa = dsp.SpectrumAnalyzer('SampleRate',44.1e3,...
    'PlotAsTwoSidedSpectrum',false,'ShowLegend',true,'YLimits',...
           [-150 30],...
           'Title',...
           'Input Signal and Output Signal of IIR Highpass Filter');
sa.ChannelNames = {'Input','Output'};

Фильтрация белого Гауссова шумного входного сигнала. Просмотрите вход и выходные сигналы с помощью анализатора спектра.

for k = 1:100
    Input = randn(1024,1);
    Output = hpf(Input);
    sa([Input,Output]);
end

Измерьте характеристики частотной характеристики высокочастотного фильтра. Создайте 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      
 

Алгоритмы

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

Ссылки

[1] Шпак, Д. Дж., и А. Антониу. «Обобщенный метод Ремеза для проекта конечной импульсной характеристики цифровых фильтров». IEEE® Транзакции по схемам и системам. Том 37, Выпуск 2, Февраль 1990, стр. 161-174.

[2] Selesnick, I.W., and C. S. Burrus. «Алгоритмы обмена, которые дополняют алгоритм Паркса-Макклеллана для КИХ-фильтра линейной фазы проекта». Транзакции IEEE по схемам и системам. Vol. 44, Issue 2, Feb. 1997, pp. 137-143.

Расширенные возможности

.

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

Введенный в R2015a