Расположите каскадом 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);