Tutorials

Step-by-step guides to master integrated squeezed light generation and quantum noise analysis

Recommended Learning Path

Beginner
Tutorials 1-3
Intermediate
Tutorials 4-7
Advanced
Tutorials 8-10

Beginner Getting Started

Tutorial 1 20 min

Understanding Squeezed Light

Introduction to quantum noise, the Heisenberg uncertainty principle, and how squeezed states reduce noise below the shot noise limit.

Quadrature operators X and P

Vacuum fluctuations

Squeezing parameter and dB scale

Wigner function visualization

Tutorial 2 30 min

Your First Squeezing Simulation

Set up the simulation environment and calculate squeezing for both SiN and TFLN platforms.

from cv_squeezer import SqueezerSimulator

# SiN Kerr squeezer
sin_sim = SqueezerSimulator(
    platform="sin",
    wavelength=1550e-9
)
result = sin_sim.calculate_squeezing(
    pump_power=50e-3,
    escape_efficiency=0.85
)
print(f"Squeezing: {result['squeezing_dB']:.1f} dB")

Environment setup

Platform selection

Basic calculations

Tutorial 3 25 min

Visualizing Quantum States

Create Wigner function plots and noise ellipse visualizations to understand squeezed state geometry.

from cv_squeezer.quantum import CovarianceMatrix
from cv_squeezer.plotting import plot_wigner

# 6 dB squeezed state
sigma = CovarianceMatrix.squeezed_vacuum(
    r=0.69, theta=0
)

# Plot Wigner function
plot_wigner(sigma, range=4)

Covariance matrices

Wigner function plots

Interactive 3D visualization

Intermediate Device Design

Tutorial 4 45 min

SiN Microring Design

Design a silicon nitride microring resonator optimized for Kerr squeezing via four-wave mixing.

from cv_squeezer.platforms import RingResonator

ring = RingResonator(
    radius=50e-6,
    width=1.2e-6,
    height=800e-9,
    gap=200e-9
)

# Optimize for escape efficiency
opt_gap = ring.optimize_coupling(
    target_escape_eff=0.90
)

Q-factor engineering

Coupling optimization

FWM phase matching

Dispersion management

Tutorial 5 45 min

TFLN OPA Waveguide Design

Design a thin-film lithium niobate waveguide for high-level squeezing via optical parametric amplification.

from cv_squeezer.platforms import OPAWaveguide

opa = OPAWaveguide(
    length=10e-3,
    width=1.5e-6,
    film_thickness=600e-9,
    poling_period=4.5e-6
)

# Temperature tuning curve
temps = np.linspace(20, 80, 100)
wavelengths = opa.temperature_tuning_curve(temps)

Quasi-phase matching

Poling period selection

Temperature tuning

Waveguide mode design

Tutorial 6 40 min

Loss Budget Analysis

Track all loss sources and understand their cumulative impact on detected squeezing levels.

from cv_squeezer.analysis import LossBudget

budget = LossBudget()
budget.add_loss("Escape efficiency", 0.88)
budget.add_loss("Waveguide loss", 0.95)
budget.add_loss("Fiber coupling", 0.85)
budget.add_loss("Filter", 0.92)
budget.add_loss("Detector QE", 0.95)

# Impact analysis
budget.sensitivity_analysis()

Identifying loss sources

Sensitivity analysis

Optimization strategies

Tutorial 7 35 min

Spectral Analysis

Analyze frequency-dependent squeezing and understand the squeezing spectrum for different cavity parameters.

from cv_squeezer.analysis import SpectralAnalyzer

analyzer = SpectralAnalyzer(
    linewidth=50e6,
    gain=5.0,
    escape_efficiency=0.90
)

# Calculate 3dB bandwidth
bw_3dB = analyzer.bandwidth_3dB()
print(f"3dB BW: {bw_3dB/1e6:.1f} MHz")

Squeezing spectrum S(Ω)

Bandwidth calculations

Sideband correlations

Advanced Applications & Integration

Tutorial 8 60 min

Squeezed Light for CV-QKD

Integrate squeezed states into continuous-variable quantum key distribution systems for enhanced secret key rates.

from cv_squeezer import SqueezerSimulator
from cvqkd import KeyRateCalculator

# Generate squeezed state
squeezer = SqueezerSimulator("tfln", 1550e-9)
sigma = squeezer.get_covariance_matrix(r=1.0)

# Calculate QKD improvement
qkd = KeyRateCalculator(distance=25)
rate_coherent = qkd.key_rate(V_mod=4)
rate_squeezed = qkd.key_rate_squeezed(sigma)

Squeezing in GMCS protocol

Key rate enhancement

Optimal squeezing levels

Tutorial 9 50 min

Gravitational Wave Detection

Design squeezed vacuum sources for interferometric gravitational wave detectors like LIGO.

from cv_squeezer.applications import GWDetector

detector = GWDetector(
    arm_length=4e3,        # 4 km arms
    laser_power=200,       # 200 W
    squeezing_dB=10        # 10 dB injection
)

# Strain sensitivity improvement
improvement = detector.sensitivity_gain()
print(f"Factor: {improvement:.1f}x")

Shot noise limited regime

Frequency-dependent squeezing

Filter cavity requirements

Tutorial 10 60 min

Multi-Mode Entanglement

Generate and characterize entangled Gaussian states using integrated squeezers and linear optics.

from cv_squeezer.quantum import CovarianceMatrix

# Create two-mode squeezed state (EPR)
epr = CovarianceMatrix.two_mode_squeezed(r=1.0)

# Verify entanglement
duan_value = epr.duan_criterion()
log_neg = epr.logarithmic_negativity()
print(f"Log negativity: {log_neg:.3f}")

EPR state generation

Entanglement witnesses

Cluster state preparation

Quick Reference

Common Conversions

3 dB → r ≈ 0.35

6 dB → r ≈ 0.69

10 dB → r ≈ 1.15

15 dB → r ≈ 1.73

Key Formulas

V_sq = e^(-2r)

V_anti = e^(+2r)

V_det = η×V + (1-η)

dB = 10×log₁₀(V)

Typical Values

SiN: 3-10 dB squeezing

TFLN: 10-15+ dB squeezing

η_escape: 80-95%

η_det: 90-98%