kirk@sdd.hp.com (Kirk Norton) (01/22/91)
Okay, here's a question for any of you digital filter types... What is the best continuous-time to discrete-time transform to use when designing a digital filter for audio signals? I have done some work with discrete time control systems and am familiar with a few different methods: impulse invariant, step invariant, bilinear (with and without freq. prewarping), and pole-zero mapping. Are any of these methods commonly used for audio filter design? Does it depend on the desired frequency response characteristics of the filter? If I sample at 44.1 KHz, will 20 KHz frequencies be a problem (since it is so close to the folding frequency of 22.05 KHz)? Would one of the above transform methods handle the problem better than the others. I was considering using either pole-zero mapping (since it would map 0 Hz - 22.05 KHz to 0 Hz - infinity, which might not be bad for my application), or the bilinear transform with frequency prewarping (because the name sounds so cool), but since I've never even read a book on discrete filter design (perhaps I should, no?) I thought I'd get opinions from people who have a clue first. Any opinions, ideas, comments (or, yes, even references to good texts) would be most appreciated. Thanks... -Kirk How 'bout them Raiders? -- Kirk Norton 16399 West Bernardo Drive San Diego, CA 92127-1899
bill@flutter.tv.tek.com (William K. McFadden) (01/22/91)
In article <1991Jan21.131003@sdd.hp.com> kirk@sdd.hp.com (Kirk Norton) writes: >I have done some >work with discrete time control systems and am familiar with a few >different methods: impulse invariant, step invariant, bilinear (with >and without freq. prewarping), and pole-zero mapping. Are any of these >methods commonly used for audio filter design? Does it depend on the >desired frequency response characteristics of the filter? I've designed filters using all of the above methods except pole-zero mapping. In every case, the bilinear transform with frequency prewarping was at least as good as the other methods. In most cases it was a lot better (this was especially true for high pass filters). You'll find, by and large, that this is the preferred method for IIR filter design. You are probably also aware of FIR filters, which have no feedback and linear phase response. They are more computationally intensive than equivalent IIR filters, but are used a lot because everybody is so concerned about phase these days. (FIR=finite impulse response, IIR=infinite impulse response) -- Bill McFadden Tektronix, Inc. P.O. Box 500 MS 58-639 Beaverton, OR 97077 bill@videovax.tv.tek.com, {hplabs,uw-beaver,decvax}!tektronix!videovax!bill Phone: (503) 627-6920 "The biggest difference between developing a missle component and a toy is the 'cost constraint.'" -- John Anderson, Engineer, TI
wang@motcid.UUCP (Jerry Wang) (01/24/91)
kirk@sdd.hp.com (Kirk Norton) writes: >What is the best continuous-time to discrete-time transform to use >when designing a digital filter for audio signals? I have done some >If I sample at 44.1 KHz, will 20 KHz frequencies be a problem >(since it is so close to the folding frequency of 22.05 KHz)? Would 1. If you do not care about phase linearity, IIR (Infinite Impulse Response) filters are computationally more economical. Bi-linear transformation is the most efficient design method I know of. 2. If you do care about phase linearity, the best method is FIR (Finite Impulse Response) filters. The most efficient design method I know of is the 'Park-McCellan' iteration. 3. Sampling at 44.1 kHz while desiring a satisfactory result at 20 kHz is possible but you may experience some implementation diificulties: a. You need an anti-aliasing filter with a pass band at 20 kHz and stop band at 22.05 kHz. The analog anti-aliasing filter itself is a challenge. b. You need a reconstruction filter with similar frequency response and additionally with sinx/x equalization for the non-impulse D/A output. Typical solution is to oversample at 2X, 4X, 8X or even 16X the Nyquist rate. This however is done at the cost of faster A/D and D/A converters and additional digital filtering is required for decimation and and interpolation. I know of one Jappaness company that makes a variety of oversampling filters but fast A/D and D/A remain a challenge (I assume that you want 16 bit resolution). 4. Here is an additional challenge for you to think about, i.e. the normalization of your filter: Assumming that you have a 10 band digital equalizer with up to +10 dB gain in each band, what happens if your signal is from a sweeping frequency signal generator when all the bands are at +10 dB? The resulting output will be at +10 dB all the time and you will need two more bits for your D/A (i.e. 18 bit D/A). I probably got you thinking about making every band -20 dB to 0 dB and label them -10 dB to +10 dB, but it creates a diffrent problem. For a guy who wants 'flat' response (i.e. 0 dB labeled, -10 dB actual on all bands), the output is at -10 dB actual all the time with a sweeping oscillator as the input. This means that we are lossing nearly 2 bit resolution or 10 dB dynamic range for nominal or typical setting. The bottom line: depending on how we fool around with the signal, we might have increased the dynamic range of the original signal. Jerry Wang - Motorola