Python data analysis to find the lowest excitation energy of mercury.
Intended audience: Undergraduate students and instructors undertaking the canonical Franck-Hertz experiment.
This computational workshop entails:
- Importing data in CSV format from an oscilloscope.
- Extracting the metadata from the CSV header.
- Creating a versatile time-series data type using
pandas
. - Presentation-quality plotting of the data in parametric form.
- Extracting a subset of the data based on a compound conditional statement.
- Performing a moving average using a specified time-interval.
- Finding the peaks/troughs in the data using
scipy.signal.find_peaks
. - Analysing these peak/trough locations statistically.
- Reporting the above results as an average/representative splitting, with standard error.
- Quantifying the linearity of the minima separation splitting using linear regression.
- Phenomenological multi-peak + polynomial modelling of the data using
lmfit
. - Observing any variation of the minima separation with peak/trough number, inspired by Rapior, Sengstock, and Baev, Am. J. Phys. 74, 423 (2006).