train: remove unneeded file

This commit is contained in:
Roman Zeyde
2015-01-09 21:57:22 +02:00
parent 5bf2d0f566
commit fd8dc1d8b7
6 changed files with 23 additions and 22 deletions

View File

@@ -6,7 +6,7 @@ import collections
log = logging.getLogger(__name__)
from . import dsp
from . import train
from . import equalizer
from . import common
@@ -14,7 +14,7 @@ class Detector(object):
COHERENCE_THRESHOLD = 0.9
CARRIER_DURATION = sum(train.prefix)
CARRIER_DURATION = sum(equalizer.prefix)
CARRIER_THRESHOLD = int(0.9 * CARRIER_DURATION)
SEARCH_WINDOW = int(0.1 * CARRIER_DURATION)

View File

@@ -58,3 +58,8 @@ def train(signal, expected, order, lookahead=0):
h = lstsq(A, b)[0]
h = h[::-1].real
return h
prefix = [1]*400 + [0]*50
equalizer_length = 500
silence_length = 100

View File

@@ -9,7 +9,6 @@ log = logging.getLogger(__name__)
from . import stream
from . import dsp
from . import sampling
from . import train
from . import common
from . import framing
from . import equalizer
@@ -33,7 +32,7 @@ class Receiver(object):
self.output_size = 0 # number of bytes written to output stream
def _prefix(self, symbols, gain=1.0, skip=5):
S = common.take(symbols, len(train.prefix))
S = common.take(symbols, len(equalizer.prefix))
S = S[:, self.carrier_index] * gain
sliced = np.round(np.abs(S))
self.plt.figure()
@@ -43,13 +42,13 @@ class Receiver(object):
bits = np.array(sliced, dtype=int)
self.plt.subplot(122)
self.plt.plot(np.abs(S))
self.plt.plot(train.prefix)
if any(bits != train.prefix):
self.plt.plot(equalizer.prefix)
if any(bits != equalizer.prefix):
raise ValueError('Incorrect prefix')
log.debug('Prefix OK')
nonzeros = np.array(train.prefix, dtype=bool)
nonzeros = np.array(equalizer.prefix, dtype=bool)
pilot_tone = S[nonzeros]
phase = np.unwrap(np.angle(pilot_tone)) / (2 * np.pi)
indices = np.arange(len(phase))
@@ -68,11 +67,12 @@ class Receiver(object):
def _train(self, sampler, order, lookahead):
Nfreq = len(self.frequencies)
train_symbols = self.equalizer.train_symbols(train.equalizer_length)
equalizer_length = equalizer.equalizer_length
train_symbols = self.equalizer.train_symbols(equalizer_length)
train_signal = self.equalizer.modulator(train_symbols) * Nfreq
prefix = postfix = train.silence_length * self.Nsym
signal_length = train.equalizer_length * self.Nsym + prefix + postfix
prefix = postfix = equalizer.silence_length * self.Nsym
signal_length = equalizer_length * self.Nsym + prefix + postfix
signal = sampler.take(signal_length + lookahead)
@@ -92,7 +92,8 @@ class Receiver(object):
return equalization_filter
def _verify_training(self, equalized, train_symbols):
symbols = self.equalizer.demodulator(equalized, train.equalizer_length)
equalizer_length = equalizer.equalizer_length
symbols = self.equalizer.demodulator(equalized, equalizer_length)
sliced = np.array(symbols).round()
errors = np.array(sliced - train_symbols, dtype=np.bool)
error_rate = errors.sum() / errors.size

View File

@@ -4,8 +4,6 @@ import itertools
log = logging.getLogger(__name__)
from . import train
from . import common
from . import stream
from . import framing
@@ -20,7 +18,7 @@ class Sender(object):
self.modem = dsp.MODEM(config.symbols)
self.carriers = config.carriers / config.Nfreq
self.pilot = config.carriers[config.carrier_index]
self.silence = np.zeros(train.silence_length * config.Nsym)
self.silence = np.zeros(equalizer.silence_length * config.Nsym)
self.iters_per_report = config.baud # report once per second
self.padding = [0] * config.bits_per_baud
self.equalizer = equalizer.Equalizer(config)
@@ -32,10 +30,10 @@ class Sender(object):
self.offset += len(sym)
def start(self):
for value in train.prefix:
for value in equalizer.prefix:
self.write(self.pilot * value)
symbols = self.equalizer.train_symbols(train.equalizer_length)
symbols = self.equalizer.train_symbols(equalizer.equalizer_length)
signal = self.equalizer.modulator(symbols)
self.write(self.silence)
self.write(signal)

View File

@@ -1,3 +0,0 @@
prefix = [1]*400 + [0]*50
equalizer_length = 500
silence_length = 100

View File

@@ -4,14 +4,14 @@ import pytest
from amodem import dsp
from amodem import recv
from amodem import detect
from amodem import train
from amodem import equalizer
from amodem import sampling
from amodem import config
config = config.fastest()
def test_detect():
P = sum(train.prefix)
P = sum(equalizer.prefix)
t = np.arange(P * config.Nsym) * config.Ts
x = np.cos(2 * np.pi * config.Fc * t)
@@ -31,7 +31,7 @@ def test_detect():
def test_prefix():
omega = 2 * np.pi * config.Fc / config.Fs
symbol = np.cos(omega * np.arange(config.Nsym))
signal = np.concatenate([c * symbol for c in train.prefix])
signal = np.concatenate([c * symbol for c in equalizer.prefix])
def symbols_stream(signal):
sampler = sampling.Sampler(signal)