gnupic: Re: [gnupic] Is 16-bit floating point library available ?
Subject:
Re: [gnupic] Is 16-bit floating point library available ?
From:
Vaclav ####@####.####
Date:
14 May 2009 14:33:47 -0000
Message-Id: <4549.6098-25800-192877430-1242311618@seznam.cz>
Hi Scott,
>
> > I'd like to implement fast Goertzel DFT algorithm over the data from
> > 12-bit ADC and 32-bit seems to me overkill.
>
> What are you trying to do that requires the Goertzel algorithm? Do you
> need to detect a tone in the presence of noise?
Yes, I need to detect amplitude and phase of the sinus signal generated in PIC and then going through the device back to ADC.
> It may be possible (depending on your application) to use quadrature
> square waves instead of sines and cosines. For example, the frequency
> you're trying to measure has a period T. Break T into for quadrants. Find
> the sum of your input signal over each quadrant. The sum of the first two
> quadrants minus the sum of the last two is like multiplying by a sine wave
> (quantized to 1,-1). Similarly, the sum of the middle two quadrants minus
> the sum of the first and last quadrant is like multiplying by a cosine.
>
> If square waves are too coarse, then you can break the interval into 8'ths
> or 16'ths and use quantized sines and cosines (i.e. 3 or 4 level steps)
Is it something like quadrature demodulation ? It can be interesting idea as well. I plan to have 8 samples per period.
Then I can use just sqrt(I^2 + Q^2) for amplitude and atan(I/Q) for phase, correct ? For 12bit ADC it seems to me that 16 bits for registers is enough.
I need to evaluate it somehow to find if such method fulfills my accuracy requirements. I simulated Goertzel and 8 samples were sufficient for me.
Another idea was to use fixed point arithmetics 8-bit point 8-bit and rescale ADC values. But I-Q method is still simpler.
Thank you,
Vasek