diff options
Diffstat (limited to 'src/tools/cordic.py')
-rw-r--r-- | src/tools/cordic.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/tools/cordic.py b/src/tools/cordic.py new file mode 100644 index 000000000..6742c90df --- /dev/null +++ b/src/tools/cordic.py @@ -0,0 +1,33 @@ +# compute arctangent table for CORDIC computations in fttrigon.c +import sys, math + +#units = 64*65536.0 # don't change !! +units = 180 * 2**16 +scale = units/math.pi +shrink = 1.0 +comma = "" + +print "" +print "table of arctan( 1/2^n ) for PI = " + repr(units/65536.0) + " units" + +for n in range(1,32): + + x = 0.5**n # tangent value + + angle = math.atan(x) # arctangent + angle2 = round(angle*scale) # arctangent in FT_Angle units + + if angle2 <= 0: + break + + sys.stdout.write( comma + repr( int(angle2) ) ) + comma = ", " + + shrink /= math.sqrt( 1 + x*x ) + +print +print "shrink factor = " + repr( shrink ) +print "shrink factor 2 = " + repr( int( shrink * (2**32) ) ) +print "expansion factor = " + repr( 1/shrink ) +print "" + |