twiddle_factors.py
30 lines
| 753 B
| text/x-python
|
PythonLexer
|
r2 | # exp( - j 2 pi k / N ) = W^k_N | ||
from math import exp, cos, sin, pi | ||||
class TwiddleFactors(object): | ||||
"""docstring for TwiddleFactors""" | ||||
def __init__(self, N): | ||||
super (TwiddleFactors, self).__init__() | ||||
self.N = N | ||||
|
r3 | self.w = [] | ||
self.w_int = [] | ||||
|
r2 | |||
def build_twiddle_factors(self): | ||||
w = [] | ||||
for k in range( self.N / 2 ): | ||||
teta = - 2 * pi * k / self.N | ||||
w.append( cos ( teta ) + 1j * sin( teta ) ) | ||||
|
r3 | self.w = w[:] | ||
|
r2 | return w | ||
|
r3 | |||
def twiddle_factors_dot_vhd_generation(self): | ||||
print 'size of w = ', len(self.w) | ||||
nb_bits = 16 | ||||
print self.w | ||||
for k in range( self.N / 2 ): | ||||
w_int_re = int(self.w[k].real * 2**(nb_bits-1)) | ||||
w_int_im = int(self.w[k].imag * 2**(nb_bits-1)) | ||||
self.w_int.append( w_int_re + 1j * w_int_im ) | ||||
print self.w_int | ||||
pass | ||||