def testDeconvolver(channel,noise=0.): # generates a random 8 bit message message = lab2_5.randomMessage(100) # generates samples from the bit sequence inp = numpy.array(lab2_1.transmit(message,0,100)) # passes the samples through channel out = channel(inp,noise) # uses the deconvolver to reconstruct the input dMessage = deconvolver(out,lab2_3.unit_sample_response(channel)) p.figure() # plot p.suptitle('Random Message through '+channel.__name__,fontsize = 20,fontweight='bold') plot_samples(311, inp, len(inp), -.1, 1.1, 'Input') plot_samples(312, out, len(out), -.1, 1.1, 'Output', 'g-') plot_samples(313, dMessage, len(dMessage), -.1, 1.1, 'Deonvolved Result', 'r-') p.subplots_adjust(hspace=0.5) if noise == 0.: p.savefig(channel.__name__+'Deconvolution.png') else: p.savefig(channel.__name__+'Noise'+str(noise)+'Deconvolution.png') p.clf()
def predictChannelOutput(channel): message = [1,0,1,0,1,0,1,0] return convolutionSum(lab2_1.transmit(message,10,100),lab2_3.unit_sample_response(channel))