Yesterday I wrote
> 
> Could I suggest that the maximum convolution error is likely to occur
> when whole blocks of bits are 1, thus forcing large integers into the
> transform so that rounding/truncation errors are most likely to occur.
> 
> Consider the LL test algorithm x' = (x^2 - 2) (mod 2^p - 1)
> 
> If x = 1, then x' = -1, x'' = +1, x''' = -1, etc, etc, for all values

Aaarrghhh! I think I must have consumed too much Old Bushmills 
brain solvent ... x = 1, x' = x'' = x''' = -1 ... 8*)

> of p. And -1 (mod 2^p - 1) = (2^p - 2) (mod 2^p -1). Furthermore
> 2^p - 2 = 2 * (2^(p-1) - 1), a number which contains (p-1) consecutive
> 1 bits.

Fortunately my error does not affect this argument.
> 
> So running a couple of iterations of the LL test algorithm starting
> at 1 (instead of 4), looking at the max convolution error and checking
> that the value of the residual after 2 iterations is 1, might be
> instructive ... ?

Well, I tried it using a modified version of Richard Crandall's generic 
C program lucdwt. Starting with 1 instead of 4 gives the correct 
residual 0xFFFFFFFFFFFFFFFE (-1 mod (2^p-1)) for all iterations 
and with _zero_ error, provided the transform size > p/32.

So, almost all zero bits and almost all one bits are both very easy 
on the transform.

Is it possible to generate "worst case" data, and, if so, would 
anyone care to suggest what it might be? e.g. I remember we used 
to fill space with 0xE5 on FM disks, or 0x6DB6 on MFM disks, 
because these bit patterns were particularly difficult for the 
hardware to cope with - thus, if the test pattern was reliable, the 
data should be safe.

Bearing in mind the strong links between signal processing and 
Fourier transforms, this illustration may possibly be not entirely 
without relevance.

My feeling is that running the LL test itself, starting at 4, is 
probably as effective a way as any of pseudo-randomly generating 
bit patterns for the purpose of testing the FFT logic, unless 
someone can demonstrate a better method. (Of course it takes a 
few iterations for the mod 2^p-1 to "kick in" and start to 
"randomize" the bit pattern - but after less than 50 iterations the 
initial conditions have been well and truly obfuscated)



Regards
Brian Beesley
________________________________________________________________
Unsubscribe & list info -- http://www.scruz.net/~luke/signup.htm

Reply via email to