From 645a92d9e6209203f5f5e7162c26b05f05e7f01e Mon Sep 17 00:00:00 2001 From: Valentin Boettcher Date: Tue, 21 May 2024 17:03:55 -0400 Subject: [PATCH] EVALUATION: show felix --- scripts/experiments/002_rabi_detuning_scan.py | 5 ++-- .../003_experimental_ringdown_fft.py | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 scripts/experiments/003_experimental_ringdown_fft.py diff --git a/scripts/experiments/002_rabi_detuning_scan.py b/scripts/experiments/002_rabi_detuning_scan.py index 96bb982..0b8c4b3 100644 --- a/scripts/experiments/002_rabi_detuning_scan.py +++ b/scripts/experiments/002_rabi_detuning_scan.py @@ -9,7 +9,7 @@ from plot_utils import wrap_plot def transient_rabi(): """A transient rabi oscillation without noise.""" - params = Params(η=0.0001, δ=1 / 4, d=0.1, laser_detuning=0.01, Δ=0.005, N=2) + params = Params(η=0.0001, δ=1 / 4, d=0.1, laser_detuning=0.1, Δ=0.005, N=2) t = time_axis(params, 3, 0.1) solution = solve(t, params) signal = output_signal(t, solution.y, params.laser_detuning) @@ -59,8 +59,7 @@ def ringdown_after_rabi(): """Demonstrates the nonstationary ringdown of the resonator after turning off the EOM and laser drive.""" off_lifetime = 4 laser_detuning = 0.1 - - params = Params(η=0.0001, d=0.01, laser_detuning=laser_detuning, Δ=0.00, N=4) + params = Params(η=0.0001, d=0.01, laser_detuning=laser_detuning, Δ=0.00, N=2) params.laser_off_time = params.lifetimes(off_lifetime) params.drive_off_time = params.lifetimes(off_lifetime) diff --git a/scripts/experiments/003_experimental_ringdown_fft.py b/scripts/experiments/003_experimental_ringdown_fft.py new file mode 100644 index 0000000..edc5762 --- /dev/null +++ b/scripts/experiments/003_experimental_ringdown_fft.py @@ -0,0 +1,26 @@ +from ringfit import data +import matplotlib.pyplot as plt +from ringfit.data import * +from ringfit.plotting import * +from ringfit.fit import * +from rabifun.analysis import * +import numpy as np + + +# %% load data +path = "../../data/08_05_24/characterization_first" +scan = ScanData.from_dir(path) + + +# %% Fourier +freq, fft = fourier_transform( + scan.time, scan.output, low_cutoff=1000, high_cutoff=10**8 +) + +fig = plt.figure("interactive") +fig.clf() +ax, ax2 = fig.subplots(1, 2) +ax.set_yscale("log") +ax.plot(freq * 10 ** (-6), np.abs(fft) ** 2) +plot_scan(scan, ax=ax2, linewidth=0.1) +ax2.set_xlim(0.02, 0.020001)