dfilt.cascadeallpass

Каскад allpass фильтров дискретного времени

Синтаксис

hd = dfilt.cascadeallpass(c1,c2,...)

Описание

hd = dfilt.cascadeallpass(c1,c2,...) создает каскад фильтров allpass, каждый из которых использует минимальное количество множителей, учитывая коэффициенты фильтра, обеспеченные в c1, c2, и так далее.

Каждый векторный c представляет один раздел в каскадном фильтре. векторы c должны содержать один, два, три, или четыре элемента как коэффициенты фильтра для каждого раздела. В результате алгоритма проекта каждый раздел является структурой dfilt.allpass, коэффициенты которой даны в соответствующем векторе c, таком как вектор c1 содержит коэффициенты для первой стадии.

Состояния для каждого раздела совместно используются разделами.

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

Для получения дополнительной информации о векторах ci и о передаточной функции каждого раздела, обратитесь к dfilt.allpass.

Обычно вы не создаете эти каскадные фильтры allpass непосредственно. Вместо этого они следуют из процесса проектирования для БИХ-фильтра. Пошлите к первому примеру в Примерах для больше об использовании dfilt.cascadeallpass разработать БИХ-фильтр.

Свойства

В следующей таблице записи строки являются свойствами фильтра и кратким описанием каждого свойства.

PropertyName

Краткое описание

AllpassCoefficients

Содержит коэффициенты для allpass объекта фильтра

FilterStructure

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

PersistentMemory

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

States

Это свойство содержит состояния фильтра прежде, во время, и после работы фильтра. Состояния действуют как память фильтра между фильтрацией выполнений или сеансов. Они также обеспечивают связь между разделами фильтра мультираздела, такими как каскадный фильтр. Для получения дополнительной информации обратитесь к filtstates в документации Signal Processing Toolbox™ или в Системе справочной информации.

Примеры

Два примера показывают, как dfilt.cascadeallpass работает в совсем других приложениях — разработка фильтра полуполосы IIR и построение allpass каскада объектов dfilt.

Во-первых, разработайте БИХ-использование полуленточного фильтра расположенные каскадом фильтры allpass. Каждое ответвление параллельной каскадной конструкции является cascadeallpass объектом фильтра.

tw = 100;  % Transition width of filter to be designed, 100 Hz.
ast = 80;  % Stopband attenuation of filter to be designed, 80dB.
fs = 2000; % Sampling frequency of signal to be filtered.
% Store halfband design specs in the specifications object d.
d = fdesign.halfband('tw,ast',tw,ast,fs);

Теперь выполните фактический проект фильтра. hd содержит два объекта dfilt.cascadeallpass.

hd = design(d,'ellip','filterstructure','cascadeallpass');
% Get summary information about one dfilt.cascadeallpass stage.
StageInfo = hd.Stage(1).Stage(1);

Этот второй пример создает объект фильтра dfilt.cascadeallpass непосредственно данные allpass коэффициенты для входных векторов.

section1 = 0.8;
section2 = [1.2,0.7];
section3 = [1.3,0.9];
hd = dfilt.cascadeallpass(section1,section2,section3);
% Get information about the filter
% return informatio in character array
S = info(hd);

Введенный в R2011a