exponenta event banner

allpass2wdf

Преобразование коэффициентов цифрового фильтра Allpass в Wave

Описание

w = allpass2wdf(a) принимает вектор вещественных коэффициентов полиномиального фильтра allpass aи возвращает преобразованный коэффициент w. w может использоваться с объектами фильтра allpass, такими как dsp.AllpassFilter, и dsp.CoupledAllpassFilter, со значением «Структура» 'Wave Digital Filter'.

W = allpass2wdf(A) принимает массив ячеек векторов полиномиальных коэффициентов allpass A. Каждая ячейка A содержит коэффициенты секции каскадного фильтра allpass. W также является массивом ячеек, и каждая ячейка W содержит преобразованную версию коэффициентов в соответствующей ячейке A. W может использоваться с объектами фильтра allpass, такими как dsp.AllpassFilter и dsp.CoupledAllpassFilter, со структурой, равной 'Wave Digital Filter'.

Примеры

свернуть все

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

Создайте фильтр allpass второго порядка с коэффициентами a = [0 0,5]. Преобразование этих коэффициентов в форму волнового цифрового фильтра с помощью allpass2wdf. Назначьте преобразованные коэффициенты фильтру allpass, используя структуру волнового цифрового фильтра. Передайте случайный вход в оба этих фильтра и сравните выходные сигналы.

a = [0 0.5]; 
allpass = dsp.AllpassFilter('AllpassCoefficients', a);
w = allpass2wdf(a);
allpasswdf = dsp.AllpassFilter('Structure', 'Wave Digital Filter',...
    'WDFCoefficients', w);
in = randn(512, 1);
outputAllpass = allpass(in);
outputAllpasswdf = allpasswdf(in);
plot(outputAllpass-outputAllpasswdf)

Figure contains an axes. The axes contains an object of type line.

Разница между этими двумя выходами очень мала.

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

свернуть все

Числовой вектор коэффициентов фильтра allpass, определяемый как вещественные числа. a может иметь длину, равную только 1,2 и 4. Когда длина равна 4, первый и третий компоненты должны быть равны нулю. a может быть строкой или вектором столбца.

Пример: 0.7

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

Каскад коэффициентов фильтра allpass, заданный как вектор ячейки. Каждая ячейка A должен содержать действительный вектор длины 1,2 или 4. Когда длина равна 4, первый и третий компоненты должны быть равны нулю. A может быть вектором строк или столбцов ячеек.

Пример: {0.7, [0.1, 0.2]}

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

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

свернуть все

Числовой вектор преобразованных коэффициентов, определяемый как вещественное число, для использования с объектами фильтра allpass с одним сечением, имеющими Structure установить в значение 'Wave Digital Filter'. w всегда возвращается в виде числового вектора строки.

Пример: 0.7

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

Каскад преобразованных коэффициентов фильтра allpass, определенных как массив ячеек, для использования с многосекционными объектами фильтра allpass, имеющими Structure установить в значение 'Wave Digital Filter'. W всегда возвращается в виде столбца ячеек.

Пример: {0.7;[0.2,-0.0833]}

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

Алгоритмы

В более общем случае входные коэффициенты A определите каскадный или многосекционный фильтр allpass. allpass2wdf применяется отдельно к каждому разделу одного и того же преобразования, используемого в случае одного раздела. В случае с одним сечением вектор числовых коэффициентов а содержит стандартное полиномиальное представление фильтра allpass порядка 1, 2 или 4. Например, в случае первого заказа

a = [a1]

представляет первую функцию переноса заказа:

H1 (z) = z 1 + a11 + a1z − 1

и в случае второго порядка,

a = [a1, a2]

представляет вторую функцию переноса заказа:

H2 (z) = z 2 + a1z 1 + a21 + a1z − 1 + a2z − 2

.

Передаточные функции H1 и H2 allpass могут также иметь следующие альтернативные представления, используя разделенные коэффициенты в векторе w1 или w2 соответственно.

H ~ 1 (z) = z 1 + w11 + w1z − 1

H ~ 2 (z) = z 2 + w2 (1 + w1) z 1 + w11 + w2 (1 + w1) z − 1 + w1z − 2

Для коэффициентов allpass w часто используется для получения адаптеров-умножителей для структур Wave Digital Filter, и это требуется для ряда фильтров на основе allpass в системе DSP Toolbox™ когда Structure имеет значение 'Wave Digital Filter' (например. dsp.AllpassFilter, и dsp.CoupledAllpassFilter).

Для данного вектора коэффициентов сечения a, allpass2wdf вычисляет соответствующий вектор w так, что

когда i = 1, 2 или 4H ~ i (z) = Hi (z)

Это приводит к использованию следующих формул:

для заказа 1: w1 =  a1for  order 2: w1 = a2w2 =  a11 +  a2for order 4: w1 = a4w3 = a21 + a4w2 = w4 = 0

Ссылки

[1] М. Лутовац, Д. Тошич, Б. Эванс, дизайн фильтра для обработки сигналов с использованием MATLAB и Mathematica. Прентис Холл, 2001.

См. также

Функции

Объекты

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