dsp.VariableBandwidthFIRFilter

Переменный КИХ-фильтр полосы пропускания

Описание

dsp.VariableBandwidthFIRFilter возразите фильтрует каждый канал входа с помощью КИХ-реализаций фильтра. Это делает так при наличии возможности настройки полосы пропускания.

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

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

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

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

Создание

Описание

vbw = dsp.VariableBandwidthFIRFilter возвращает Систему object™, vbw, который независимо фильтрует каждый канал входа по последовательным вызовам объекта. Частота среза фильтра может быть настроена во время операции фильтрации. Переменный КИХ-фильтр полосы пропускания создан с использованием метод окна.

пример

vbw = dsp.VariableBandwidthFIRFilter(Name,Value) возвращается переменный КИХ полосы пропускания фильтруют Системный объект, vbw, с каждым набором свойств к заданному значению. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1,Value1,...,NameN,ValueN).

Свойства

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

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

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

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

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

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

Задайте тип фильтра как один из 'Lowpass' | 'Highpass' | 'Bandpass' | 'Bandstop'. Это свойство является ненастраиваемым.

Задайте порядок КИХ-фильтра как положительный целочисленный скаляр. Это свойство является ненастраиваемым.

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

Укажите, что функция окна раньше проектировала КИХ-фильтр как один из 'Hann' | 'Hamming' | 'Chebyshev' | 'Kaiser'. Это свойство является ненастраиваемым.

Задайте параметр окна Кайзера как действительный скаляр. Это свойство является ненастраиваемым.

Зависимости

Это свойство применяется, когда вы устанавливаете 'Window' свойство к 'Kaiser'.

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

Задайте частоту среза фильтра в Гц как действительное, положительная скалярная величина, меньшая, чем SampleRate/2.

Настраиваемый: да

Зависимости

Это свойство применяется, если вы устанавливаете FilterType свойство к 'Lowpass' или 'Highpass'.

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

Задайте частоту центра фильтра в Гц как действительное, положительная скалярная величина, меньшая, чем SampleRate/2.

Настраиваемый: да

Зависимости

Это свойство применяется, когда вы устанавливаете FilterType свойство к 'Bandpass' или 'Bandstop'.

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

Задайте полосу пропускания фильтра в Герц как действительное, положительная скалярная величина, меньшая, чем SampleRate/2.

Настраиваемый: да

Зависимости

Это свойство применяется, если вы устанавливаете FilterType свойство к 'Bandpass' или 'Bandstop'.

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

Задайте затухание Окна Чебышева как действительное, положительную скалярную величину в децибелах (дБ). Это свойство является ненастраиваемым.

Зависимости

Это свойство применяется, если вы устанавливаете Window свойство к 'Chebyshev'.

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

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

Синтаксис

Описание

пример

y = vbw(x) фильтрует входной сигнал x использование переменного КИХ полосы пропускания фильтрует, чтобы произвести выход y. Переменный КИХ-объект фильтра полосы пропускания работает с каждым каналом, что означает, что объект фильтрует каждый столбец входного сигнала независимо по последовательным вызовам алгоритма.

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

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

Ввод данных в виде вектора или матрицы. Этот объект также принимает входные параметры переменного размера. Если объект заблокирован, можно изменить размер каждого входного канала, но вы не можете изменить количество каналов.

Типы данных: double | single
Поддержка комплексного числа: Да

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

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

Фильтрованный выходной параметр, возвращенный как вектор или матрица. Размер, тип данных и сложность соответствий выходного сигнала тот из входного сигнала.

Типы данных: double | single
Поддержка комплексного числа: Да

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

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

release(obj)

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

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

Примеры

свернуть все

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

Этот пример показывает вам, как настроить центральную частоту и полосу пропускания КИХ-фильтра.

Fs = 44100; % Input sample rate
% Define a bandpass variable bandwidth FIR filter:
vbw = dsp.VariableBandwidthFIRFilter('FilterType','Bandpass',...
    'FilterOrder',100,...
    'SampleRate',Fs,...
    'CenterFrequency',1e4,...
    'Bandwidth',4e3);
tfe = dsp.TransferFunctionEstimator('FrequencyRange','onesided');
aplot = dsp.ArrayPlot('PlotType','Line',...
    'XOffset',0,...
    'YLimits',[-120 5], ...
    'SampleIncrement', 44100/1024,...
    'YLabel','Frequency Response (dB)',...
    'XLabel','Frequency (Hz)',...
    'Title','System Transfer Function');
FrameLength = 1024;
sine = dsp.SineWave('SamplesPerFrame',FrameLength);
for i=1:500
    % Generate input
    x = sine() + randn(FrameLength,1);
    % Pass input through the filter
    y = vbw(x);
    % Transfer function estimation
    h = tfe(x,y);
    % Plot transfer function
    aplot(20*log10(abs(h)))
    % Tune bandwidth and center frequency of the FIR filter
    if (i==250)
        vbw.CenterFrequency = 5000;
        vbw.Bandwidth = 2000;
    end
end

Алгоритмы

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

Ссылки

[1] Jarske, P., И. Неуво и С. К. Митра, "Простой подход к проекту линейных цифровых фильтров фазы FIR с переменными характеристиками". Обработка сигналов. Издание 14, Выпуск 4, июнь 1988, стр 313-326.

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

Введенный в R2014a