exponenta event banner

dsp. VariableBandwidthFIRFilter

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

Описание

dsp.VariableBandwidthFIRFilter объект фильтрует каждый канал входного сигнала с использованием реализаций фильтра FIR. Это происходит при наличии возможности настройки полосы пропускания.

Для фильтрации каждого канала входа:

  1. Создать dsp.VariableBandwidthFIRFilter и задайте его свойства.

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

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

Создание

Описание

vbw = dsp.VariableBandwidthFIRFilter возвращает системное object™, vbw, который независимо фильтрует каждый канал ввода по последовательным вызовам объекта. Частота отсечки фильтра может быть настроена во время операции фильтрации. Фильтр FIR с переменной полосой пропускания разработан с использованием метода окна.

пример

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

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Частота входных выборок, заданная как положительный скаляр в Гц. Это свойство не настраивается.

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

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

Укажите порядок фильтра FIR как положительный целочисленный скаляр. Это свойство не настраивается.

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

Укажите функцию окна, используемую для проектирования фильтра FIR, как одну из '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

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

Синтаксис

Описание

пример

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

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

В этом примере показано, как настроить центральную частоту и полосу пропускания фильтра FIR.

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

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

.
Представлен в R2014a