EMQF filters

EMQF filters (Elliptic filters with maximal Q-factor) are special case of elliptic filters. EMQF filters have equal ripples in passband and in stopband as well. They require three design parameters (ripple in stopband, cut-off frequency for passband, and cut-off frequency for stopband). Next we will present several applications of these filters

Contents

1. Allpass realization

Not only elliptic filters but every odd order elliptic and butterworth filters can be realized as a parallel connection of two alllpasses using 'tf2ca' function.

Fig.1. Realization of IIR filter as a coupled allpass filter connection.

Let us design an elliptic low-pass filter

%[num0, den0]=ellip(5,2,40,0.3)                             % transfer function of elliptic filter
[num0, den0]=ellip(7,2,40,0.3)                             % transfer function of elliptic filter
fvtool(num0,den0);
num0 =
    0.0237   -0.0386    0.0604   -0.0148   -0.0148    0.0604   -0.0386    0.0237
den0 =
    1.0000   -4.4713   10.0742  -14.0199   12.9236   -7.8394    2.9149   -0.5207

Fig.2. Frequency response of original filter

Now we will represent it as a coupled-allpass structure

[d0,d1]=tf2ca(num0,den0); p0=fliplr(d0); p1=fliplr(d1);     % transfer function of filters in coupled-allpass scheme
p0,d0,p1,d1
p0 =
    0.7457   -2.2130    3.3183   -2.5163    1.0000
d0 =
    1.0000   -2.5163    3.3183   -2.2130    0.7457
p1 =
   -0.6983    1.8366   -1.9550    1.0000
d1 =
    1.0000   -1.9550    1.8366   -0.6983

And plot frequency response of this structure

x=[1 zeros(1,1000)];
y=(filter(p0,d0,x)+filter(p1,d1,x))/2;                      % impulse response of coupled-allpass scheme

fvtool(y,1);

Fig. 3. Frequency response of coupled all-pass structure

Comparison of Fig.2 and Fig.3 shows that transfer functions of both classic and coupled-allpass realizations are identical.

By using 'tf2sos' function we can realize this filter by means of three biquads and one first order IIR.

sos0=tf2sos(p0,d0)
sos1=tf2sos(p1,d1)
sos0 =
    0.7457   -1.3291    0.9884    1.0000   -1.3447    0.7545
    1.0000   -1.1854    1.0118    1.0000   -1.1716    0.9884
sos1 =
   -0.6983    0.9338         0    1.0000   -0.7478         0
    1.0000   -1.2928    1.0709    1.0000   -1.2072    0.9338

Fig.4. Realization of filter from example by means of allpass elements.

Note, that original filter order is equal to the sum of filter orders in coupled-allpass structure. It allows realizing elliptic filter with less number of coefficients. By using structures presented in [1] we can achieve less computational complexity.

Fig. 5. Realization of first order IIR allpass filter.

Fig. 6. Realization of second order IIR allpass filter.

Coefficients for these structures are defined as follows

2. EMQF filter design

Example below demonstrates design of EMQF lowpass filter [2] by means of 'ellip_du' function. This function directly computes coefficients of all-pass filters.

'p0' and 'd0' are numerator and denominator of all-pass A0(z)

'p1' and 'd1' are numerator and denominator of all-pass A1(z)

F3db=0.15;
df=0.04;
[p1,d1,p0,d0]=apellip_du(9,F3db-df,F3db+df)
fvtool((filter(p0,d0,x)+filter(p1,d1,x))/2);
p1 =
   -0.1132    0.7293   -1.9125    2.8733   -2.3121    1.0000
d1 =
    1.0000   -2.3121    2.8733   -1.9125    0.7293   -0.1132
p0 =
    0.1198   -0.6397    1.5268   -1.7080    1.0000
d0 =
    1.0000   -1.7080    1.5268   -0.6397    0.1198

Fig.7. Frequency response of EMQF low-pass filter

