DSPRelated.com
Forums

A CIC decimation filter question.

Started by Rick Lyons February 10, 2012
On Fri, 10 Feb 2012 09:59:05 -0800, Rick Lyons
<R.Lyons@_BOGUS_ieee.org> wrote:

> >Hi Guys, > I have a question for any of you who have studied >Hogenauer's original paper on cascaded integrator-comb >(CIC) digital filters. > > E. Hogenauer, E. "An Economical Class of Digital > Filters For Decimation and Interpolation," IEEE > Trans. Acoust. Speech and Signal Proc., Vol. ASSP-29, > April 1981, pp. 155-162. > >I'm having a disagreement with the a signal processing >engineer. One of us thinks that Hogenauer's 'Bmax' >variable in Hogenauer's Equation (11) represents the >number of bits in a binary word. The other one of us >thinks that the 'Bmax' variable represents the index >of the most significant bit in a binary word. > >To illustrate our difference of opinions: in one >interpretation, for an 8-bit binary word, Bmax = 8. >In the other interpretation Bmax = 7. > >Do any of you have an opinion on what is the definition >of Hogenauer's 'Bmax' variable? > >This is not just a friendly disagreement. We'd like >to know the true definition of 'Bmax' in preparation >for an upcoming DSP publication. > >Thanks for your help. >[-Rick-]
Rick, Sent ya an email about this. Your answer may be closer than you think. ;) Eric Jacobsen Anchor Hill Communications www.anchorhill.com

Hi,
  I surfed all over Hell-n-back on the 
Internet and finally found a residential phone 
number for Eugene Hogenauer.  After several days 
of calling that number no one ever answered the 
phone, and there was no answering machine.

Eric Jacobsen gave me the name of Hogenauer's 
employer in Silicon Valley.  Yesterday I called 
Hogenauer at his work and briefly described my 
'definition of Bmax' question.  Because he 
hadn't thought about CIC filters for years we 
agreed that I'd put my question in an E-mail 
that I'd send to him, which I did later yesterday 
morning.  I hope Hogenauer answers my E-mail.

See Ya',
[-Rick-]

Hi,
  Roughly 30 minutes after I submitted my last post 
here I received an E-mail from Eugene Hogenauer.

stan and I were correct.  The 'Bmax' variable in 
Hogenauer's famous paper represents the index 
number of the most significant bit in a binary word.

See Ya',
[-Rick-]
On 2/14/12 8:28 PM, Rick Lyons wrote:
> > > Roughly 30 minutes after I submitted my last post > here I received an E-mail from Eugene Hogenauer. > > stan and I were correct. The 'B_max' variable in > Hogenauer's famous paper represents the index > number of the most significant bit in a binary word. >
i think the " ... - 1 " in Eq 11 made that clear. just glossing over the paper, i haven't been able to differentiate the meanings or R and M, but they were always multiplied together anyway and their product represented something proportional to gain in a linear sense. so, for bit growth, it's log2(R*M) (if it were dB growth it would be a log of a different base) then if you cascade that N times, it's N*log2(R*M). if you start out in B_in bits in the input word width, then the output word width is gonna be B_out = N*log2(R*M) + B_in if you start out with the LSB index being 0, then the MSB index is B_out - 1. i thought it was clear from the beginning. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
On Wed, 15 Feb 2012 11:30:45 -0500, robert bristow-johnson
<rbj@audioimagination.com> wrote:

>On 2/14/12 8:28 PM, Rick Lyons wrote: >> >> >> Roughly 30 minutes after I submitted my last post >> here I received an E-mail from Eugene Hogenauer. >> >> stan and I were correct. The 'B_max' variable in >> Hogenauer's famous paper represents the index >> number of the most significant bit in a binary word. >> > > >i think the " ... - 1 " in Eq 11 made that clear. > >just glossing over the paper, i haven't been able to differentiate the >meanings or R and M, but they were always multiplied together anyway and >their product represented something proportional to gain in a linear >sense. so, for bit growth, it's log2(R*M) (if it were dB growth it >would be a log of a different base) then if you cascade that N times, >it's N*log2(R*M). if you start out in B_in bits in the input word >width, then the output word width is gonna be > > B_out = N*log2(R*M) + B_in > >if you start out with the LSB index being 0, then the MSB index is B_out >- 1. > >i thought it was clear from the beginning.
Hi Robert, Well yes, you're right. There was no question about what was the index value of the MSB of a binary word. The question was, "What is the definition of the 'Bmax' variable in Hogenauer's Equation (11)?" Hogenaurer used the 'Bmax' variable to describe the number of bits needed to accommodate accumulator register bit growth due to the gain in a CIC filter. And I think the letters 'max' naturally misled some readers into thinking that 'Bmax' was the number of register bits needed to accommodate bit growth. I misunderstood the meaning of the 'Bmax' variable at first, as did other people. However, after re-reading parts of the text it occurred to me that 'Bmax' is actually the index value of a register's MSB, not the number of bits in the register. That realization was important enough to me that I made a red-ink note of it on my hardcopy of Hogenauer's paper. Too bad Hogenauer didn't use the variable name 'Bmsb' to represent the index number of an MSB, rather than the variable name 'Bmax'. I hope what I wrote made some sense. [-Rick-]