dsp.LowpassFilter

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

Описание

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

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

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

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

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

Создание

Описание

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

пример

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

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

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

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

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

Синтаксис

Описание

пример

y = LPF(x) lowpass фильтрует входной сигнал, x. y является lowpass-фильтрованной версией x.

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

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

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

IIRLPF = clone(FIRLPF);
IIRLPF.FilterType = 'IIR';

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

fvtool(FIRLPF,'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.

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

fvtool(IIRLPF,'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.

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

fvtool(FIRLPF,'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.

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

fvtool(IIRLPF,'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.

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

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

Рассчитать стоимость реализации lowpass БИХ. БИХ более эффективен в реализации, чем конечная импульсная характеристика.

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

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

grpdelay(FIRLPF)

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.

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

grpdelay(IIRLPF)

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.

Создайте lowpass со свойствами по умолчанию.

LPF = dsp.LowpassFilter;

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

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

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

for k = 1:100
    Input = randn(1024,1);

    Output = step(LPF,Input);

    step(hSA,[Input,Output]);
end

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

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

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

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

fvtool(LPF)

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

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

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

for k = 1:100
    Input = randn(1024,1);

    Output = LPF(Input);

    hSA([Input,Output]);
end

Измерьте характеристики частотной характеристики lowpass. Создайте dsp.LowpassFilter Системный объект со свойствами по умолчанию. Измерьте характеристики частотной характеристики фильтра.

LPF = dsp.LowpassFilter
LPF = 
  dsp.LowpassFilter with properties:

               FilterType: 'FIR'
    DesignForMinimumOrder: true
        PassbandFrequency: 8000
        StopbandFrequency: 12000
           PassbandRipple: 0.1000
      StopbandAttenuation: 80
               SampleRate: 44100

  Show all properties

LPFMeas = measure(LPF)
LPFMeas = 
Sample Rate      : 44.1 kHz  
Passband Edge    : 8 kHz     
3-dB Point       : 9.1311 kHz
6-dB Point       : 9.5723 kHz
Stopband Edge    : 12 kHz    
Passband Ripple  : 0.08289 dB
Stopband Atten.  : 81.6141 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