def plotInitialization(chunk, rate=96000.0): # Decode the initialization chunk settings = an.decodeInitialization(chunk, rate) data = np.array(chunk) pulses = 1000000.0 * tools.findPulses(chunk) / rate data = data / np.max(data) time = 1000000.0 * np.array(range(len(data))) / rate pl.figure() pl.plot(time, data) for i in range(len(pulses)-1): annotateDist(pulses[i], pulses[i+1], 1.0, '$%.1f\mu s$' % (pulses[i+1]-pulses[i])) annotateDist(pulses[0], pulses[2], 1.1, 'Channel %u' % settings['channel']) annotateDist(pulses[2], pulses[5], 1.1, 'Start group settings') pos = 5 groups = settings['group'] for i in range(len(groups)-1): if groups[i] == 0: annotateDist(pulses[pos], pulses[pos+1], 1.1, 'Group %c: Off' % chr(65 + i)) pos += 1 else: annotateDist(pulses[pos], pulses[pos+3], 1.1, 'Group %c: On' % chr(65 + i)) pos += 3 annotateDist(pulses[pos], pulses[pos+2], 1.1, 'Group %c: On (last)' % chr(65 + len(groups) - 1)) limits = pl.axis() pl.axis([limits[0], limits[1], limits[2], 1.2]) pl.xlabel('time / $\mu$s') pl.ylabel('Light intensity') pl.title('Example decoding of an initialization block') pl.show()
def plotInitialization(chunk, rate=96000.0): # Decode the initialization chunk settings = an.decodeInitialization(chunk, rate) data = np.array(chunk) pulses = 1000000.0 * tools.findPulses(chunk) / rate data = data / np.max(data) time = 1000000.0 * np.array(range(len(data))) / rate pl.figure() pl.plot(time, data) for i in range(len(pulses) - 1): annotateDist(pulses[i], pulses[i + 1], 1.0, '$%.1f\mu s$' % (pulses[i + 1] - pulses[i])) annotateDist(pulses[0], pulses[2], 1.1, 'Channel %u' % settings['channel']) annotateDist(pulses[2], pulses[5], 1.1, 'Start group settings') pos = 5 groups = settings['group'] for i in range(len(groups) - 1): if groups[i] == 0: annotateDist(pulses[pos], pulses[pos + 1], 1.1, 'Group %c: Off' % chr(65 + i)) pos += 1 else: annotateDist(pulses[pos], pulses[pos + 3], 1.1, 'Group %c: On' % chr(65 + i)) pos += 3 annotateDist(pulses[pos], pulses[pos + 2], 1.1, 'Group %c: On (last)' % chr(65 + len(groups) - 1)) limits = pl.axis() pl.axis([limits[0], limits[1], limits[2], 1.2]) pl.xlabel('time / $\mu$s') pl.ylabel('Light intensity') pl.title('Example decoding of an initialization block') pl.show()
#wavs.append(al.wavread("Samples/Ch1_G1_AA-3.0_NoMaster_NoFlashPresent_d7000.wav")[0][:,0]) #wavs.append(al.wavread("Samples/Ch1_G1_AA_0_NoMaster_NoFlashPresent_d7000.wav")[0][:,0]) wavs.append(tools.normalize(al.wavread("Samples/Ch1_G1_AA+3.0_NoMaster_NoFlashPresent_d7000.wav")[0][:,0])) wavs.append(tools.normalize(al.wavread("Samples/Ch1_G1_TTL_0_G2_TTL_0_NoMaster_NoFlashPresent_d7000.wav")[0][:,0])) wavs.append(tools.normalize(al.wavread("Samples/Ch1_G1_TTL_0_G2_TTL_0_G3_TTL_0_NoMaster_NoFlashPresent_d7000.wav")[0][:,0])) wavs.append(tools.normalize(al.wavread("Samples/Ch1_G1_M32_G2_TTL_0_G3_TTL_0_NoMaster_NoFlashPresent_sb900.wav")[0][:,0])) wavs.append(tools.normalize(al.wavread("Samples/Ch1_G1_M32_G2_M32_G3_TTL_0_NoMaster_NoFlashPresent_sb900.wav")[0][:,0])) wavs.append(tools.normalize(al.wavread("Samples/Ch1_G1_M32_G2_TTL_0_G3_M32_NoMaster_NoFlashPresent_sb900.wav")[0][:,0])) wavs.append(tools.normalize(al.wavread("Samples/Ch1_G1_TTL_0_G2_M32_G3_M32_NoMaster_NoFlashPresent_sb900.wav")[0][:,0])) N = len(wavs); # Extract the second chunk of every data block chunks = [tools.findChunks(wav, 2500.0, 0.1) for wav in wavs] bl2 = [wav[c[1].start:c[1].end] for (wav, c) in zip(wavs, chunks)] td2 = [tools.findTdiffs(bl) for bl in bl2] pl2 = [tools.findPulses(bl) for bl in bl2] plnorm = [p - p[0] for p in pl2] pl.plot(wavs[-1]) pl.show() # Group pulses corr = tools.groupPulses(plnorm) # Plot result pl.figure() pl.hold(True) for i in range(N): pl.plot(corr[i], i * np.ones(len(corr[i])), 'bx') pl.show()