MATLAB Engineering Suite: Telemetry Apps, DSP Filters & Simulink
Interactive App Designer telemetry instruments, PIC16F84A opcode explorer, Bilinear Transform filter synthesis, Simulink audio pipeline, and HDL export.

Project Overview
A consolidated collection of engineering instruments, digital signal processing (DSP) pipelines, and simulation tools built in MATLAB & Simulink across advanced engineering coursework at the University of Brighton (First Class 84% Virtual Instrumentation & Upper Second Class 68% DSP).
The repository bridges graphical desktop application design in MATLAB App Designer, low-level microprocessor architecture simulation, continuous-to-discrete filter synthesis via the Bilinear Transformation, and automated synthesiseable HDL IP core generation.
Flagship App 1: Multi-Channel Telemetry Dashboard
Developed for real-time monitoring of embedded sensors over serial COM interfaces. Features live strip-chart plotting, dynamic gain scaling, calibration offsets, and audible out-of-bounds safety alarms.
Flagship App 2: PIC16F84A Instruction Explorer
An interactive CPU architectural emulator designed for embedded systems pedagogy. Visualises how machine opcodes are decoded and trace register state modifications cycle-by-cycle:
Digital Signal Processing (DSP) Filter Design
The suite includes mathematically rigorous digital filter synthesis using both IIR (Infinite Impulse Response) and FIR (Finite Impulse Response) methodologies:
| Filter Type | Order | Design Method | Passband Ripple | Stopband Attenuation | Phase Response |
|---|---|---|---|---|---|
| Butterworth IIR | 11th Order | Bilinear Transform with Frequency Pre-warping | Flat (0 dB) | -66 dB / decade roll-off | Non-linear |
| Hamming Window FIR | 324th Order | Sinc truncation with Hamming window tapering | ±0.05 dB | -53 dB | Perfectly Linear |
Frequency Response & Spectrum Analysis
Comparing the attenuation characteristics and stopband rejection between the 11th-order Butterworth IIR filter and 324th-order Hamming FIR filter:
Figure 1: Spectrum analyser comparison between the synthesised 324th-order Hamming FIR filter and 11th-order Butterworth IIR filter under white noise and audio stimulus.
Bode & Phase Angle Characterisation
Figure 2: Magnitude and phase Bode plots showing pole/zero placement, cutoff transition steepness, and phase linearity across the audible frequency band.
Bilinear Transformation MATLAB Implementation
Below is the core MATLAB algorithm applying frequency pre-warping to translate continuous analogue $s$-domain transfer functions into discrete $z$-domain filter coefficients:
Figure 3: Carbon-style syntax-highlighted MATLAB script computing pre-warped cutoff frequencies and synthesising normalised filter polynomials.
Repository Structure & Modules
app_designer/: Contains.mlappstandalone binary and source definitions for the Telemetry Dashboard and PIC16F84A CPU Explorer.dsp_filter_design/: Filter synthesis scripts (Butterworth.m,Hamming.m) and spectrum analysis plotting functions.simulink/:Final_Model_2025A.slxaudio crossover simulation harness with dynamic interference injection.hdl_export/: Automated script invoking MATLAB HDL Coder to generate synthesiseable VHDL/Verilog RTL cores from discrete filter objects.
Source Code & Academic Attribution
- GitHub Repository: HarryRogers073/matlab-projects
- Author: Harry Rogers (University of Brighton)
- Environment: MATLAB R2022b–R2024b, Simulink, DSP System Toolbox, HDL Coder
- Attribution & Provenance:
- Custom Apps & Scripts: The multi-channel sensor GUI (
HarryRogers_22835293_EO631_GUI_APP.mlapp), PIC16F84A Instruction Explorer (PIC16F84A_Instruction_Explorer.mlapp), and DSP spectral comparison scripts (Combined.m,New_Combined.m,partg.m,Part_h.m) were designed and authored by Harry Rogers. - Toolbox Generated Filter Objects: Filter transfer function definitions (
Butterworth.m,Hamming.m) and coefficient files (.fcf) were exported using MATLAB Signal Processing and DSP System Toolboxes. MATLAB and Simulink are registered trademarks of The MathWorks, Inc.
- Custom Apps & Scripts: The multi-channel sensor GUI (