Sample multiple channels 'simultaneously' with a single ADC: Page 4 of 7

September 16, 2011 //By Kendall Castor-Perry
Sample multiple channels 'simultaneously' with a single ADC
Kendall Castor-Perry (aka The Filter Wizard) explains that despite its title, this is indeed an article about a filtering technique. Using it, you can sample a number of analog input channels sequentially with a single ADC in such a way that the data appears to have been acquired at the same instant in time on every channel. It sounds like magic – but it's just Wizardry!
sequences {3} again: three-quarters of the data values are zero. Each output value from the 128-tap FIR filter used to create sequences {4} is the result of adding together 128 individual products of input data value and coefficient value. But there’s no point doing the multiply inside the filter structure when we know in advance that the data value is going to be zero. There’s a large potential saving here; how do we exploit this?

The solution is to partition the FIR filter’s impulse response into four subsets that match the positions of the non-zero samples in sequences {3}. This turns our 128-tap filter into four distinct 32-tap subfilters. Then, we use the ‘misaligned’ input sequences {2} as the inputs to these filters, each just running at Fs. Figure 3 shows how we split up the impulse response into the four ‘phases’ that get assembled into the four different filters. We still get sequences {4} as the output, it’s just that we’ve eliminated all the redundant multiplies by zero.

Now, instead of implementing four (identical) 128-tap filters running at 4Fs, we just have to implement four (different) 32-tap filters each running at Fs. That’s a pretty significant saving. We never actually need to create and decimate the sequences {3}. The new filters have the original frequency response, but it just hits its stopband right at Nyquist.

This is an example of polyphase decimation . There’s a delay difference between each of these subfilters, and it’s exactly equal to the time error caused by our original misalignment of the sample data in creating sequences {2}, which was one-quarter of the sample period of the output data between channels. This time difference therefore ‘realigns’ the data in the time domain, eliminating the error. How cool is that?

Figure 3:
Breaking up our 128-tap FIR filter into four phases

Figure 4:
The four subfilters, showing overlapping magnitude and staggered phase

Because we divided

Design category: 

Vous êtes certain ?

Si vous désactivez les cookies, vous ne pouvez plus naviguer sur le site.

Vous allez être rediriger vers Google.