def plotChunks(data, chunks=None): # Plots given chunks over the data # If no chunks are given, will search for chunks if chunks == None: chunks = at.findChunks(data, 1000.0, 0.3) csig = np.zeros(chunks[-1].end) for chunk in chunks: csig[chunk.start:chunk.end] = 1 pdb.set_trace() pl.figure() pl.plot(data) pl.hold(True) pl.plot(csig, "r-") pl.show()
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() data = al.wavread( "Samples/Ch1_G1_M128_G3_M128_NoMaster_NoFlashPresent_sb900.wav")[0][:, 0] c = tools.findChunks(data, 100, 0.1) chunk = data[c[0].start:c[0].end] plotInitialization(chunk)
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() data = al.wavread("Samples/Ch1_G1_M128_G3_M128_NoMaster_NoFlashPresent_sb900.wav")[0][:,0] c = tools.findChunks(data, 100, 0.1) chunk = data[c[0].start:c[0].end] plotInitialization(chunk)
wavs = []; wavs.append(al.wavread("Samples/Ch1_G1_M128_NoMaster_NoFlashPresent_sb900.wav")[0][:,0]) wavs.append(al.wavread("Samples/Ch1_G2_M128_NoMaster_NoFlashPresent_sb900.wav")[0][:,0]) wavs.append(al.wavread("Samples/Ch1_G3_M128_NoMaster_NoFlashPresent_sb900.wav")[0][:,0]) wavs.append(al.wavread("Samples/Ch1_G1_M128_G2_M128_NoMaster_NoFlashPresent_sb900.wav")[0][:,0]) wavs.append(al.wavread("Samples/Ch1_G1_M128_G3_M128_NoMaster_NoFlashPresent_sb900.wav")[0][:,0]) wavs.append(al.wavread("Samples/Ch1_G2_M128_G3_M128_NoMaster_NoFlashPresent_sb900.wav")[0][:,0]) wavs.append(al.wavread("Samples/Ch1_G1_M128_G2_M128_G3_M128_NoMaster_NoFlashPresent_sb900.wav")[0][:,0]) N = len(wavs) chunks = []; bl1 = []; td1 = []; for wav in wavs: nc = tools.findChunks(wav, 1000.0, 0.1) chunks.append(nc) bl1.append(wav[nc[0].start:nc[0].end]); td1.append(tools.findTdiffs(bl1[-1])); # Calculate average tdiffs for the next three blocks tdb1 = 0.0 tdb2 = 0.0 tdb3 = 0.0 for td in td1: tdb1 = tdb1 + td[2] tdb2 = tdb2 + td[3] tdb3 = tdb3 + td[4] tdb1 = (tdb1 / N); tdb2 = (tdb2 / N);
#wavs.append(al.wavread("Samples/Ch1_G1_TTL-2.7_NoMaster_NoFlashPresent_d7000.wav")[0][:,0]) #wavs.append(al.wavread("Samples/Ch1_G1_TTL_0_NoMaster_NoFlashPresent_d7000.wav")[0][:,0]) #wavs.append(al.wavread("Samples/Ch1_G1_TTL+3.0_NoMaster_NoFlashPresent_d7000.wav")[0][:,0]) #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):