Fig. 8. Coupled-allpass realization of EMQF filter.

3. LP+HP complementary pair of filters

If low-pass filter is represented as a sum of two all-passes, complementary high-pass filter is represented as a difference of them.

fvtool((filter(p0,d0,x)+filter(p1,d1,x))/2,1,(filter(p0,d0,x)-filter(p1,d1,x))/2,1);

Fig. 9. Complementary pair of filters

Sum of these two complementary filters is allpass filter (magnitude response is flat).

Fig. 10. Splitting and combining subband by means of EMQF filters.

So we have two good points:

1. Two filters are realized by the cost of one filter plus one addition operation.

2. We can split signal into subbands and then easily combine them again without magnitude distortions.

4. Decimation and interpolation based on EMQF filters

Consider case of decimation/interpolation by two. For this case we need a halfband filter as a decimation filter. We will use EMQF filter for this purpose.

F3db=0.25;
df=0.02;
[p1,d1,p0,d0]=apellip_du(9,F3db-df,F3db+df)
fvtool((filter(p0,d0,x)+filter(p1,d1,x))/2);
p1 =
   -0.0000    0.3855   -0.0000    1.3313   -0.0000    1.0000
d1 =
    1.0000   -0.0000    1.3313   -0.0000    0.3855   -0.0000
p0 =
    0.0947   -0.0000    0.8335   -0.0000    1.0000
d0 =
    1.0000   -0.0000    0.8335   -0.0000    0.0947

Fig. 11. Frequency response of Halfband lowpass filter

Note that half of coefficients in all-pass realization are equal to zero, and halfband decimation EMQF filter can be represented in the form of two polyphase components

where

Fig. 12. Realization of decimation filter as coupled-allpass.

So, similar to FIR filter case, decimation can be realized using polyphase filtering. Filter A1(z) filters even samples of input signal, and filter A0(z) filters odd samples of input signal.

Fig. 13. Polyphase realization of decimation filter.

5. Hilbert transform pair IIR filters

Halfband filter designed in previous part can be used for making Hilbert transform IIR pair. This approach is based on shifting frequency response of halfband filter on pi/2 (half of Nyquist frequency), i.e in previous equation 'z' should be multiplied by exp(-j*pi/2) [3].

p0=p0.*(j.^((0:length(p0)-1)))
d0=d0.*(j.^((0:length(d0)-1)))
p1=p1.*(j.^((0:length(p1)-1)-1))
d1=d1.*(j.^((0:length(d1)-1)))
y0=filter(p0,d0,x)/2;
y1=filter(p1,d1,x)/2;
fvtool(y0+j*y1);
p0 =
  Columns 1 through 4
   0.0947                  0 - 0.0000i  -0.8335                  0 + 0.0000i
  Column 5
   1.0000          
d0 =
  Columns 1 through 4
   1.0000                  0 - 0.0000i  -0.8335                  0 + 0.0000i
  Column 5
   0.0947          
p1 =
  Columns 1 through 4
        0 + 0.0000i   0.3855                  0 - 0.0000i  -1.3313          
  Columns 5 through 6
        0 + 0.0000i   1.0000          
d1 =
  Columns 1 through 4
   1.0000                  0 - 0.0000i  -1.3313                  0 + 0.0000i
  Columns 5 through 6
   0.3855                  0 - 0.0000i

Fig. 14. Magnitude spectrum of analytic signal

Fig. 15. Hilbert IIR pair based on EMQF halfband filter.

Complex signal y0+j*y1 has non-zero spectrum only at positive frequencies. Hence, y0 and y1 are Hilbert pair signals. Note that IIR filters based on EMQF filters have two times less computational complexity due to the fact that every second coefficient in transfer function is zero.

6. Multiplierless realization of EMQF filters

