dsp.HighpassFilter

КИХ или БИХ highpass фильтр

Описание

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

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

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

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Описание

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

пример

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

Свойства

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

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

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

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

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

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

Отфильтруйте тип в виде одной из следующих опций:

  • 'FIR' — Объект проектирует КИХ highpass фильтр.

  • 'IIR' — Объект проектирует БИХ highpass (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

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

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

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

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

Размер слова выхода - то же самое как размер слова входа. Дробная продолжительность выхода вычисляется таким образом, что целый динамический диапазон выхода может быть представлен без переполнения. Для получения дополнительной информации о том, как дробная продолжительность выхода вычисляется, см. Правила Точности Фиксированной точки для Предотвращения Переполнения в КИХ-Фильтрах.

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

Синтаксис

Описание

пример

y = HPF(x) highpass фильтрует входной сигнал, xY highpass-отфильтрованная версия 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Сбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Создайте КИХ минимального порядка highpass фильтр для данных, произведенных на уровне 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);

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

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

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

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

Постройте импульсную характеристику БИХ highpass фильтр.

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

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

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

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

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

Вычислите стоимость реализации КИХ 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

Вычислите групповую задержку КИХ highpass фильтр.

grpdelay(FIRHPF)

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

grpdelay(IIRHPF)

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

Настройте БИХ highpass фильтр. Частота дискретизации белого Гауссова шума составляет 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

Измерьте характеристики частотной характеристики фильтра highpass. Создайте 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] Shpak, D.J., и А. Антонайоу. "Обобщенный метод Remez для проекта КИХ-цифровых фильтров". IEEE® Transactions на Схемах и Системах. Издание 37, Выпуск 2, февраль 1990, стр 161–174.

[2] Selesnick, I.W., и К. С. Беррус. "Алгоритмы Exchange, которые дополняют алгоритм Парков-McClellan для проекта КИХ-фильтра линейной фазы". Транзакции IEEE на Схемах и Системах. Издание 44, Выпуск 2, февраль 1997, стр 137–143.

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

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

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