Documente Academic
Documente Profesional
Documente Cultură
Output from a digital filter is made up from previous inputs and previous outputs, using the operation of convolution:
Two convolutionsare involved: one with the previous inputs, and one with the previous outputs. In each case the convolving function is called the filter coefficients. If such a filter is subjected to an impulse (a signal consisting of one value followed by zeroes) then its output need not necessarily become zero after the impulse has run through the summation. So the impulse response of such a filter can be infinite in duration. Such a filter is called an Infinite Impulse Response filter or IIR filter.
Note that the impulse response need not necessarily be infinite: if it were, the filter would be unstable. In fact for most practical filters, the impulse response will die away to a negligibly small level. One might argue that mathematically the response can go on for ever, getting smaller and smaller: but in a digital world once a level gets below one bit it might as well be zero. The Infinite Impulse Response refers to the ability of the filter to have an infinite impulse response and does not imply that it necessarily will have one: it serves as a warning that this type of filter is prone to feedback and instability.
Coefficient calculation methods for IIR filters While trying to compute the filter coefficients one has to select a method from a number of approximation methods in order to calculate the values of dk and ck. A simple way to obtain the IIR filter coefficients is to place poles and zeros judiciously in the z-plane such that the resulting filter has the desired frequency response. This approach is known as the pole-zero-placement method. Is only useful for very simple filters, i.e. notch filtering, where the filter parameters (passband ripple) need not be specified precisely. A more efficient approach is first to design an analog filter satisfying the desired specifications and then to convert it into an equivalent digital filter. Most IIR digital filters are designed this way. There are three main methods for converting an analog filter into a digital filter. 1) impulse invariance 2) the matched z-transform 3) bi-linear z-transform
Basic Concepts and illustrative design examples: When a zero is placed at a point on the z-plane, the frequency response will be zero at the corresponding point. A pole on the other hand produces a peak at the corresponding frequency point. Poles that are close to the unit circle give rise to large peaks whereas zeros close to or on the circle throughs or minima. Hence by strategically placing poles and zeros on the z-plane we can obtain simple lowpass or other frequency selective filters.
An important point to remember is that : In order for the filter coefficients to be real , the poles and zeros must be either real (i.e. lie on the positive or negative real axis) or occur in complex conjugate pairs.
Fs/4
Fs/2
3Fs/4 (a) (a) Pole zero diagram of a simple filter (b) A sketch of its frequency response
Fs/4
Fs/2 (b)
3Fs/4
Frequency
Example1:
Illustrating the simple pole-zero method of calculating the filter coefficients a bandpass digital filter is required to meet the following specifications: (i) (ii) (iii) complete signal rejection at DC and 250Hz. A narrow passband centered at 125Hz A 3dB bandwidth of 10Hz.
Assuming a sampling frequency of 500 Hz, obtain the transfer function of the filter by suitably placing z-plane poles and zeros, and its difference equations.
Solution: Since a complete rejection is required at zero and 250Hz we need to place zeros at the corresponding points on the z-plane. These are at angles of 0 and 360250/500=180 on the unit circle. To hava the passband centered at 125Hz requires us to place poles at 360125/500=90. To ensure that the coefficients are real , it is necessary to have complex conjugate pole pair.
Im z-1 z-1 -1
0.937 Re
(b)
The radius of the poles is determined by the desired bandwidth. An approximate relationship between r, for r> 0.9, and bandwidth bw is:
r 1 (bw / Fs )
for our specifications bw =10Hz and Fs=500Hz . This leads to an r value of r= 0.937
H [z ] =
(z re )(z re
j / 2
(z 1)(z + 1)
j / 2
z2 1 1 z 2 = z + 0.877969 1 + 0.877969 z 2
2
b0 = 1, b1 = 0 , b2=-1
and
a1 = 0 , a2=0.877969
Example 2:
(Using the pole-zero placement method to calculate coefficients of a notch filter) Obtain by the pole-zero placement method the transfer function and the difference equation of a simple digital notch filter that meets the following specifications. Notch frequency 50Hz 3dB width of notch 5Hz sampling frequency 500 Hz Solution: To reject the component at 50Hz we place a pair of complex zeros at points on the unit circle corresponding to 50Hz that is at angles of 36050/500=36. To achieve a sharp notch filter and improved amplitude response on either side of the notch frequency, a pair of complex conjugate poles are placed at a radius r < 1. The width of the notch is determined by the locations of the poles. The relationship between the bandwidth and radius is same as in the previous example.
Im
H[f ]
0.937 Re
50
250
Freqeuncy
The relationship between the bandwidth and the redius is applicable. Thus the radius of the poles is 0.9372. From the transfer function of the filter we have:
H [z ] =
b0 = 1, b1 = -1.6180 , b2=1
and
a1 = -1.5164 , a2=0.8783
Solution: If we apply the inverse Laplace transform we can get h(t) as below:
C pt h(t ) = L1{H ( s )} = L1 s p = Ce
According to the impulse invariant method, the impulse response of the equivalent digital filter, h(nT), is equal to h(t) at the discrete times t=nT, n = 0,1,2,....
h(nT ) = h(t ) t = nT = Ce pnT
h(nT )z
n=0
Ce
n =0
pnT n
C 1 e pT z 1
To apply the impulse invariant method to a high order IIR filter with simple poles, the transfer function H(s) is first expanded using partial fractions as the sum of single-pole filters:
H (s) =
C1 C2 CM + + ......... + = s p1 s p2 s pM
s p
k =1
Ck
where pk are the poles of H(s).Since each term has the same form then we can say that:
Ck s pk k =1
1 e
k =1
Ck
p k T 1
High order IIR filters are normally realized as cascades or parallel combinations of standard second order filter sections. For case M = 2
C1 C2 C1 C2 + + p1T 1 s p1 s p2 1 e z 1 e p 2T z 1 =
1 e p1T + e p 2T z 1 + e ( p1 + p 2 )T z 2
C1 + C2 C1e p 2T + C 2 e p1T z 1
If the poles p1 and p2 are complex conjugates the C1 and C2 will also be complex conjugates
* 2Cr [Cr cos( piT ) + Ci sin ( piT )]2e p r T z 1 C1 C1 + = * p1T 1 p1 T 1 1 e z 1 2e p r T cos( piT )z 1 + e 2 p r T z 2 1 e z
Here Cr and Ci are the real and imaginary parts of C1 and pr and pi are the real and imaginary parts of p1 .
Example:
Design a digital filter to approximate the following normalized analog transfer function:
H ( s) = 1 s + 2s + 1
2
Using the impulse invariant method obtain the transfer function, H(z), of the digital filter, assuming a 3dB cutoff frequency of 150Hz and a sampling frequency of 1.28 kHz. Solution: First we need to frequency scale the normalized transfer function. This is achieved by replacing s by s/ where = 2150=942.4778
H ' (s ) = H (s ) where;
p1 =
s=s /
C1 C2 2 = + s 2 + 2s + 2 s p1 s p 2
2 (1 j ) * = 666.4324(1 j ) , p 2 = p1 2
C1 =
j = 666.4324 j ,
C 2 = C1*
Since the poles are complex conjugates, the transformation is used to obtain the discrete-time transfer function, H(z).
C r = 0, Ci = 666.4324, pi T = 0.5207, p r T = 0.5207, e prT = 0.5941, sin( pi T ) = 0.4974,
cos( pi T ) = 0.8675 and e 2 prT = 0.3530 Using these values in the previously obtained expression we get H(z) as: 393.9264 z 1 1 1.0308 z 1 + 0.3530 z 2
H [z ] =
If we substitute z = ejwT in the above equation the value of H[z] at w=0 is 1223, approximately equal to the sampling frequency. Such large gain is characteristic of impulse invariant filters. To keep the gain down and to avoid overflows when the filter is implemented , it is common practice to multiply H[z] by T (or equivalently divide it by the sampling frequency).
H [z ] =
Therefore, we have
b0 = 0 b1 = 0.3078 a1 = 1.0308 a 2 = 0.3530
where, s and z are complex variables. This is what is known as the bilinear transformation or Tustins transformation. The inverse of this transformation is easily determined as
z=
2+ s 2s
In the discrete domain we are interested in z values on the unit circle z = e jw whereas in the Laplace domain s values on the imaginary axis (s=j) is of importance. The transformation and its inverse are well defined for all s on the imaginary axis where s = j. Here denotes the analog frequencies in rad/sec.
The bilinear transformation ties the two frequency scales together as follows. Starting from 2(1 z 1 ) s= and letting z = e jw we obtain: 1 + z 1
2 1 e jw 2 e jw / 2 e jw / 2 sin (w / 2 ) = jw / 2 = 2i = 2i tan( w / 2) jw jw / 2 cos(w / 2 ) e +e 1+ e
s = j =
) (
and consequently the relation between the two frequency scales is given by
= 2 tan (w / 2 )
We note that w=0 implies =0 and for increasing w the continuous frequencies will also the . Hence the entire continuous time frequency region increase and as w [0, ) is mapped to the upper half of the unit circle.
s=
2 1 z 1 1+ z 1
) H d [z ]
Note that Hd[z] is also a rational transfer function. The MATLAB command bilinear performs the bilinear transformation. The following good properties can be identified:
It is easy to verify that the number of poles of Hd[z] and Ha(s) coincide. This means that the order of the filter is unchanged. If Ha(s) is a stable transfer function so is also Hd[z] The complex filter response, i.e. both magnitude and phase, coincides for frequencies related by:
Ha ( j) = Hd e jw
[ ]
The last feature implies that the bilinear-transformation preserves the type of filter. If Ha(s) is a low-pass filter then Hd[z] will also be a low-pass filter.
H LPp ( s ) =
where p(s) is a prototype polynomial. The type of LP filter defines the polynomial coefficients and the various prototype polynomials can be found in standard textbooks. The MATLAB commands buttap and cheb1ap gives the zeros and poles of the prototype filters. Examples are given in the tables below:
Order 1 2
Gain C 1 1
Table1 : Butterworth prototype polynomials Order 1 2 Prototype polynomial p(s) s+2.8628 s2+ 1.4256 s + 1.5162 Gain C 2.8628 1.4314
Table2 : Chebyshev type 1 prototype polynomials wit pass-band ripple 0.5dB. All prototype polynomials have the 3dB cutoff frequency normalized to =1rad/s. For a particular design with a desired cut-off frequency of LPc the filter is modified by scaling the s variable with the inverse of the desired cut-off frequency. The final analog design is then;
s s s + p1 + .......... + p n1 + p n LPc LPc LPc In MATLAB lp2lp performs this design from a given prototype.
s LPc
H LP ( s ) = H LPp ( s )
1
n n 1
Figure 1: The four standard filters : LP= low-pass, HP=high-pass, BP=band-pass, BS=band-stop
High-pass design
A high-pass design is achieved from a low-pass filter by the transformation
H HP ( s ) = H LP ( s )
where
2 I s
2 = H LP I s
HPc
2 = I LPc 2 I LPs
HPs =
2
Here I =1 is a valid scaling. In MATLAB the function lp2hp performs this design from a given prototype.
As the bilinear transformation preserves the type of filter (LP, BP etc.) we only need to make sure that the cut-off frequencies gets mapped to the correct place. The design technique is summarized here: 1. Start by identifying the discrete time frequencies describing the cutoff frequencies. Use normalized frequencies in radians where w = represents half the samplingfrequency ( w = 2f/fs). 2. Calculate the corresponding analog frequencies using = 2 tan (w / 2 ) 3. Design an analog filter Ha(s) based on the specifications as described in section before. 4. Use the bilinear transformation to obtain the final digital (Z-domain) filter.
Example 1
Example2: