1
2
3 """A little program to check that voice_misc._fftwork() is correct."""
4
5
6 from gpk_voicing import voice_misc
7 import numpy
8 import pylab
9 import time
10
11
12 -def plot(start, end):
13 x = []
14 y = []
15 z = []
16 ws = 0.0
17 ts = 0.0
18 for n in range(start, end):
19 x.append(n)
20 w = voice_misc._fftwork_real(n)
21
22 y.append(w)
23 q = numpy.zeros((n,))
24 k = 0
25 t0 = time.clock()
26 while time.clock() < t0 + 0.1:
27
28 s = numpy.fft.rfft(q)
29 numpy.fft.irfft(s)
30 k += 1
31 t1 = time.clock()
32 dt = (t1-t0)/k
33 z.append(dt)
34 ts += dt
35 ws += w
36 wscaled = [w*(ts/ws) for w in y]
37 pylab.plot(x, wscaled, 'g')
38 pylab.plot(x, z, 'r+')
39 pylab.show()
40
41
42 if __name__ == '__main__':
43 plot(127, 257)
44