From: Eric Jacobsen on
On 11/18/2009 9:34 AM, rickman wrote:
> On Nov 18, 11:18 am, Eric Jacobsen<eric.jacob...(a)ieee.org> wrote:
>> Apparently a recent technology blog somewhere was decrying the horrors
>> that one of the new high-capability smart phones only has 256 megabytes
>> of FLASH memory for user application storage, and clearly that was not
>> enough.
>
> And yet, they limit the text message storage to 150 messages on my
> phone! Maybe they *do* need more than 256 MB of storage... ;^)
>
> Rick

Yeah, I don't get it. It seems like nobody takes a system view of this
stuff, at least not in the favor of the user.

Another interesting marker of how the priorities have changed is the
attitude conveyed in that old movie 'Tron' that "User" was God-like,
revered, spoken of in hushed tones, and the ultimate customer to be
pleased by all of the resources in the computer. Programmers today
should be forced to watch that until it sinks in, because I don't think
people have taken that approach for at least twenty years.

--
Eric Jacobsen
Minister of Algorithms
Abineau Communications
http://www.abineau.com
From: gretzteam on

>Do like Glen said, and hard-code one location.
>
>Or store values at half-locations, i.e. pi * (1/2048, 3/2048 ...
>2047/2048). Not only does this now wrap nicer, but you never have to
>deal with 1 -- just 0.9999997.
>


Hi again!
Might have been a little too fast on the 'I got it' part! I lost another
day on this since playing with the phase only fixes half the problem!

Like you said, storing only 'half locations', is the way to avoid having
to store 1.0. We basically 'jump' over it, so that we only need the value
'before' and 'after' sin(pi/2). That works well.

Now, there is a similar problem with the data quantization side. It's not
as obvious since the error is usually only 1-lsb so I totally missed it in
the beginning. Basically, if we only store 1/4 of the sine wave, we will
never store 1.0. This is fine for the positive side of the cycle, but is
wrong for the negative side of the cycle, since two's complement is not
'symmetric'! The full ROM would have some -1.0 in there, no matter of we're
'jumping' over it with the phase trick mentioned above!

The only way I could find to fix this is to substract 1/2 lsb to the
amplitude of the sine wave BEFORE quantization. Then, in the 3 and 4th
quadrant, negating all the bits of the ROM output will do the job.

Does this sound correct?

Thanks!
Dave