Example below shows designing multiplierless EMQF filter with the same parameters as in chapter 3. As shown in [4], coefficient 'beta' is dependent only from cut-off frequency F3db. Coefficients 'alpha' and 'alpha1' are coefficients in special realizations of all-pass biquads (see Fig.1).

[alpha,beta,alpha1]=ellipEMQF_nomult(9, F3db-df,F3db+df, 1, 42)
[num,den]=(emqf_co2tf(alpha,beta,alpha1))
fvtool(num,den);
Calculating 'alpha'...
Calculating maximal 'beta'...
Optimization terminated: norm of relative change in X is less
 than max(options.TolX^2,eps) and  sum-of-squares of function 
 values is less than sqrt(options.TolFun).
Calculating 'beta's...
Calculating 'alpha1'...
alpha =
     0
beta =
    0.1563    0.4688    0.7383    0.9219
alpha1 =
   -0.0020
num =
  Columns 1 through 9
    0.0572    0.2160    0.5257    0.8875    1.1446    1.1446    0.8875    0.5257    0.2160
  Column 10
    0.0572
den =
  Columns 1 through 9
    1.0000   -0.0020    2.2852   -0.0045    1.7914   -0.0036    0.5470   -0.0011    0.0498
  Column 10
   -0.0001

Fig. 16. Frequency response of muliplierless EMQF lowpass filter

Comparison of figures 5 and 7 shows that in multiplierless implementation we loose about 4dB only.

Note, that function 'ellipEMQF_nomult' considers 16-bit precision for coefficients and 4 non-zero numbers in {-1,1} set inbetween of 16 bits.

alpha_bin =[char(ones(1,floor((1-sign(alpha))/2))*'-')    '.' dec2bin(round (abs(alpha)*2^16),16 )]
beta1_bin =[char(ones(1,floor((1-sign(beta(1)))/2))*'-')  '.' dec2bin(round (abs(beta(1))*2^16),16 )]
beta2_bin =[char(ones(1,floor((1-sign(beta(2)))/2))*'-')  '.' dec2bin(round (abs(beta(2))*2^16),16 )]
beta3_bin =[char(ones(1,floor((1-sign(beta(3)))/2))*'-')  '.' dec2bin(round (abs(beta(3))*2^16),16 )]
beta4_bin =[char(ones(1,floor((1-sign(beta(4)))/2))*'-')  '.' dec2bin(round (abs(beta(4))*2^16),16 )]
alpha1_bin=[char(ones(1,floor((1-sign(alpha1))/2))*'-')   '.' dec2bin(round (abs(alpha1)*2^16),16 )]
alpha_bin =
.0000000000000000
beta1_bin =
.0010100000000000
beta2_bin =
.0111100000000000
beta3_bin =
.1011110100000000
beta4_bin =
.1110110000000000
alpha1_bin =
-.0000000010000010

You can check that each multiplier can be realized by means of no more than 4 addition/subtraction operations.

Actually, alpha1 is zero for halfband filter (check it with 'ellip_du' function). This small non-zero value arises due to error of numerical optimization.

Fig. 17. Multiplierless realization of EMQF filter.

References

[1] Ansari, R., and Liu, B. (1985, February). A class of low-noise computationally efficient recursive digital filters with applications to sampling rate alternations. IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. 33, pp. 90-97.

[2] Lj. D. Milic, M. D. Lutovac, Efficient Algorithm for the Design of High-Speed Elliptic IIR Filters, Int. Journal of Electronics and Communications, AEU, Vol. 57, No. 4, 2003, pp. 255-262.

[3] M. Lutovac, Lj. Milic, Design of multiplierless elliptic IIR halfband filters and Hilbert transformers, 9th European Signal Processing Conference EUSIPCO'98, Rodos, Greece, Sep. 1998, pp. 291-294.

[4] Lj. D. Milic, M. D. Lutovac, Design of multiplierless elliptic IIR filters with a small quantization error, IEEE Trans. Signal Processing, Vol. 47, no. 2, Feb. 1999, pp. 469-479.