Sam
Guest
|
Posted:
Mon Jan 03, 2005 11:13 pm Post subject:
Help : IIR filter norm |
|
|
Hi all and thank you for reading my post !
I would like to implement an IIR filter in a FPGA and determine how many
bits I need to have a good dynamic range. So I found the wonderful
article written by Carletta et al. available at :
https://portal.acm.org/poplogin.cfm?dl=ACM&coll=GUIDE&comp_id=775998&want_href=delivery%2Ecfm%3Fid%3D775998%26type%3Dpdf&CFID=34959164&CFTOKEN=80609391&td=1104775256945
(Sorry... I had to register as well, but that's free).
To resume : in their example, the transfer function is :
G(z)=(101.8zē -203z +101.6) / (zē-1.968z+0.968)
To calculate how many bits are required in the feedback loop, we suppose
that a signal e (being the quantization error) is added in the
feedback's adder.
I have to calculate the l1 norm of the function transfer between e and
the output :
Ge(z)=zē/(zē-1.968z+0.968)
So, well, I can implement this under Matlab :
h=impz([1 0 0], [1 -1.968 0.968]);
l1=sum(abs(h));
But there is a problem, because when I plot the h vector as computed
above, I see a nice exponential-like plot, with an asymptotic value at
about 32 and a few. In Carletta's article, they can calculate this l1
norm ant the value is 97443.
What's wrong with what I do ??
Thanks a lot in advance !
Sam |
|