BME 505: Image and Signal Processing in Biomedicine

Instructor: Lucas C. Parra

Course overview and schedule: Syllabus

Office Hours for Spring 2024:
Tuesday 3:30-4:30PM & Thursday 4:30-5:30PM, (CDI Ground Floor Tea Room - Nicholas): Zoom (by request)

Python
Prof. Dmochowski's BME 105 Python programming course, using Collab
How to Install Python on your computer.
How to set up the anaconda environments
Beginner's Python Cheat Sheet
Python for Beginners Youtube
Python Installation Issues

Matlab/programming tutorial
Material you should be familiar entering this course: Slides from Prof Kelly's BME 220 course.

Linear algebra review
Compact review and nice visualization of liner algebra: youtube videos

Suggested reading
These book chapters complement the material presented in class and some go beyond. A few of them will be assigned reading and may be quized in class: Suggested reading

Lectures:
1. Introduction, Digital Signals
2. Discrete Fourier Transform
3. Linear Systems
4. Filtering
5. Correlation and Power Spectrum
6. Introduction to Ultrasound
7. Medical Imaging: X-ray, CT, PET)
8. Medical Imaging: MRI
9. Basic Image Manipulations

Data:
Penny image is here
ECG data is avaiable from the ECG-ID Database (and uploaded here)
Download the data and use the read_ecg_id function to load it:
[data_raw, data_prep, fs] = read_ecg_id('/home/max/Downloads', 24, 1); where '/home/max/Downloads' has to be subsituted with the directory of the unzipped database on your computer
Here is an example from the database: sample_ecg.mat

Load and display this ECG signal with: x=load('ecgdata.txt'); plot(x(:,1),x(:,2))

Here is a recording of a neuron firing (saved as wav file). The task is to detect the spikes reliably.

Here is a wave file of speech: wav file).

This is EEG data recorded from a subject performing a task that involves pushing a button. The volume of data contains 64 electrodes by 500 samples (2 second) by 338 trials. Alpha activity (approx. 10Hz) is reduced slightly before and some time after the button push. Any variable you compute for each electrode (stored as vector 'v' with 64 elements) you can display as an image over the head using: topoplot(v,'EEG-button-push.loc');
You need these two files to do this: topoplot, EEG-button-push.loc.

Demonstration of the importance of phase in the FFT representation of a signal: download

Proof that you only need a single quantizing bit per sample to make speech intelligible: 16 bits per sample, 2 bits per sample

Extra lab assignment: Record speech with a headphone.

Additional instructions for homework assignment on ultrasound: Document