Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Brain Signals Analysis

A comprehensive signal processing project for analyzing EEG (electroencephalography) brain signals using advanced digital signal processing techniques.

Overview

This project performs in depth analysis of brain signals from EDF (European Data Format) files using time domain, frequency domain, and time frequency analysis methods. The analysis includes signal visualization, spectral analysis, artifact detection, and seizure identification.

Dataset

The analysis uses the BORI EEG dataset consisting of 10 EDF files containing brain signal recordings:

  • Files: 10 EDF recordings (bori_dataset_10s_eeg_1.edf through bori_dataset_10s_eeg_10.edf)
  • Duration: 10 seconds per recording
  • Sampling Frequency: 256 Hz
  • Format: European Data Format (EDF)

Project Structure

Brain-Signals-Analysis/
├── Brain-Signals.ipynb          # Main analysis notebook
├── README.md                     # This file
└── bori_dataset_edf/             # Dataset folder
    ├── bori_dataset_10s_eeg_1.edf
    ├── bori_dataset_10s_eeg_2.edf
    └── ... (10 files total)

Analysis Sections

Part One: Signal Loading and Frequency Analysis

Objectives: Load EEG signals and perform initial frequency domain analysis.

Methods:

  • Loading EDF files using PyEDFlib library
  • Time domain visualization of raw signals
  • Fast Fourier Transform (FFT) for frequency domain representation
  • Power Spectral Density (PSD) computation using Welch's method

Key Features:

  • Signal extraction and preprocessing
  • FFT magnitude spectrum visualization (full and EEG range 0-50 Hz)
  • Reference markers for EEG frequency bands (Delta, Theta, Alpha, Beta)
  • PSD analysis for each signal using 256-point Welch periodogram

Part Two: Time-Frequency Analysis

Objectives: Perform advanced time-frequency analysis to capture signal dynamics.

Methods:

  1. Short-Time Fourier Transform (STFT)

    • Window length: 256 samples
    • Window function: Periodic Hann window
    • Overlap: 75% (ensuring 192 samples per hop)
    • FFT length: 256 points
    • Scaling: Spectrum mode
  2. Continuous Wavelet Transform (CWT)

    • Wavelet: Morlet wavelet (optimal for time-frequency localization)
    • Scales: 1-127 (corresponding to frequency range ~2-128 Hz)
    • Scalogram visualization showing time-frequency energy distribution

Key Output: Time-frequency representations revealing non-stationary signal characteristics and transient events.

Part Three: Sampling Theorem and Aliasing Effects

Objectives: Demonstrate the Nyquist Shannon sampling theorem and aliasing phenomena.

Methods:

  • Downsampling signals to 32 Hz (below Nyquist frequency of 128 Hz)
  • Signal resampling using scipy.signal.resample
  • Visual comparison of original vs. downsampled signals

Findings: Clear demonstration of aliasing artifacts when sampling below Nyquist frequency, illustrating critical importance of adequate sampling rates for accurate signal representation.

Part Four: Digital Filtering

Objectives: Remove unwanted frequency components from signals.

Methods:

  • Butterworth bandpass filter design
  • Filter specifications: 4th-order, 1-30 Hz passband
  • Frequency normalization for filter coefficient calculation
  • Linear filtering (lfilter) for zero-phase operation

Results:

  • PSD comparison before and after filtering
  • Time domain visualization of original vs. filtered signals
  • Effective removal of noise outside the EEG frequency range

Part Five: Artifact Detection

Objectives: Identify and localize pathological events and non neural artifacts in EEG signals.

Detection Algorithms:

  1. Seizure Detection

    • Bandpass filter: 6 8 Hz (theta seizure range)
    • Envelope detection and thresholding (mean + 3σ)
    • Minimum gap specification: 0.5 seconds (prevents duplicate detections)
    • Onset timing identification
  2. Eye Blink Detection

    • Sliding window: 150 ms
    • Threshold based peak detection (mean + 3.5σ)
    • Onset estimation via backward search from peak
    • Baseline relative positioning
  3. Muscle Artifact Detection

    • 1 second sliding window analysis (50% overlap)
    • Frequency band analysis:
      • Muscle band: 40-100 Hz
      • Baseline band: 1-30 Hz
    • Power ratio thresholding (muscle/baseline > 0.02)
    • Welch periodogram for spectral estimation

