Use 4 carriers wit QAM16 to achieve 16kbps.

This commit is contained in:
Roman Zeyde
2014-06-21 12:55:36 +03:00
parent 5c6304823d
commit fbbc404b45
7 changed files with 71 additions and 49 deletions

View File

@@ -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):