Applications-oriented instruction on signal processing and digital signal processing (DSP) using MATLAB and Python codes
Why you need to learn digital signal processing.
Nature is mysterious, beautiful, and complex. Trying to understand nature is deeply rewarding, but also deeply challenging. One of the big challenges in studying nature is data analysis. Nature likes to mix many sources of signals and many sources of noise into the same recordings, and this makes your job difficult.
Therefore, one of the most important goals of time series analysis and signal processing is to denoise: to separate the signals and noises that are mixed into the same data channels.
The big idea of DSP (digital signal processing) is to discover the mysteries that are hidden inside time series data, and this course will teach you the most commonly used discovery strategies.
What’s special about this course?
The main focus of this course is on implementing signal processing techniques in MATLAB and in Python. Some theory and equations are shown, but I’m guessing you are reading this because you want to implement DSP techniques on real signals, not just brush up on abstract theory.
The course comes with over 10,000 lines of MATLAB and Python code, plus sample data sets, which you can use to learn from and to adapt to your own coursework or applications.
In this course, you will also learn how to simulate signals in order to test and learn more about your signal processing and analysis methods.
You will also learn how to work with noisy or corrupted signals.
What you’ll learn
- Understand commonly used signal processing tools
- Design, evaluate, and apply digital filters
- Clean and denoise data
- Know what to look for when something isn’t right with the data or the code
- Improve MATLAB or Python programming skills
- Know how to generate test signals for signal processing methods
- *Fully manually corrected English captions!
Table of Contents
1 Signal processing = decision-making + tools
2 Using MATLAB in this course
3 Using Octave-online in this course
4 Using Python in this course
5 Having fun with filtered Glass dance
6 Writing code vs. using toolboxesprograms
7 Using Udemy like a pro
Time series denoising
8 MATLAB and Python code for this section
9 Mean-smooth a time series
10 Gaussian-smooth a time series
11 Gaussian-smooth a spike time series
12 Denoising EMG signals via TKEO
13 Median filter to remove spike noise
14 Remove linear trend (detrending)
15 Remove nonlinear trend with polynomials
16 Averaging multiple repetitions (time-synchronous averaging)
17 Remove artifact via least-squares template-matching
18 Code challenge Denoise these signals!
Spectral and rhythmicity analyses
19 MATLAB and Python code for this section
20 Crash course on the Fourier transform
21 Fourier transform for spectral analyses
22 Welch’s method and windowing
23 Spectrogram of birdsong
24 Code challenge Compute a spectrogram!
Working with complex numbers
25 MATLAB and Python code for this section
26 From the number line to the complex number plane
27 Addition and subtraction with complex numbers
28 Multiplication with complex numbers
29 The complex conjugate
30 Division with complex numbers
31 Magnitude and phase of complex numbers
32 MATLAB and Python code for this section
33 Filtering Intuition, goals, and types
34 FIR filters with firls
35 FIR filters with fir1
36 IIR Butterworth filters
37 Causal and zero-phase-shift filters
38 Avoid edge effects with reflection
39 Data length and filter kernel length
40 Low-pass filters
41 Windowed-sinc filters
42 High-pass filters
43 Narrow-band filters
44 Two-stage wide-band filter
45 Quantifying roll-off characteristics
46 Remove electrical line noise and its harmonics
47 Use filtering to separate birds in a recording
48 Code challenge Filter these signals!
49 MATLAB and Python code for this section
50 Time-domain convolution
51 Convolution in MATLAB
52 Why is the kernel flipped backwards!!!
53 The convolution theorem
54 Thinking about convolution as spectral multiplication
55 Convolution with time-domain Gaussian (smoothing filter)
56 Convolution with frequency-domain Gaussian (narrowband filter)
57 Convolution with frequency-domain Planck taper (bandpass filter)
58 Code challenge Create a frequency-domain mean-smoothing filter
59 MATLAB and Python code for this section
60 What are wavelets
61 Convolution with wavelets
62 Scientific publication about defining Morlet wavelets
63 Wavelet convolution for narrowband filtering
64 Overview Time-frequency analysis with complex wavelets
65 Link to youtube channel with 3 hours of relevant material
66 MATLAB Time-frequency analysis with complex wavelets
67 Time-frequency analysis of brain signals
68 Code challenge Compare wavelet convolution and FIR filter!
Resampling, interpolating, extrapolating
69 MATLAB and Python code for this section
72 Strategies for multirate signals
74 Resample irregularly sampled data
76 Spectral interpolation
77 Dynamic time warping
78 Code challenge denoise and downsample this signal!
79 MATLAB and Python code for this section
80 Outliers via standard deviation threshold
81 Outliers via local threshold exceedance
82 Outlier time windows via sliding RMS
83 Code challenge
84 MATLAB and Python code for this section
85 Local maxima and minima
86 Recover signal from noise amplitude
87 Wavelet convolution for feature extraction
88 Area under the curve
89 Application Detect muscle movements from EMG recordings
90 Full width at half-maximum
91 Code challenge find the features!
92 MATLAB and Python code for this section
93 Total and windowed variance and RMS
94 Signal-to-noise ratio (SNR)
95 Coefficient of variation (CV)
97 Code challenge
98 Bonus lecture