def bits_to_samples(bits,samples_per_bit, npreamble=0, npostamble=0, v0 = 0.0, v1 = 1.0, repeat = 1): """ generate sequence of voltage samples: bits: binary message sequence npreamble: number of leading v0 samples npostamble: number of trailing v0 samples samples_per_bit: number of samples for each message bit v0: voltage to output for 0 bits v1: voltage to output for 1 bits repeat: how many times to repeat whole shebang """ # Default to all v0's samples = [v0]*(npreamble + len(bits)*samples_per_bit + npostamble) index = npreamble one_bit_samples = [v1]*samples_per_bit for i in range(len(bits)): next_index = index + samples_per_bit if bits[i] == 1: samples[index:next_index] = one_bit_samples index = next_index return samples*repeat