mirror of
https://github.com/romanz/amodem.git
synced 2026-04-20 04:56:25 +08:00
dsp: remove buffering from MODEM.decode()
This commit is contained in:
@@ -72,8 +72,6 @@ def linear_regression(x, y):
|
|||||||
|
|
||||||
class MODEM(object):
|
class MODEM(object):
|
||||||
|
|
||||||
buf_size = 16
|
|
||||||
|
|
||||||
def __init__(self, symbols):
|
def __init__(self, symbols):
|
||||||
self.encode_map = {}
|
self.encode_map = {}
|
||||||
symbols = np.array(list(symbols))
|
symbols = np.array(list(symbols))
|
||||||
@@ -101,14 +99,13 @@ class MODEM(object):
|
|||||||
''' Maximum-likelihood decoding, using naive nearest-neighbour. '''
|
''' Maximum-likelihood decoding, using naive nearest-neighbour. '''
|
||||||
symbols_vec = self.symbols
|
symbols_vec = self.symbols
|
||||||
_dec = self.decode_list
|
_dec = self.decode_list
|
||||||
for syms in common.iterate(symbols, self.buf_size, truncate=False):
|
for received in symbols:
|
||||||
for received in syms:
|
error = np.abs(symbols_vec - received)
|
||||||
error = np.abs(symbols_vec - received)
|
index = np.argmin(error)
|
||||||
index = np.argmin(error)
|
decoded, bits = _dec[index]
|
||||||
decoded, bits = _dec[index]
|
if error_handler:
|
||||||
if error_handler:
|
error_handler(received=received, decoded=decoded)
|
||||||
error_handler(received=received, decoded=decoded)
|
yield bits
|
||||||
yield bits
|
|
||||||
|
|
||||||
|
|
||||||
def prbs(reg, poly, bits):
|
def prbs(reg, poly, bits):
|
||||||
|
|||||||
Reference in New Issue
Block a user