DSPRelated.com
Forums

CIC filter question

Started by AAA January 17, 2006
Mark Borgerding wrote:

   ...

> I don't think a Hogenaur(sp?) representation of a CIC filter is > appropriate in floating point.
Correct. Even a boxcar averager, in which the oldest sample is subtracted and the newest added can fail in floating point if the accumulation becomes large enough to change the exponent. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Jerry Avins wrote:
> Mark Borgerding wrote: > > ... > >> I don't think a Hogenaur(sp?) representation of a CIC filter is >> appropriate in floating point. > > > Correct. Even a boxcar averager, in which the oldest sample is > subtracted and the newest added can fail in floating point if the > accumulation becomes large enough to change the exponent. > > Jerry
Huh? There's a difference between a boxcar averager and a CIC? -- Mark Borgerding
Mark Borgerding wrote:
> Jerry Avins wrote: > >>Mark Borgerding wrote: >> >> ... >> >> >>>I don't think a Hogenaur(sp?) representation of a CIC filter is >>>appropriate in floating point. >> >> >>Correct. Even a boxcar averager, in which the oldest sample is >>subtracted and the newest added can fail in floating point if the >>accumulation becomes large enough to change the exponent. >> >>Jerry > > > Huh? There's a difference between a boxcar averager and a CIC? > > -- Mark Borgerding
From /Multirate Signal Processing for Communication Systems/ by Fredric Harris: "The CIC contains two subfilters, the comb and the integrator, which can be applied in either order." Not exactly a boxcar averager. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
>Mark Borgerding wrote: >> Jerry Avins wrote: >> >>>Mark Borgerding wrote: >>> >>> ... >>> >>> >>>>I don't think a Hogenaur(sp?) representation of a CIC filter is >>>>appropriate in floating point. >>> >>> >>>Correct. Even a boxcar averager, in which the oldest sample is >>>subtracted and the newest added can fail in floating point if the >>>accumulation becomes large enough to change the exponent. >>> >>>Jerry >> >> >> Huh? There's a difference between a boxcar averager and a CIC? >> >> -- Mark Borgerding > > From /Multirate Signal Processing for Communication Systems/ by Fredric
>Harris: "The CIC contains two subfilters, the comb and the integrator, >which can be applied in either order." Not exactly a boxcar averager. > >Jerry >-- >Engineering is the art of making what you want from things you can get. >����������������������������������������������������������������������� >
Hi, it is Alex. May be I caught the idea about how unsaturation property of two's complement arithmetic work: I think it relies upon not using in calculations multiplications by not hole coefficients (divisions), what is the case in CIC-filters. Because they may reflect not present at adders (and regs) m.s.b.'s to the calculated sum. But I d'nt know any paper with explanation of this in details (how CIC integrators overflowed by DC and low frequences in the signal band does work correctly). Tell me please one. May be anybody knows where I can see Hogenauer's article? Thank you. Alex.
>Mark Borgerding wrote: >> Jerry Avins wrote: >> >>>Mark Borgerding wrote: >>> >>> ... >>> >>> >>>>I don't think a Hogenaur(sp?) representation of a CIC filter is >>>>appropriate in floating point. >>> >>> >>>Correct. Even a boxcar averager, in which the oldest sample is >>>subtracted and the newest added can fail in floating point if the >>>accumulation becomes large enough to change the exponent. >>> >>>Jerry >> >> >> Huh? There's a difference between a boxcar averager and a CIC? >> >> -- Mark Borgerding > > From /Multirate Signal Processing for Communication Systems/ by Fredric
>Harris: "The CIC contains two subfilters, the comb and the integrator, >which can be applied in either order." Not exactly a boxcar averager. > >Jerry >-- >Engineering is the art of making what you want from things you can get. >����������������������������������������������������������������������� >
Will anybody show me please a link to the Hogenauer's article? Thank you. Alex.
AAA wrote:

   ...

> Hi, it is Alex. > > May be I caught the idea about how unsaturation property of two's > complement arithmetic work: I think it relies upon not using in > calculations multiplications by not hole coefficients (divisions), what is > the case in CIC-filters. Because they may reflect not present at adders > (and regs) m.s.b.'s to the calculated sum. > > But I d'nt know any paper with explanation of this in details (how CIC > integrators overflowed by DC and low frequences in the signal band does > work correctly). Tell me please one. May be anybody knows where I can see > Hogenauer's article?
http://www.phptr.com/articles/article.asp?p=361985&seqNum=1 and its sequels will interest you. In particular, for overflow matters, http://www.phptr.com/articles/article.asp?p=361985&seqNum=2 Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
AAA wrote:

   ...

> Will anybody show me please a link to the Hogenauer's article? > Thank you. > Alex.
Hogenauer, E. B., "An Economical Class of Digital Filters for Decimation and Interpolation," IEEE Transactions on Acoustics, Speech, and Signal Processing, ASSP-29(2): pp. 155-162, 1981 Check out Donadio, M. Cascaded Integrator-Comb (CIC) Filter Introduction http://www.dspguru.com/info/tutor/cic.htm Use Google, as I just did for you. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Jerry Avins wrote:
> Mark Borgerding wrote: > >> Jerry Avins wrote: >> >>> Mark Borgerding wrote: >>> >>> ... >>> >>> >>>> I don't think a Hogenaur(sp?) representation of a CIC filter is >>>> appropriate in floating point. >>> >>> >>> >>> Correct. Even a boxcar averager, in which the oldest sample is >>> subtracted and the newest added can fail in floating point if the >>> accumulation becomes large enough to change the exponent. >>> >>> Jerry >> >> >> >> Huh? There's a difference between a boxcar averager and a CIC? >> >> -- Mark Borgerding > > > From /Multirate Signal Processing for Communication Systems/ by Fredric > Harris: "The CIC contains two subfilters, the comb and the integrator, > which can be applied in either order." Not exactly a boxcar averager. > > Jerry
You say potato and I say potato. You say tomato and I say tomato. Other than possibly scaling, a CIC is the same as a moving average/ boxcar filter. Comb filter: y(n) = x(n) - x(n-k) H(z) = 1 - z^-k Integrator : y(n) = x(n) + y(n-1) H(z) = 1 / (1 - z^-1) Comb + Integrator y(n) = y(n-1) + x(n) - x(n-k) H(z) = (1 - z^-k) / (1 - z^-1) I recall either Harris' Multirate book or Rick Lyon's book deriving (1 - z^-k) / (1 - z^-1) = 1 + z^-1 + z^-2 + ... z^-(k-1) ... in other words, it is the relationship you describe as "oldest sample is subtracted and the newest added" -- Mark Borgerding
Mark Borgerding wrote:
> Jerry Avins wrote: > >>Mark Borgerding wrote: >> >> >>>Jerry Avins wrote: >>> >>> >>>>Mark Borgerding wrote: >>>> >>>> ... >>>> >>>> >>>> >>>>>I don't think a Hogenaur(sp?) representation of a CIC filter is >>>>>appropriate in floating point. >>>> >>>> >>>> >>>>Correct. Even a boxcar averager, in which the oldest sample is >>>>subtracted and the newest added can fail in floating point if the >>>>accumulation becomes large enough to change the exponent. >>>> >>>>Jerry >>> >>> >>> >>>Huh? There's a difference between a boxcar averager and a CIC? >>> >>>-- Mark Borgerding >> >> >>From /Multirate Signal Processing for Communication Systems/ by Fredric >>Harris: "The CIC contains two subfilters, the comb and the integrator, >>which can be applied in either order." Not exactly a boxcar averager. >> >>Jerry > > > You say potato and I say potato. > You say tomato and I say tomato. > > Other than possibly scaling, a CIC is the same as a moving average/ > boxcar filter. > > Comb filter: > y(n) = x(n) - x(n-k) > H(z) = 1 - z^-k > > Integrator : > y(n) = x(n) + y(n-1) > H(z) = 1 / (1 - z^-1) > > Comb + Integrator > y(n) = y(n-1) + x(n) - x(n-k) > H(z) = (1 - z^-k) / (1 - z^-1) > > > I recall either Harris' Multirate book or Rick Lyon's book deriving > (1 - z^-k) / (1 - z^-1) > = > 1 + z^-1 + z^-2 + ... z^-(k-1) > > ... in other words, it is the relationship you describe as "oldest > sample is subtracted and the newest added"
I understand your point, but how can you cascade a single boxcar averager? CIC = cascaded integrator comb. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
>AAA wrote: > > ... > >> Will anybody show me please a link to the Hogenauer's article? >> Thank you. >> Alex. > >Hogenauer, E. B., "An Economical Class of Digital Filters for Decimation >and Interpolation," IEEE Transactions on Acoustics, Speech, and Signal >Processing, ASSP-29(2): pp. 155-162, 1981 > >Check out Donadio, M. Cascaded Integrator-Comb (CIC) Filter Introduction >http://www.dspguru.com/info/tutor/cic.htm > >Use Google, as I just did for you. > >Jerry >-- >Engineering is the art of making what you want from things you can get. >����������������������������������������������������������������������� >
Thank you, Jerry. But I have already read Donadio's article and yet now looking for Hogenauer's one. Google can't help... May be You or anybody knows? Alex.