Расположите каскадом allpass WDF фильтры, чтобы создать allpass WDF
hd = dfilt.cascadewdfallpass(c1,c2,...)
hd = dfilt.cascadewdfallpass(c1,c2,...)
создает каскад allpass цифровых фильтров волны, учитывая allpass коэффициенты в векторах c1
, c2
, и так далее.
Каждый вектор c
содержит коэффициенты для одного раздела каскадного фильтра. векторы C
должны иметь один, два, или четыре элемента (коэффициенты). Три вектора элемента не поддержаны.
Когда вектор c
имеет четыре элемента, первые и третьи элементы вектора должны быть 0. Каждый раздел каскада является allpass цифровым фильтром волны, от dfilt.wdfallpass
, с коэффициентами, данными соответствующим c вектором. Таким образом, первый раздел имеет коэффициенты от векторного c1
, вторые коэффициенты раздела прибывают из c2
, и на том, пока все векторы c
не используются.
Можно смешать длины векторов c
. Они не должны быть той же длиной. Например, можно расположить каскадом несколько разделов четвертого порядка (length
(c
) = 4) с первыми или разделами второго порядка.
Цифровые фильтры волны обычно используются, чтобы создать другие фильтры. Этот тулбокс использует их, чтобы реализовать полуленточные фильтры, которые демонстрирует первый пример в Примерах. Они чаще всего - стандартные блоки для фильтров.
Обычно вы не создаете эти WDF allpass каскадные фильтры непосредственно. Вместо этого они следуют из процесса проектирования для БИХ-фильтра. Пошлите к первому примеру в Примерах для больше об использовании dfilt.cascadewdfallpass
разработать БИХ-фильтр.
Для получения дополнительной информации о векторах c
и передаточной функции для фильтров allpass, обратитесь к dfilt.wdfallpass
.
В следующей таблице записи строки являются свойствами фильтра и кратким описанием каждого свойства.
PropertyName | Краткое описание |
---|---|
| Содержит коэффициенты для allpass цифрового объекта фильтра волны |
| Описывает поток сигналов для объекта фильтра, включая все активные элементы, которые выполняют операции во время фильтрации — усиления, задержки, суммы, продукты и ввод/вывод. |
| Задает, сбросить ли состояния фильтра и память перед каждой операцией фильтрации. Позволяет вам решить, сохраняет ли ваш фильтр состояния от предыдущих выполнений фильтрации. |
| Это свойство содержит состояния фильтра прежде, во время, и после работы фильтра. Состояния действуют как память фильтра между фильтрацией выполнений или сеансов. Они также обеспечивают связь между разделами фильтра мультираздела, такими как каскадный фильтр. Для получения дополнительной информации обратитесь к |
Чтобы продемонстрировать два подхода к использованию dfilt.cascadewdfallpass
, чтобы разработать фильтр, эти примеры показывают и прямую конструкцию и конструкцию как часть другого фильтра.
Первый показанный проект создает БИХ-полуленточный фильтр, который использует волну решетки цифровые фильтры. Каждое ответвление параллельной связи в решетке является каскадной волной allpass цифровой фильтр.
tw = 100; % Transition width of filter, 100 Hz. ast = 80; % Stopband attenuation of filter, 80 dB. fs = 2000; % Sampling frequency of signal to filter. % Store halfband specs. d = fdesign.halfband('tw,ast',tw,ast,fs);
Теперь выполните фактический процесс проектирования полуполосы. hd
содержит два фильтра dfilt.cascadewdfallpass
.
hd = design(d,'ellip','filterstructure','cascadewdfallpass'); % Summary info on dfilt.cascadewdfallpass. StageSummary = hd.stage(1).stage(2);
Этот пример демонстрирует прямую конструкцию фильтра dfilt.cascadewdfallpass
с allpass коэффициентами.
section1 = 0.8; section2 = [1.5,0.7]; section3 = [1.8,0.9]; hd = dfilt.cascadewdfallpass(section1,section2,section3);