print '\tChannel type:', ('Audio' if not opt.bypass else 'Bypass') if opt.bypass: print '\t Noise:', opt.noise, ' lag:', opt.lag, 'h: [', opt.h, ']' print '\tFrequency:', fc, 'Hz' print '\tHamming code n :', opt.cc_len ######################################################## #instantiate and run the source block src = Source(opt.monotone, opt.fname) src_payload, databits = src.process() # instantiate and run the transmitter block xmitter = Transmitter(fc, opt.samplerate, opt.one, opt.spb, opt.silence, opt.cc_len) coded_bits = xmitter.encode(databits) coded_bits_with_preamble = xmitter.add_preamble(coded_bits) samples = xmitter.bits_to_samples(coded_bits_with_preamble) mod_samples = xmitter.modulate(samples) #################################### # create channel instance if opt.bypass: h = [float(x) for x in opt.h.split(' ')] channel = bch.BypassChannel(opt.noise, opt.lag, h) else: channel = ach.AudioChannel(opt.samplerate, opt.chunksize, opt.prefill) # transmit the samples, and retrieve samples back from the channel try: samples_rx = channel.xmit_and_recv(mod_samples) except ZeroDivisionError: # should only happen for audio channel
print '\tSamples per bit:', opt.spb print '\tChannel type:', ('Audio' if not opt.bypass else 'Bypass') if opt.bypass: print '\t Noise:', opt.noise, ' lag:', opt.lag, 'h: [', opt.h, ']' print '\tFrequency:', fc, 'Hz' ######################################################## #instantiate and run the source block src = Source(opt.monotone, opt.fname) src_payload, databits = src.process() # instantiate and run the transmitter block xmitter = Transmitter(fc, opt.samplerate, opt.one, opt.spb, opt.silence) databits_with_preamble = xmitter.add_preamble(databits) samples = xmitter.bits_to_samples(databits_with_preamble) mod_samples = xmitter.modulate(samples) #################################### # create channel instance if opt.bypass: h = [float(x) for x in opt.h.split(' ')] channel = bch.BypassChannel(opt.noise, opt.lag, h) else: channel = ach.AudioChannel(opt.samplerate, opt.chunksize, opt.prefill) # transmit the samples, and retrieve samples back from the channel try: samples_rx = channel.xmit_and_recv(mod_samples) except ZeroDivisionError: # should only happen for audio channel