<< Chapter < Page Chapter >> Page >

Using these facts, an optimal multiband filter can be built up by successively adding and subtracting the impulse responses of optimallowpass filters as done in [link] . For example a bandpass filter that approximates zero for 0 < ω < ω 1 , has a spline transition band for ω 1 < ω < ω 2 , approximates one (or some other constant) for ω 2 < ω < ω 3 , has an independent second transition band for ω 3 < ω < ω 4 , and finally approximates zero for ω 4 < ω < π can be designed by first designing a simple lowpass filter with transition band ω 3 < ω < ω 4 and then subtracting from its impulse response the impulse of a second lowpassfilter designed with a transition band ω 1 < ω < ω 2 . A filter with two or more passbands can be designed by adding the impulseresponses of two or more single passband filters.

Indeed, a completely general design method can be formulated by alternately adding and subtracting lowpass filters starting with thehighest frequency transition band and moving sequentially down to the lowest. If the ideal frequency response is not zero at ω = π , then one starts with a constant frequency response (an impulse in the timedomain) and subtracts a lowpass filter (remember the length must be odd for this case). By scaling each lowpass filter, different gains areobtained in each band.

Care must be taken that the constructed spline transition function properly fit the bands on both sides. This will not automatically happenif there are two adjacent bands with different slopes connected by one transitions function which are simply added together. It will automaticallyhappen if each passband is separated by a stopband or if adjacent bands have the same slopes.

A matlab filter design program

A Matlab [link] program named fir3.m is given in the appendix ofthis book that will design optimal filters using the method described in the previous section. This particular program requires constant butarbitrary passband gains and uses a format for specifications similar to remez()in Matlab. It constructs the multiband filter from [link] by adding and subtracting optimal lowpass filters designed from the formula in [link] and calculated in the second program named fir3lp.m.

The main program is given an even length vector f containing thenormalized pass and stopband edges, including f = 0 and f = 1 . It is also given an even length vector mcontaining the ideal response at each frequency in f. Because the lowpass filter has a constant passband, the ideal response of the multiband filter will have constantpassbands. This means m will consist of adjacent terms that areequal. An example Matlab function call is given in the next section.

The simple program listed in the appendix will design filters with constant gains in multiple passbands. From its construction it is easy tosee how adding the use of the linear gain lowpass filter to the unity gain passband lowpass filter would allow designing optimal filters with lineargains in the passbands. By adding all four basic lowpass designs a calling program could be written that would automatically design onefilter with a combination of all four characteristics. If the real and imaginary parts of a desired complex frequency response can be given interms of the basic filters, nonlinear phase filters can be designed also.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Digital signal processing and digital filter design (draft). OpenStax CNX. Nov 17, 2012 Download for free at http://cnx.org/content/col10598/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Digital signal processing and digital filter design (draft)' conversation and receive update notifications?

Ask