Commit d9c594b7 authored by Nicolas Nunez Barreto's avatar Nicolas Nunez Barreto

cosas de la compu de nico

parent b4d176b0
...@@ -53,7 +53,7 @@ import scipy.fftpack ...@@ -53,7 +53,7 @@ import scipy.fftpack
BINW = 1e-2 BINW = 1e-2
T0 = -0.4e-6 T0 = -0.4e-6
files = [20322] files = [20583]
SP_Heigths = [] SP_Heigths = []
SP_Bins = [] SP_Bins = []
...@@ -81,45 +81,6 @@ for k in range(len(counts)): ...@@ -81,45 +81,6 @@ for k in range(len(counts)):
#%% #%%
from scipy.optimize import curve_fit
refe = len(SP_Bins[0])
prop = 1
RefBins = [t for t in SP_Bins[0][:int(prop*refe)]]
# plt.figure()
# plt.plot(RefBins[:-1], SP_Heigths[0][:int(prop*refe)],'-o')
x = RefBins[:-1]
y = SP_Heigths[0][:int(prop*refe)]
cc = np.ones(len(counts))
fluo = np.cumsum(cc) - np.polyval(np.polyfit(counts,np.cumsum(cc),1),counts)
plt.figure()
plt.plot(counts,fluo)
plt.xlabel('Tiempo (s)')
plt.ylabel('Cumsum photons')
y = np.array([f for f in fluo])
dt = np.mean(np.diff(np.array(counts)))
print(dt)
plt.figure()
# plt.plot(x, y, label='Señal original')
plt.magnitude_spectrum(y*np.hanning(len(y)),Fs=1/dt)
plt.xlabel('Frecuencia (Hz)')
plt.ylabel('Amplitud')
# plt.xlim(-10,200)
plt.grid(True)
# plt.legend()
#%%
""" """
Esto binea fotones asumienod que la cantidad de fotones que llegan en un intervalo tau Esto binea fotones asumienod que la cantidad de fotones que llegan en un intervalo tau
esta modulada por una funcion periodica. Entonces a los tiempos de llegada entre esta modulada por una funcion periodica. Entonces a los tiempos de llegada entre
...@@ -189,24 +150,9 @@ Esto deberia hacerse asi para ver la oscilacion a la RF (micromocion) ...@@ -189,24 +150,9 @@ Esto deberia hacerse asi para ver la oscilacion a la RF (micromocion)
BINW = 1e-2 BINW = 1e-2
T0 = -0.4e-6 T0 = -0.4e-6
files = [20476] #el 19613 es el que muestra el pico en 48.5 Hz #files = [20577,20578,20579,20580,20581] #el 19613 es el que muestra el pico en 48.5 Hz
SP_Heigths = [] files = [20587] #el 19613 es el que muestra el pico en 48.5 Hz
SP_Bins = []
for i, fname in enumerate(files):
#print(i)
#print(fname)
data = h5py.File('0000'+str(fname)+'-CRB.h5', 'r')
counts = np.array(data['datasets']['counts'])
bines = np.arange(counts.min(), counts.max()+BINW, BINW)
heigs, binsf = np.histogram(counts, bines[bines>T0])
SP_Heigths.append(heigs)
SP_Bins.append(binsf)
def bin_time_arrivals(arrival_times, tau): def bin_time_arrivals(arrival_times, tau):
""" """
...@@ -221,41 +167,66 @@ def bin_time_arrivals(arrival_times, tau): ...@@ -221,41 +167,66 @@ def bin_time_arrivals(arrival_times, tau):
""" """
return arrival_times - tau * (arrival_times // tau) return arrival_times - tau * (arrival_times // tau)
"""
Amplitud en funcion de la frecuencia de bineo de la rf
"""
freqrf = 7.2618e6 SP_Heigths = []
SP_Bins = []
freqrfvec = np.arange(7262561,7262972,0.1)
amps = []
plt.figure() plt.figure()
for freqrf in freqrfvec: for i, fname in enumerate(files):
taurf = 1/freqrf #print(i)
#print(fname)
data = h5py.File('0000'+str(fname)+'-CRB.h5', 'r')
counts = np.array(data['datasets']['counts'])
bines = np.arange(counts.min(), counts.max()+BINW, BINW)
heigs, binsf = np.histogram(counts, bines[bines>T0])
SP_Heigths.append(heigs)
SP_Bins.append(binsf)
tiemposarreglados = bin_time_arrivals(counts, taurf)
b = taurf/50 # Ancho de bineo """
bins = np.arange(0, taurf, b) Amplitud en funcion de la frecuencia de bineo de la rf
hist, bin_edges = np.histogram(tiemposarreglados, bins=bins) """
colors = ['b', 'g', 'r'] # Colores para cada repetición freqrf = 7.2618e6
x_extended = np.concatenate([bin_edges[:-1] + i * taurf for i in range(3)]) freqrfvec = np.arange(7262765,7262767,0.01)
y_extended = np.tile(hist, 3)
def sinusoidal(x, A, C, D): amps = []
return A * np.sin(2*np.pi*freqrf * x + C) + D
x_extended_dense = np.arange(np.min(x_extended),np.max(x_extended),0.1*(x_extended[1]-x_extended[0]))
params, _ = curve_fit(sinusoidal, x_extended, y_extended, p0=[max(y_extended), 0, np.mean(y_extended)]) for freqrf in freqrfvec:
amps.append(np.abs(params[0])) taurf = 1/freqrf
tiemposarreglados = bin_time_arrivals(counts, taurf)
b = taurf/50 # Ancho de bineo
bins = np.arange(0, taurf, b)
hist, bin_edges = np.histogram(tiemposarreglados, bins=bins)
colors = ['b', 'g', 'r'] # Colores para cada repetición
x_extended = np.concatenate([bin_edges[:-1] + i * taurf for i in range(3)])
y_extended = np.tile(hist, 3)
def sinusoidal(x, A, C, D):
return A * np.sin(2*np.pi*freqrf * x + C) + D
x_extended_dense = np.arange(np.min(x_extended),np.max(x_extended),0.1*(x_extended[1]-x_extended[0]))
params, _ = curve_fit(sinusoidal, x_extended, y_extended, p0=[max(y_extended), 0, np.mean(y_extended)])
amps.append(np.abs(params[0]))
plt.plot(freqrfvec,amps,'o') plt.plot([f*1e-6 for f in freqrfvec],amps,'o')
plt.xlabel('Frecuencia RF (MHz)')
plt.ylabel('Amplitud oscilacion')
#%% #%%
""" """
...@@ -263,7 +234,7 @@ Grafico temporal replicado 3 veces a la frecuencia dada ...@@ -263,7 +234,7 @@ Grafico temporal replicado 3 veces a la frecuencia dada
""" """
freqrf = 7262766 freqrf = 7262766.1
taurf = 1/freqrf taurf = 1/freqrf
...@@ -281,6 +252,9 @@ y_extended = np.tile(hist, 3) ...@@ -281,6 +252,9 @@ y_extended = np.tile(hist, 3)
def sinusoidal(x, A, C, D): def sinusoidal(x, A, C, D):
return A * np.sin(2*np.pi*freqrf * x + C) + D return A * np.sin(2*np.pi*freqrf * x + C) + D
def sinusoidal2(x,A,b,C,D,E):
return A*((C**2)/(C**2 + (D-b*np.sin(2*np.pi*freqrf*x))**2))+E
x_extended_dense = np.arange(np.min(x_extended),np.max(x_extended),0.1*(x_extended[1]-x_extended[0])) x_extended_dense = np.arange(np.min(x_extended),np.max(x_extended),0.1*(x_extended[1]-x_extended[0]))
params, _ = curve_fit(sinusoidal, x_extended, y_extended, p0=[max(y_extended), 0, np.mean(y_extended)]) params, _ = curve_fit(sinusoidal, x_extended, y_extended, p0=[max(y_extended), 0, np.mean(y_extended)])
...@@ -297,7 +271,8 @@ for i in range(3): ...@@ -297,7 +271,8 @@ for i in range(3):
plt.xlabel("Tiempo bineado (repetido 3 veces)") plt.xlabel("Tiempo bineado (repetido 3 veces)")
plt.ylabel("Frecuencia") plt.ylabel("Frecuencia")
plt.title("Distribución de tiempos bineados con ajuste sinusoidal") plt.title("Distribución de tiempos bineados con ajuste sinusoidal")
plt.ylim(0,np.max(hist)*1.2) #plt.ylim(0,np.max(hist)*1.2)
plt.ylim(0,400)
plt.legend() plt.legend()
plt.show() plt.show()
......
...@@ -9,17 +9,15 @@ import os ...@@ -9,17 +9,15 @@ import os
from scipy import interpolate from scipy import interpolate
# Solo levanto algunos experimentos # Solo levanto algunos experimentos
Calib_Files = """000012744-UV_Scan_withcalib_Haeffner Files = """000020496-UV_Scan_withcalib_Haeffner
000012745-UV_Scan_withcalib_Haeffner 000020498-UV_Scan_withcalib_Haeffner
000012749-UV_Scan_withcalib_Haeffner 000020508-UV_Scan_withcalib_Haeffner
000012750-UV_Scan_withcalib_Haeffner 000020565-UV_Scan_withcalib_Haeffner
000012751-UV_Scan_withcalib_Haeffner 000020555-UV_Scan_withcalib_Haeffner
000012752-UV_Scan_withcalib_Haeffner 000020546-UV_Scan_withcalib_Haeffner
000012753-UV_Scan_withcalib_Haeffner """
000012754-UV_Scan_withcalib_Haeffner
000012755-UV_Scan_withcalib_Haeffner""" os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20250403_UVspectra_bladetrap/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230616_newUVspectra//Data')
#carpeta pc nico labo escritorio: #carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220503_EspectrosUVnuevos\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220503_EspectrosUVnuevos\Data
...@@ -37,8 +35,8 @@ Freqs = [] ...@@ -37,8 +35,8 @@ Freqs = []
Counts = [] Counts = []
T_readouts = [] T_readouts = []
for i, fname in enumerate(Calib_Files.split()): for i, fname in enumerate(Files.split()):
print(SeeKeys(Calib_Files)) print(SeeKeys(Files))
print(i) print(i)
print(fname) print(fname)
data = h5py.File(fname+'.h5', 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets' data = h5py.File(fname+'.h5', 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets'
...@@ -64,7 +62,7 @@ def Lorentzian(f, A, x0, gamma, offset): ...@@ -64,7 +62,7 @@ def Lorentzian(f, A, x0, gamma, offset):
#primero muestro las meds 0 y 1 que son dos mediciones con potencia UV quizas un poco #primero muestro las meds 0 y 1 que son dos mediciones con potencia UV quizas un poco
#alta pero en la segunda el ion esta un poquito mejor compensado y se ve cómo se afina el espectro #alta pero en la segunda el ion esta un poquito mejor compensado y se ve cómo se afina el espectro
jvec = [6,7,8] jvec = [5]
plt.figure() plt.figure()
...@@ -75,13 +73,13 @@ for j in jvec: ...@@ -75,13 +73,13 @@ for j in jvec:
portion = 0. portion = 0.
#popt, pcov = curve_fit(Lorentzian, FreqsChosen[int(portion*len(FreqsChosen)):], CountsChosen[int(portion*len(FreqsChosen)):], p0=[12000, 208, 30, 30]) popt, pcov = curve_fit(Lorentzian, FreqsChosen[int(portion*len(FreqsChosen)):], CountsChosen[int(portion*len(FreqsChosen)):], p0=[12000, 208, 30, 30])
freqslong = np.arange(min(FreqsChosen)-10, max(FreqsChosen)+10, (FreqsChosen[1]-FreqsChosen[0])*0.01) freqslong = np.arange(min(FreqsChosen)-10, max(FreqsChosen)+10, (FreqsChosen[1]-FreqsChosen[0])*0.01)
plt.errorbar(FreqsChosen, CountsChosen, yerr=np.sqrt(np.array(CountsChosen)), fmt='o', capsize=5, markersize=5) plt.errorbar(FreqsChosen, CountsChosen, yerr=np.sqrt(np.array(CountsChosen)), fmt='o', capsize=5, markersize=5)
#plt.plot(freqslong, Lorentzian(freqslong, popt[0], popt[1], popt[2]), label=f'FWHM {round(popt[1])} MHz') # plt.plot(freqslong, Lorentzian(freqslong, popt[0], popt[1], popt[2]), label=f'FWHM {round(popt[1])} MHz')
#plt.plot(freqslong, Lorentzian(freqslong, popt[0], popt[1], popt[2], popt[3]), label=f'FWHM {round(popt[2],1)} MHz') plt.plot(freqslong, Lorentzian(freqslong, popt[0], popt[1], popt[2], popt[3]), label=f'FWHM {round(popt[2],1)} MHz')
#plt.axvline(popt[2]-22.1, linestyle='--', linewidth=1) #plt.axvline(popt[2]-22.1, linestyle='--', linewidth=1)
#plt.axvline(popt[2]+22.1, linestyle='--', linewidth=1) #plt.axvline(popt[2]+22.1, linestyle='--', linewidth=1)
plt.xlabel('Frecuencia (MHz)') plt.xlabel('Frecuencia (MHz)')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment