<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Oct 6, 2013 at 9:59 PM, Fons Adriaensen <span dir="ltr"><<a href="mailto:fons@linuxaudio.org" target="_blank">fons@linuxaudio.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
#!/usr/bin/python<br>
<br>
from math import *<br>
<br>
<br>
X = [ 0.00,  0.70,  1.30,  2.00,  2.70,  3.25,  4.00,  4.65,  5.15,  5.85,<br>
      6.35,  6.95,  7.40,  7.95,  8.30,  8.75,  9.10,  9.55, 10.00, 10.25,<br>
     10.55, 10.90, 11.20, 11.53, 11.70, 11.40, 10.98, 10.10,  9.10,  8.00,<br>
      6.90,  5.75,  4.45,  3.20,  2.10,  1.01,  0.00, -1.00, -1.98, -2.90,<br>
     -3.70, -4.25, -5.00, -5.60, -6.10, -6.60, -7.02, -7.35, -7.80, -8.00,<br>
     -8.15, -8.30, -8.40, -8.46, -8.50, -8.50, -8.47, -8.45, -8.27, -8.10,<br>
     -7.99, -7.80, -7.55, -7.25, -7.00, -6.67, -6.35, -6.05, -5.65, -5.30,<br>
     -4.98, -4.50, -4.05, -3.60, -3.05, -2.60, -2.00, -1.45, -0.80 ]<br>
<br>
N = len(X)<br>
<br>
def analyse(f):<br>
    sx = 0<br>
    sy = 0<br>
    w = f * 2 * pi / N<br>
    for i in range(N):<br>
        sx += X [i] * sin (i * w)<br>
        sy += X [i] * cos (i * w)<br>
    m = hypot (sx, sy)<br>
    a = atan2(sy, sx) * 180 / pi<br>
    return m, a<br>
<br>
<br>
for i in range (1, 11):<br>
    m, a = analyse (i)<br>
    if i == 1: m1 = m<br>
    print ("%3d %10.3f %8.1f" % (i, m / m1, a))<br>
</blockquote><div><br></div><div>Wauw, that's a golden nugget of Python! Cheers, -Harry<br></div><div> </div></div></div></div>