dsp.VariableBandwidthFIRFilter

Фильтр конечной импульсной характеристики переменной полосы пропускания

Описание

The 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

Задайте пропускную способность фильтра в Hertz как действительный, положительный скаляр, меньше 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., Y. Нейво, и С. К. Митра, «Простой подход к проекту линейных фаз конечной импульсной характеристики цифровых фильтров с переменными характеристиками». Обработка сигналов. Том 14, выпуск 4, июнь 1988 года, стр. 313-326.

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

.
Введенный в R2014a