Example Usage
[1]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import ppops
[2]:
# Create PPOPS instance
ops = ppops.OpticalParticleSpectrometer(laser_wavelength=0.405, laser_power=70)
[ ]:
### Estimate the signal response across a diameter range ###
# Define diameters from 100 nm to 2000 nm for signal estimation
diameters = np.arange(0.1, 2.0, 0.01) # in micrometers
signal, noise = ops.estimate_signal_noise(ri=1.5, diameters=diameters)
fig, ax = plt.subplots(figsize=(6, 4))
ax.plot(diameters, signal)
ax.set_yscale("log")
ax.set_xscale("log")
ax.xaxis.set_major_formatter(mticker.ScalarFormatter())
ax.set_xlabel("Diameter (µm)")
ax.set_ylabel("Signal (Amps)")
ax.set_title("Estimated Signal")
fig.tight_layout()
[4]:
### Convert the estimated signal to a digitized signal for direct comparison with a POPS instrument ###
digitized_signal = ppops.digitize_signal(signal)
fig, ax = plt.subplots(figsize=(6, 4))
ax.plot(diameters, digitized_signal)
ax.set_yscale("log")
ax.set_xscale("log")
ax.xaxis.set_major_formatter(mticker.ScalarFormatter())
ax.set_xlabel("Diameter (µm)")
ax.set_ylabel("Signal (digitizer bins)")
ax.set_title("Estimated Signal")
fig.tight_layout()