Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

cl2tf

Convert coupled allpass lattice to transfer function form

Syntax

[b,a] = cl2tf(k1,k2)
[b,a] = cl2tf(k1,k2,beta)
[b,a,bp] = cl2tf(k1,k2)
[b,a,bp] = cl2tf(k1,k2,beta)

Description

[b,a] = cl2tf(k1,k2) returns the numerator and denominator vectors of coefficients b and a corresponding to the transfer function

H(z)=B(z)/A(z)=12[H1(z)+H2(z)]

where H1(z) and H2(z) are the transfer functions of the allpass filters determined by k1 and k2, and k1 and k2 are real vectors of reflection coefficients corresponding to allpass lattice structures.

[b,a] = cl2tf(k1,k2,beta) where k1, k2 and beta are complex, returns the numerator and denominator vectors of coefficients b and a corresponding to the transfer function

H(z)=B(z)/A(z)=12[(β¯)H1(z)+βH2(z)]

[b,a,bp] = cl2tf(k1,k2) where k1 and k2 are real, returns the vector bp of real coefficients corresponding to the numerator of the power complementary filter G(z)

G(z)=Bp(z)/A(z)=12[H1(z)H2(z)]

[b,a,bp] = cl2tf(k1,k2,beta) where k1, k2 and beta are complex, returns the vector of coefficients bp of possibly complex coefficients corresponding to the numerator of the power complementary filter G(z)

G(z)=Bp(z)/A(z)=12j[(β¯)H1(z)+βH2(z)]

Examples

collapse all

tf2cl returns the reflection coeffs

[b,a]=cheby1(10,.5,.4);
[k1,k2,beta]=tf2cl(b,a);

Construct the original and the power complementary filter.

[num,den,numpc]=cl2tf(k1,k2,beta);
[h,w]=freqz(num,den); hpc = freqz(numpc,den);

Show the frequency response

subplot(211);
plot(w./pi,20*log10(abs(h)),'k'); hold on; grid on;
plot(w./pi,20*log10(abs(hpc)),'b');
xlabel('Normalized Frequency (x \pi radians/sample)');
ylabel('dB');
legend('Original Filter','Power Complementary Filter',...
    'Location','best');
subplot(212);
plot(w./pi,unwrap(angle(h)),'k'); hold on; grid on;
xlabel('Normalized Frequency (x \pi radians/sample)');
ylabel('Phase (radians)');
plot(w./pi,unwrap(angle(hpc)),'b');

Introduced in R2011a

Was this topic helpful?