Skip to content

Repository files navigation

Scientific Python Projects

Assessed computational-physics work from my degree at the University of Birmingham, covering quantum mechanics, Fourier analysis, signal processing and feedback control.

Self-landing rockets

90%, highest in the cohort · Source code

I investigated a two-dimensional rocket simulator, using numerical experiments to identify its dynamics before constructing positioning and landing controllers. The work covered thruster offsets, mass and thrust estimates, acceleration-to-thrust mapping, proportional feedback and damped PD-style control using position and velocity.

The analysis separates the initial identification experiments from the control strategies and repeated drop tests. The controller combines position error with velocity feedback to reduce overshoot.

Horizontal rocket control: position feedback compared with damped feedback

Horizontal positioning in the supplied rocket simulator: adding velocity feedback damps the oscillations around a 100 m target

Programming worksheets

98% average, highest in the cohort · Source code

Six worksheets cover complex arithmetic, sequences and series, conditional probability, nuclear binding energies, bisection, lattice sums, stellar data, electrostatic fields and Monte Carlo simulation.

Dice probabilities, binding energies, lattice sums and electric fields

Figures calculated from the worksheet methods: exact and Monte Carlo dice probabilities, binding-energy searches, finite lattice sums and point-charge field directions.

The dice calculation compares 200,000 trials with all 1,296 possible four-die outcomes. The nuclear calculation searches integer mass numbers for each atomic number. The Madelung calculation sums the lattice in finite cubes, while the electrostatic calculation uses the vector form of Coulomb's law.

The consolidated source separates calculations from plots and gives reusable methods named functions. Dice sampling and random walks use vectorised arrays. Input validation, units and singular points are handled in the relevant numerical routines.

Spectral analysis

80% · Source code

I used swept-sine signals and Fourier analysis to identify unknown electronic filters, locate unwanted spectral components and reconstruct filtered signals through a custom transfer function.

University spoken-digit recordings before and after filtering

Re-analysis of the spoken-digit recordings supplied with the university assignment, using the course noise model and the RLC band-stop filtering method.

The course files supply real speech recordings and a generator for the interfering signal. The analysis locates the dominant interference near 505.5 Hz from the corrupted input and applies three passes of the RLC band-stop transfer function. The figure shows the waveform and spectrum, with the clean recording available as a reference.

The noise model is a deliberately severe coursework test. The reported reference SNR includes both remaining noise and distortion of the clean signal. It describes this re-analysis, rather than an archived score from the assessed submission.

The source recordings were sampled at 44.1 kHz. The included analysis data use 11.025 kHz after anti-alias filtering and downsampling. Input arrays, source information and numerical outputs are in data/.

Quantum systems

95% · Source code

I modelled the bound states of an electron in a finite square well, reformulating the Schrödinger equation into dimensionless even- and odd-parity equations. Bracketed numerical root finding gives the allowed energy eigenvalues.

Calculated finite-well energy levels

Six bound states calculated for a 1 nm well with a 10 eV barrier.

The calculation locates roots between successive half-periods without crossing tangent poles, then converts the dimensionless solutions into energies. The potential and energy levels make the connection between the numerical roots and the physical states visible.

Files and methods

Folder Contents
projects/ The four coursework source files and the figure-production script
data/ Course audio arrays, source information and calculated figure results

All project figures are separate top-level PNGs. projects/make_figures.py records how each is produced. The raw course backend is university-supplied; the dependency is noted in requirements.txt.

Tools: Python, NumPy, SciPy and Matplotlib.

About

Scientific Python projects in quantum systems, Fourier analysis and autonomous rocket simulation, demonstrating numerical modelling and computational physics.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages