Module rpps.sync.time.ed.zx
Zero-crossing TED - This requires SPS>=2 - Carrier independent
Functions
def zx_nd(early, mid, late)-
Expand source code
def zx_nd(early, mid, late): """Gardner TED early, (mTm) : near-peak sample (current symbol) mid, (mTm + Tm/2) : near-zero sample late, ((m+1)Tm) : near-peak sample (next symbol) """ return mid*(np.conj(early) - np.conj(late))Gardner TED early, (mTm) : near-peak sample (current symbol) mid, (mTm + Tm/2) : near-zero sample late, ((m+1)Tm) : near-peak sample (next symbol)
Classes
class ZX_ND-
Expand source code
class ZX_ND(TED_ND): iSPS = 2 Inputs = 3 Lookahead = False Derivative = False def run(self): """ samples[0] = late, ((m+1)Tm) : near-peak sample (next symbol) samples[1] = mid, (mTm + Tm/2) : near-zero sample samples[2] = early, (mTm) : near-peak sample (current symbol) """ r_term = (self.samples[2].real - self.samples[0].real) * self.samples[1].real i_term = (self.samples[2].imag - self.samples[0].imag) * self.samples[1].imag return r_term + i_termAncestors
- rpps.sync.time.ed._ed.TED_ND
- rpps.sync.time.ed._ed._TED
Class variables
var Derivativevar Inputsvar Lookaheadvar iSPS
Methods
def run(self)-
Expand source code
def run(self): """ samples[0] = late, ((m+1)Tm) : near-peak sample (next symbol) samples[1] = mid, (mTm + Tm/2) : near-zero sample samples[2] = early, (mTm) : near-peak sample (current symbol) """ r_term = (self.samples[2].real - self.samples[0].real) * self.samples[1].real i_term = (self.samples[2].imag - self.samples[0].imag) * self.samples[1].imag return r_term + i_termsamples[0] = late, ((m+1)Tm) : near-peak sample (next symbol) samples[1] = mid, (mTm + Tm/2) : near-zero sample samples[2] = early, (mTm) : near-peak sample (current symbol)