Module rpps.sync.costas
Classes
class Costas (alpha, beta, order=2)-
Expand source code
class Costas: __slots__ = ( "alpha", "beta", "err_func", "freq", "pha" ) def __init__(self, alpha, beta, order=2): self.alpha = alpha self.beta = beta if order == 2: self.err_func = _o2 elif order == 4: self.err_func = _o4 self.pha = 0.0 self.freq = 0.0 def burst(self, meta: Meta): out = np.zeros(len(meta.obj), dtype=meta.obj.dtype) for i, sym in enumerate(meta.obj): out[i] = self.run(sym) meta.obj = out return meta def run(self, sym): out = sym * np.exp(-1j*self.pha) error = self.err_func(out) self.freq += (self.beta * error) self.pha += self.freq + (self.alpha * error) # while self.pha >= 2*np.pi: # self.pha -= 2*np.pi # while self.pha < 0: # self.pha += 2*np.pi return outInstance variables
var alpha-
Expand source code
class Costas: __slots__ = ( "alpha", "beta", "err_func", "freq", "pha" ) def __init__(self, alpha, beta, order=2): self.alpha = alpha self.beta = beta if order == 2: self.err_func = _o2 elif order == 4: self.err_func = _o4 self.pha = 0.0 self.freq = 0.0 def burst(self, meta: Meta): out = np.zeros(len(meta.obj), dtype=meta.obj.dtype) for i, sym in enumerate(meta.obj): out[i] = self.run(sym) meta.obj = out return meta def run(self, sym): out = sym * np.exp(-1j*self.pha) error = self.err_func(out) self.freq += (self.beta * error) self.pha += self.freq + (self.alpha * error) # while self.pha >= 2*np.pi: # self.pha -= 2*np.pi # while self.pha < 0: # self.pha += 2*np.pi return out var beta-
Expand source code
class Costas: __slots__ = ( "alpha", "beta", "err_func", "freq", "pha" ) def __init__(self, alpha, beta, order=2): self.alpha = alpha self.beta = beta if order == 2: self.err_func = _o2 elif order == 4: self.err_func = _o4 self.pha = 0.0 self.freq = 0.0 def burst(self, meta: Meta): out = np.zeros(len(meta.obj), dtype=meta.obj.dtype) for i, sym in enumerate(meta.obj): out[i] = self.run(sym) meta.obj = out return meta def run(self, sym): out = sym * np.exp(-1j*self.pha) error = self.err_func(out) self.freq += (self.beta * error) self.pha += self.freq + (self.alpha * error) # while self.pha >= 2*np.pi: # self.pha -= 2*np.pi # while self.pha < 0: # self.pha += 2*np.pi return out var err_func-
Expand source code
class Costas: __slots__ = ( "alpha", "beta", "err_func", "freq", "pha" ) def __init__(self, alpha, beta, order=2): self.alpha = alpha self.beta = beta if order == 2: self.err_func = _o2 elif order == 4: self.err_func = _o4 self.pha = 0.0 self.freq = 0.0 def burst(self, meta: Meta): out = np.zeros(len(meta.obj), dtype=meta.obj.dtype) for i, sym in enumerate(meta.obj): out[i] = self.run(sym) meta.obj = out return meta def run(self, sym): out = sym * np.exp(-1j*self.pha) error = self.err_func(out) self.freq += (self.beta * error) self.pha += self.freq + (self.alpha * error) # while self.pha >= 2*np.pi: # self.pha -= 2*np.pi # while self.pha < 0: # self.pha += 2*np.pi return out var freq-
Expand source code
class Costas: __slots__ = ( "alpha", "beta", "err_func", "freq", "pha" ) def __init__(self, alpha, beta, order=2): self.alpha = alpha self.beta = beta if order == 2: self.err_func = _o2 elif order == 4: self.err_func = _o4 self.pha = 0.0 self.freq = 0.0 def burst(self, meta: Meta): out = np.zeros(len(meta.obj), dtype=meta.obj.dtype) for i, sym in enumerate(meta.obj): out[i] = self.run(sym) meta.obj = out return meta def run(self, sym): out = sym * np.exp(-1j*self.pha) error = self.err_func(out) self.freq += (self.beta * error) self.pha += self.freq + (self.alpha * error) # while self.pha >= 2*np.pi: # self.pha -= 2*np.pi # while self.pha < 0: # self.pha += 2*np.pi return out var pha-
Expand source code
class Costas: __slots__ = ( "alpha", "beta", "err_func", "freq", "pha" ) def __init__(self, alpha, beta, order=2): self.alpha = alpha self.beta = beta if order == 2: self.err_func = _o2 elif order == 4: self.err_func = _o4 self.pha = 0.0 self.freq = 0.0 def burst(self, meta: Meta): out = np.zeros(len(meta.obj), dtype=meta.obj.dtype) for i, sym in enumerate(meta.obj): out[i] = self.run(sym) meta.obj = out return meta def run(self, sym): out = sym * np.exp(-1j*self.pha) error = self.err_func(out) self.freq += (self.beta * error) self.pha += self.freq + (self.alpha * error) # while self.pha >= 2*np.pi: # self.pha -= 2*np.pi # while self.pha < 0: # self.pha += 2*np.pi return out
Methods
def burst(self,
meta: Meta)-
Expand source code
def burst(self, meta: Meta): out = np.zeros(len(meta.obj), dtype=meta.obj.dtype) for i, sym in enumerate(meta.obj): out[i] = self.run(sym) meta.obj = out return meta def run(self, sym)-
Expand source code
def run(self, sym): out = sym * np.exp(-1j*self.pha) error = self.err_func(out) self.freq += (self.beta * error) self.pha += self.freq + (self.alpha * error) # while self.pha >= 2*np.pi: # self.pha -= 2*np.pi # while self.pha < 0: # self.pha += 2*np.pi return out