decimation alias

Started by sukram July 23, 2008
I'm usig CIC5 decimation filter, which is part of a larger signal processor
chip, decimation is M=8, the input frequency is Fs. Since CIC filters only
have infinite attenuation at f=Fs/8*k , k={1..7}, a considerable amount of
Alias will 'fold' into the output data stream's spectrum between 0...Fs/16.
The CIC spectrum H(f) can be calculated easily between -Fs/2 ... Fs/2
according to the formula given in the sheet.

The question is how to calculate the alias attenuation in the output
spectrum!
In the processor data sheet's alias table they just take H(f) from
{-Fs/2...-Fs/2+Fs/16} and shift that to the output spectral range of
{0...Fs/16} - that's their alias attenuation.

I doubt that this procedure is correct, since decimation just means
re-sampling the spectrum with Fs/M, which means that the original spectrum
will just repeat with Fs/8. So in total 4 different sections of the
repeating spectrum H(f) will alias into the output spectrum:

H( f={-Fs/2...-Fs/2+Fs/16} ) +
H( f={-Fs/2 + 1*Fs/8...-Fs/2 + 1*Fs/8 + Fs/16} ) +
H( f={-Fs/2 + 2*Fs/8...-Fs/2 + 2*Fs/8 + Fs/16} ) +
H( f={-Fs/2 + 3*Fs/8...-Fs/2 + 3*Fs/8 + Fs/16} )

and have to be summed up for yielding the total alias attenuation.

Since I'm not too deep into signal processing issues, I'm not sure what's
the correct alias calculation - the data sheet's one or my own ?
Maybe some of the experts can help me here.....

Markus 




I'm not sure which data sheet you're using, but in general, only the first
(and maybe the second) "fold" is really of major importance, though this is
bandwidth dependent.  The AD6620 data sheet (Analog Devices) has a pretty
good table that I use (page 24).  The example they plot is for M = 4.  If
you look at the -50 dB crossover (for signal BW/Fs input = 6.2%), the
second alias fold is on the order of 20 dB down from the first, which is
pretty inconsequential when added in to the -50 dB first fold.  If you're
trying to get very large rejection ratios, say -100 dB, then the second
fold will play a larger role, but it will never contribute even 3 dB to the
total aliased power since it will always be smaller than the first. 
Subsequent folds are even smaller, contributing even less to the aliased
power.

Mark
>I'm not sure which data sheet you're using, but in general, only the
first
>(and maybe the second) "fold" is really of major importance, though this
is
>bandwidth dependent. The AD6620 data sheet (Analog Devices) has a
pretty
>good table that I use (page 24). The example they plot is for M = 4.
If
>you look at the -50 dB crossover (for signal BW/Fs input = 6.2%), the >second alias fold is on the order of 20 dB down from the first, which is >pretty inconsequential when added in to the -50 dB first fold. If
you're
>trying to get very large rejection ratios, say -100 dB, then the second >fold will play a larger role, but it will never contribute even 3 dB to
the
>total aliased power since it will always be smaller than the first. >Subsequent folds are even smaller, contributing even less to the aliased >power. > >Mark >
Mark, thank's for the feedback! Actually I was talking just about the AD6620 CIC2 section, but the problem is identical for the CIC5 section! Unfortunately I made a mistake regarding the AD alias table: they are not using the spectrum H(f) from {-Fs/2...-Fs/2+Fs/16} and shift that to the output spectral range of {0...Fs/16} , but from: {-Fs/2+3Fs/8...-Fs/2+3Fs/8+Fs16} (for a decimation of 8) However, basically it's the same problem as before: they use just one part of the spectrum, but I think (as stated before) all four 'folds' of the spectrum should be summed up for the alias! I've done some calculations, comparing the AD-table and my idea of calculating the alias - the difference is considerable: * the AD-table yields about 4dB less alias, the difference is constant over the entire output frequency range * the 'alias free' bandwidth (checked at -50,-70,-90dB), stated by the AD-table is about 26% larger than according to my calculations (i.e. at -70dB the BW is not 0.213%, but 0.168% of Fs) So this is not just a kind of 'academic' problem - the difference really matters! But who has the answer which calculation is correct?
>So this is not just a kind of 'academic' problem - the difference really >matters! But who has the answer which calculation is correct?
Summing each of the folds is the correct method. Does their table align with just the first alias term? At -50 dB I'm surprised, btw, that it would be a total of 4 dB off, even for a decimation of 8. But, I've never cared to calculate the numbers so I can't really comment. Personally, being off by a few dB from such a table isn't something that I would ever worry about since I typically build in enough rejection to account for that. In other words, I try to work it so that all of my processing error (aliasing, roundoff, etc.) is well below the in-band thermal/ADC noise floor anyway. This is why I never have noticed the difference (I have used the 6620 on several occasions in the past). Good detective work. I would suggest writing to Analog Devices and letting them know of this problem. I need to keep this in mind, too, since I used the CIC5 table for a GC4016 application that I am working now. Mark