Передаточная функция для связанной решетки allpass
[k1,k2] = tf2cl(b,a)
[k1,k2] = tf2cl(b,a)
[k1,k2,beta] = tf2cl(b,a)
[k1,k2] = tf2cl(b,a) где b - действительный симметричный вектор числительных коэффициентов и a - действительный вектор коэффициентов знаменателя, соответствующий стабильному цифровому фильтру, будет выполнять связанное разложение allpass
(z) + H2 (z)]
стабильного БИХ-фильтра H (z) и преобразования функций передачи allpass H1 (z) и H2 (z) в связанную решетчатую структуру allpass с коэффициентами, заданными в векторахk1 и k2.
[k1,k2] = tf2cl(b,a) где b - действительный антисимметричный вектор числительных коэффициентов и a - действительный вектор коэффициентов знаменателя, соответствующий стабильному цифровому фильтру, выполняет связанное разложение allpass
(z) − H2 (z)]
стабильного БИХ-фильтра H (z) и преобразует функции передачи allpass H1 (z) и H2 (z) в связанную решетчатую структуру allpass с коэффициентами, заданными в векторахk1 и k2.
В некоторых случаях разложение невозможно с вещественными H1 (z) и H2 (z). В этих случаях может быть возможно обобщенное связанное разложение allpass с использованием синтаксиса, описанного ниже.
[k1,k2,beta] = tf2cl(b,a) выполняет обобщенное разложение allpass стабильного БИХ-фильтра H (z) и преобразует комплексные функции передачи allpass H1 (z) и H2 (z) в соответствующие решётчатые фильтры allpass
) +β⋅H2 (z)]
где beta - комплексный скаляр величины, равный 1.
Примечание
Связанное разложение allpass не всегда возможно. Тем не менее, Butterworth, Chebyshev и Elliptic IIR фильтры, среди прочих, могут быть факторизованы таким образом. Для получения дополнительной информации см. Руководство пользователя по обработке сигналов Toolbox™.
[b,a]=cheby1(9,.5,.4); [k1,k2]=tf2cl(b,a); % Get the reflection coeffs. for the lattices. [num1,den1]=latc2tf(k1,'allpass'); % Convert each allpass lattice [num2,den2]=latc2tf(k2,'allpass'); % back to transfer function. num = 0.5*conv(num1,den2)+0.5*conv(num2,den1); den = conv(den1,den2); % Reconstruct numerator and denonimator. MaxDiff=max([max(b-num),max(a-den)]); % Compare original and reconstructed % numerator and denominators.