DSPRelated.com
Forums

Which is better Fixed Point Presentation!

Started by Nitin Jain March 22, 2004
Hi,
For a given DSP block say for FFT, Which fixed point presentation
(interpretation) would give better results for same input data:
(1.)Signed  A(9,6) presentation as per Randy Yates's Fixed point
article
(total 16 bits: 9 bits for integer and 6 bits for fractional part)

Or 
(2.) Signed A(0,15) presentation (Total 16 bits: No bits for integer
and 15 bits for fractional part).

The objective is to implement FFT in silicon. Also which fixed point
arithmetic is more intensive (Or both are equally intensive). What I
intend to know is if I implement a A(9,6) x A (9,6) multiplier, is it
more complex than a A(0,15) x A(0,15) Multiplier in hardware.

Thanks.
Regards
Nitin
nitin_jain_india@yahoo.com (Nitin Jain) wrote in message news:<5b272208.0403220643.4e2da627@posting.google.com>...
> Hi, > For a given DSP block say for FFT, Which fixed point presentation > (interpretation) would give better results for same input data:
Better in what sense - precision or range ?
> (1.)Signed A(9,6) presentation as per Randy Yates's Fixed point > article > (total 16 bits: 9 bits for integer and 6 bits for fractional part) > > Or > (2.) Signed A(0,15) presentation (Total 16 bits: No bits for integer > and 15 bits for fractional part).
Both are equally intensive as they both contain 15 bits which have to be manipulated. A(9,6) has more range while A(0,15) has more precision. Your design and input data range as well as your signal processing requirements will govern which format to use.
> The objective is to implement FFT in silicon. Also which fixed point > arithmetic is more intensive (Or both are equally intensive). What I > intend to know is if I implement a A(9,6) x A (9,6) multiplier, is it > more complex than a A(0,15) x A(0,15) Multiplier in hardware.
A fixed point multiplier is well a fixed point multiplier. I don't know whether you realise it but there is no decimal point. So a A(9,6) x A(9,6) result is exactly equal to A(0,15) x A(0,15) result (provided A's are same). The difference lies in how the result is interpreted (mostly in programmer's head and subsequent arithmetic operations). So coming back to your question the multiplier would be a 16 x 16 multiplier and would be same in both the cases.
> Thanks. > Regards > Nitin
Sachin Gupta wrote:

(snip)
> Better in what sense - precision or range ?
>>(1.)Signed A(9,6) presentation as per Randy Yates's >>Fixed point article >>(total 16 bits: 9 bits for integer and 6 bits for fractional part) >> >>Or >>(2.) Signed A(0,15) presentation (Total 16 bits: No bits for integer >>and 15 bits for fractional part).
I would call both 15 bits of precision with a different scale factor. Yes, the range is also different.
> Both are equally intensive as they both contain 15 bits which have to > be manipulated. A(9,6) has more range while A(0,15) has more > precision. Your design and input data range as well as your signal > processing requirements will govern which format to use.
>>The objective is to implement FFT in silicon. Also which fixed point >>arithmetic is more intensive (Or both are equally intensive). What I >>intend to know is if I implement a A(9,6) x A (9,6) multiplier, is it >>more complex than a A(0,15) x A(0,15) Multiplier in hardware.
> A fixed point multiplier is well a fixed point multiplier. I don't > know whether you realise it but there is no decimal point. So a A(9,6) > x A(9,6) result is exactly equal to A(0,15) x A(0,15) result (provided > A's are same). The difference lies in how the result is interpreted > (mostly in programmer's head and subsequent arithmetic operations).
> So coming back to your question the multiplier would be a 16 x 16 > multiplier and would be same in both the cases.
Well, a general 16x16 multiplies has a 32 bit product. The question, then, is which bits do you use? If you use all 32 then they are the same. If you use a subset of the bits, then the desired subset may depend on the scale factors. Though it is only the sum of the scale factors that is important. The bit by bit result from multiplying (9,6) by (0,15) is the same as (0,15) by (9,6) or (2,13) by (7,8). Multiply the bits as integers and shift the binary point left by the sum of the scale factors, just like in decimal. -- glen
In article <d2308724.0403221956.592997a9@posting.google.com>,
Sachin Gupta <scngupta@yahoo.com> wrote:
>A fixed point multiplier is well a fixed point multiplier. I don't >know whether you realise it but there is no decimal point. So a A(9,6) >x A(9,6) result is exactly equal to A(0,15) x A(0,15) result (provided >A's are same).
Not after any rounding or perhaps saturation required to return the result in either the original A(0,15) or A(9,6) format. IMHO. YMMV. -- Ron Nicholson rhn AT nicholson DOT com http://www.nicholson.com/rhn/ #include <canonical.disclaimer> // only my own opinions, etc.