exponenta event banner

dsp. HighpassFilter

Фильтр верхних частот FIR или IIR

Описание

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

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

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

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

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

Создание

Описание

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

пример

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

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

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

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

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

  • 'FIR' - Объект проектирует фильтр верхних частот FIR.

  • 'IIR' - Объект проектирует фильтр IIR high pass (biquad).

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

Порядок фильтра FIR или IIR, указанный как разделенная запятыми пара, состоящая из '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-битовыми коэффициентами и длиной дроби, определяемой на основе значений коэффициентов, для обеспечения наилучшей возможной точности.

Это свойство невозможно настроить.

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

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

Синтаксис

Описание

пример

y = HPF(x) high pass фильтрует входной сигнал, 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
Поддержка комплексного номера: Да

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

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

release(obj)

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

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

Примеры

свернуть все

Создайте фильтр верхних частот FIR минимального порядка для данных, отобранных на частоте 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);

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

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

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

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.

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

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.

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

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.

Рассчитайте стоимость внедрения фильтра верхних частот FIR.

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

Рассчитайте стоимость внедрения фильтра верхних частот IIR. Фильтр IIR более эффективен для реализации, чем его аналог FIR.

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

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

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.

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

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).

Настройте фильтр верхних частот IIR. Частота дискретизации белого гауссова шума составляет 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);

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

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] Шпак, Ди Джей и А. Антониу. «Обобщённый метод Ремеза для проектирования цифровых фильтров FIR». Транзакции IEEE ® по цепям и системам. Том 37, выпуск 2, февраль 1990 года, стр. 161-174.

[2] Селесник, И. В. и К. С. Буррус. «Алгоритмы обмена, которые дополняют алгоритм Паркса-Макклеллана для проектирования КИХ-фильтра линейной фазы». Транзакции IEEE по цепям и системам. Том 44, выпуск 2, февраль 1997 года, стр. 137-143.

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

.

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

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