mirror of
https://github.com/romanz/amodem.git
synced 2026-04-14 18:25:58 +08:00
Use 4 carriers wit QAM16 to achieve 16kbps.
This commit is contained in:
18
common.py
18
common.py
@@ -7,32 +7,26 @@ log = logging.getLogger(__name__)
|
||||
Fs = 32e3
|
||||
Ts = 1.0 / Fs
|
||||
|
||||
Fc = 9e3
|
||||
frequencies = (np.arange(4) + 8) * 1e3
|
||||
carrier_index = len(frequencies)/2
|
||||
Fc = frequencies[carrier_index]
|
||||
Tc = 1.0 / Fc
|
||||
|
||||
Tsym = 1e-3
|
||||
Nsym = int(Tsym / Fs)
|
||||
|
||||
F0 = Fc
|
||||
F1 = Fc + 1e3
|
||||
Nsym = int(Tsym / Ts)
|
||||
baud = int(1/Tsym)
|
||||
|
||||
scaling = 10000.0
|
||||
scaling = 32000.0 # out of 2**15
|
||||
SATURATION_THRESHOLD = 1.0
|
||||
|
||||
LENGTH_FORMAT = '<I'
|
||||
|
||||
def pack(data):
|
||||
log.info('Sending {} bytes'.format(len(data)))
|
||||
data = struct.pack(LENGTH_FORMAT, len(data)) + data
|
||||
return data
|
||||
|
||||
def unpack(data):
|
||||
length_size = struct.calcsize(LENGTH_FORMAT)
|
||||
length, data = data[:length_size], data[length_size:]
|
||||
length, = struct.unpack(LENGTH_FORMAT, length)
|
||||
data = data[:length]
|
||||
log.info('Decoded {} bytes, leftover: {}'.format(len(data), len(data)-length))
|
||||
log.info('Received {} bytes'.format(len(data)))
|
||||
return data
|
||||
|
||||
def to_bits(chars):
|
||||
|
||||
Reference in New Issue
Block a user