DSP Project (draft)

Project 1: Real-Time Audio Noise Reduction (Fixed-Filter Based)

Theme/domain: Speech/audio enhancement using classical fixed digital filters.

Goals/Objectives:
Design and implement FIR and IIR filters (low-pass, band-pass, notch) to remove background noise (hiss, hum, ambient sounds) from live speech. Compare filter types in terms of noise reduction, phase distortion, and computational cost.

Signal acquisition:
Electret microphone module (e.g., MAX4466) with ADC on ESP32 or Arduino. Optional USB audio interface. Sample at 8–16 kHz.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 2: Adaptive Noise Cancellation & Acoustic Echo Cancellation

Theme/domain: Adaptive filtering for real‑time noise and echo suppression.

Goals/Objectives:
Implement an adaptive filter (LMS/NLMS) to cancel ambient noise using a reference microphone (feed‑forward ANC) or to remove acoustic echo in a hands‑free communication system.

Signal acquisition:

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 3: ECG Signal Processing and Heart Rate Monitoring

Theme/domain: Biomedical DSP – cleaning ECG and extracting heart rate.

Goals/Objectives:
Acquire raw ECG, remove baseline wander, power‑line interference, and muscle noise using cascaded digital filters. Implement QRS detection to compute beats per minute (BPM) in real time.

Signal acquisition:
AD8232 ECG sensor module with Arduino or ESP32. Sample at 250–500 Hz. Stream data to PC for analysis or display on OLED.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 4: Vibration Analysis for Machine Fault Detection

Theme/domain: Industrial IoT / condition monitoring using vibration signals.

Goals/Objectives:
Acquire vibration data from a motor or fan, remove noise, extract fault signatures (imbalance, bearing wear) using FFT and envelope analysis, and classify machine health.

Signal acquisition:
Accelerometer (MPU6050, ADXL335, or ADXL345) mounted on a small DC motor/fan. Sample at 1–3.2 kHz. Introduce faults by adding imbalance (tape on blade) or simulating bearing looseness.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 5: Digital Image Smoothing and Edge Enhancement

Theme/domain: 2D signal processing – image filtering.

Goals/Objectives:
Implement 2D FIR filters (smoothing, blurring, edge detection) on live camera input. Compare separable vs. non‑separable convolution and quantify noise reduction vs. edge preservation.

Signal acquisition:
USB webcam or ESP32‑CAM capturing greyscale images (e.g., 320×240 resolution).

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 6: Speech Command Recognition and Environmental Sound Classification

Theme/domain: DSP pipeline for preprocessing followed by simple classification.

Goals/Objectives:
Acquire audio, apply pre‑emphasis and band‑pass filtering, extract features (MFCCs, spectral energy), and train a lightweight classifier to recognize spoken keywords or environmental sounds (e.g., glass break, doorbell).

Signal acquisition:
MEMS microphone (e.g., INMP441 with I2S) on ESP32, or a laptop microphone. Sample at 16 kHz. Record commands ("start", "stop", "left", "right") or use public dataset (ESC‑50) for environmental sounds.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 7: Digital Audio Equalizer

Theme/domain: Audio DSP – graphic/parametric equalizer with user controls.

Goals/Objectives:
Design a 3–10 band equalizer (bass, mid, treble) using IIR biquad filters or FIR filters. Adjust gains in real‑time using potentiometers or a GUI, and measure the resulting frequency response.

Signal acquisition:
I2S microphone (e.g., INMP441) and I2S speaker (MAX98357A) connected to ESP32 or Teensy. Alternatively, line‑in/line‑out on a PC with Python real‑time processing.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 8: DTMF (Dual‑Tone Multi‑Frequency) Tone Decoder

Theme/domain: Telecommunications – detecting telephone keypad tones.

Goals/Objectives:
Build a system that listens to DTMF tones (generated by a phone app or signal generator), decodes the pressed key (0‑9, *, #), and displays it. Test robustness under noise using a filter bank or Goertzel algorithm.

Signal acquisition:
Electret microphone module or direct audio line‑in to ESP32/Arduino ADC. Sample at 8 kHz.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 9: Digital Communication Channel Equalizer

Theme/domain: Communications DSP – mitigating intersymbol interference (ISI).

Goals/Objectives:
Design an FIR equalizer to compensate for channel distortion (multipath, bandwidth limitation). Compare fixed zero‑forcing equalizer with adaptive LMS equalizer in terms of bit error rate (BER) and eye diagram opening.

Signal acquisition:
Generate a modulated signal (e.g., BPSK) via DAC or simulated in Python. Add channel impulse response (multipath) and AWGN noise. No hardware acquisition required; use offline or real‑time Python simulation.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 10: Gesture Recognition Using IMU and Sensor Fusion

Theme/domain: Motion processing – filtering and fusion for orientation estimation.

Goals/Objectives:
Acquire accelerometer and gyroscope data from an IMU, remove high‑frequency noise, fuse sensors to obtain stable orientation, and detect simple gestures (swipe, shake, tap) using filtered signals.

Signal acquisition:
MPU6050 (or MPU9250) connected to Arduino/ESP32 via I2C. Sample at 100–200 Hz.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 11: Ultrasonic Distance Sensor with Digital Signal Enhancement

Theme/domain: Embedded sensing – DSP to improve time‑of‑flight measurements.

Goals/Objectives:
Improve accuracy and robustness of an ultrasonic distance sensor (HC‑SR04) using matched filtering, median filtering, and temperature compensation.

Signal acquisition:
HC‑SR04 or separate ultrasonic transducer pair with Arduino/ESP32. For advanced version, capture raw analog echo signal using an op‑amp and ADC. Measure distances from 10 cm to 3 m.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions:


Project 12: Digital Stethoscope for Heart/Lung Sound Separation

Theme/domain: Biomedical acoustics – separating overlapping physiological sounds.

Goals/Objectives:
Acquire chest sounds using a stethoscope‑mounted microphone, then design filters to separate low‑frequency heart sounds (S1, S2) from higher‑frequency lung sounds (wheezes, crackles). Compute heart rate from the filtered heart channel.

Signal acquisition:
Electret microphone inside a stethoscope bell or a commercial stethoscope adapter. Interface with ESP32 (ADC) or USB audio interface. Sample at 2–4 kHz.

Processing Tasks:

Output Analysis:

Deliverables:

Extensions: