mirror of
https://github.com/romanz/amodem.git
synced 2026-04-20 13:16:42 +08:00
recv: fix equalizer training
This commit is contained in:
@@ -127,18 +127,22 @@ class Receiver(object):
|
|||||||
return freq_err
|
return freq_err
|
||||||
|
|
||||||
def _train(self, sampler, order, lookahead):
|
def _train(self, sampler, order, lookahead):
|
||||||
|
gain = config.Nfreq
|
||||||
train_symbols = equalizer.train_symbols(train.equalizer_length)
|
train_symbols = equalizer.train_symbols(train.equalizer_length)
|
||||||
|
train_signal = equalizer.modulator(train_symbols) * gain
|
||||||
|
|
||||||
prefix = postfix = train.silence_length * config.Nsym
|
prefix = postfix = train.silence_length * config.Nsym
|
||||||
signal_length = train.equalizer_length * config.Nsym + prefix + postfix
|
signal_length = train.equalizer_length * config.Nsym + prefix + postfix
|
||||||
|
|
||||||
signal = sampler.take(signal_length + lookahead)
|
signal = sampler.take(signal_length + lookahead)
|
||||||
|
|
||||||
coeffs = equalizer.equalize_symbols(
|
coeffs = equalizer.equalize_signal(
|
||||||
signal=signal[prefix:-postfix],
|
signal=signal[prefix:-postfix],
|
||||||
symbols=train_symbols,
|
expected=train_signal,
|
||||||
order=order, lookahead=lookahead
|
order=order, lookahead=lookahead
|
||||||
)
|
)
|
||||||
|
|
||||||
|
log.debug('Equalization filter: [%s]', ', '.join('{:.2f}'.format(c) for c in coeffs))
|
||||||
equalization_filter = dsp.FIR(h=coeffs)
|
equalization_filter = dsp.FIR(h=coeffs)
|
||||||
equalized = list(equalization_filter(signal))
|
equalized = list(equalization_filter(signal))
|
||||||
equalized = equalized[prefix+lookahead:-postfix+lookahead]
|
equalized = equalized[prefix+lookahead:-postfix+lookahead]
|
||||||
|
|||||||
Reference in New Issue
Block a user