Visualization: Comprehensive EEG plots with color coded vertical markers indicating detected events:

  • Red dashed lines: Seizure activity
  • Blue dashed lines: Eye blinks
  • Green dashed lines: Muscle artifacts

Technical Implementation

Libraries Used

- numpy: Numerical computations and array operations
- scipy.signal: DSP functions (STFT, Welch, filtering, resampling)
- scipy.fft: Fast Fourier Transform operations
- matplotlib: Data visualization
- pyedflib: EDF file reading and writing
- PyWavelets: Continuous wavelet transform implementation

Key Parameters

Parameter Value Justification
Sampling Frequency (fs) 256 Hz Nyquist rate for EEG signals (> 2×128 Hz max component)
STFT Window Length 256 samples Matches sampling frequency, provides 1 second resolution
STFT Overlap 75% (192 samples) Captures temporal dynamics with sufficient resolution
Butterworth Order 4 Balanced passband ripple and phase response
FFT Length 256 points Efficient computation and adequate frequency resolution
CWT Scales 1-127 Covers relevant EEG frequency range (2 128 Hz)
Wavelet Morlet Optimal time-frequency localization for EEG analysis

Processing Workflow

  1. Data Loading: Read EDF files and extract signal channels
  2. Preprocessing: Time and frequency domain visualization
  3. Spectral Analysis: FFT and Welch's method for PSD
  4. Time-Frequency Analysis: STFT and CWT computations
  5. Sampling Analysis: Demonstrate aliasing effects
  6. Filtering: Apply bandpass Butterworth filter
  7. Artifact Detection: Identify seizures, blinks, and muscle artifacts
  8. Visualization: Comprehensive plotting of all results

Results and Findings

  • Successful loading and analysis of 10 EEG signals
  • Detailed time-frequency characterization using multiple methods
  • Clear demonstration of sampling theorem principles
  • Effective frequency domain filtering with minimal phase distortion
  • Robust detection of pathological and artifactual events in EEG signals
  • Visual correlation between temporal and spectral representations

Results Visualization

Time-Domain Signal Analysis

EEG Signal Figure 1: Raw EEG signal in time domain showing 10 second recording at 256 Hz sampling frequency

Frequency Domain Analysis (FFT)

FFT Analysis Figure 2: Fast Fourier Transform magnitude spectrum showing frequency components in full range and EEG specific range (0 50 Hz) with band markers

Power Spectral Density (Welch Method)

PSD Analysis Figure 3: Power Spectral Density using Welch's method, demonstrating energy distribution across frequency bands

Time-Frequency Analysis: STFT and Spectrogram

STFT and Spectrogram Figure 4: Short Time Fourier Transform and Spectrogram visualization showing temporal evolution of frequency components

Continuous Wavelet Transform (CWT) Scalogram

CWT Scalogram Figure 5: Wavelet scalogram using Morlet wavelet showing multi-scale time-frequency decomposition

Aliasing Effect Demonstration

Aliasing Effect Figure 6: Comparison of original signal (256 Hz) and downsampled signal (32 Hz) demonstrating aliasing artifacts below Nyquist frequency

Filtered Signal Output

Filtered Signals Figure 7: Original vs. bandpass filtered signal (1 30 Hz) showing effective noise reduction

Power Spectrum After Filtering

Filtered PSD Figure 8: Power Spectral Density of filtered signal showing dominant energy in passband region

Artifact Detection Results

Artifact Detection Figure 9: Comprehensive artifact detection visualization with color-coded markers for seizure activity (red), eye blinks (blue), and muscle artifacts (green)

Usage

To run the analysis:

jupyter notebook Brain-Signals.ipynb

Execute cells sequentially to perform the complete analysis pipeline. Each section is self-contained and includes visualization of intermediate results.

References

  • European Data Format (EDF) Standard: PhysioNet EDF Format
  • Signal Processing: Oppenheim & Schafer, "Discrete Time Signal Processing"
  • Wavelet Analysis: Grossmann & Morlet, "Decomposition of Hardy Functions into Square Integrable Wavelets"
  • EEG Analysis: Teplan, "Fundamentals of EEG Measurement"

Author

Mehdi Benabi

About

This project performs in depth analysis of brain signals from EDF (European Data Format) files using time domain, frequency domain, and time frequency analysis methods. The analysis includes signal visualization, spectral analysis, artifact detection, and seizure identification.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages