dsp. VariableBandwidthFIRFilter

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

Описание

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

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

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

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

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

Создание

Синтаксис

vbw = dsp.VariableBandwidthFIRFilter
vbw = dsp.VariableBandwidthFIRFilter(Name,Value)

Описание

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

пример

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

Свойства

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

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

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

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

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

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

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

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

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

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

Задайте параметр окна 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

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

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

y = vbw(x)

Описание

пример

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