Signal processing problems, solved in MATLAB and in Python
4.5 (774 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
5,195 students enrolled

Signal processing problems, solved in MATLAB and in Python

Applications-oriented instruction on signal processing and digital signal processing (DSP) using MATLAB and Python codes
Bestseller
4.5 (774 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
5,196 students enrolled
Created by Mike X Cohen
Last updated 6/2020
English
English
Current price: $23.99 Original price: $34.99 Discount: 31% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 12.5 hours on-demand video
  • 13 articles
  • 12 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
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!
Course content
Expand all 98 lectures 12:26:43
+ Introductions
7 lectures 35:24

It's all in your head. Really. 

Preview 04:05

If you have MATLAB available, that's the best way to follow this course. 

Using MATLAB in this course
03:32

Online Octave is also great. 

Using Octave-online in this course
04:50

Python is fine as well. 

Using Python in this course
03:30

Have fun filtering beautiful music, and get excited for what you'll learn throughout the course!

Having fun with filtered Glass dance
07:48

A philosophical discussion about using your own code, others code, or a mixture. 

Writing code vs. using toolboxes/programs
06:52
Using the Q&A forum
04:47
+ Time series denoising
11 lectures 01:17:22

MATLAB and Python code for this section.

MATLAB and Python code for this section
00:03

The mean-smoothing filter is a simple yet effective denoising tool. 

Preview 08:13

Like the mean-smoothing filter, but smoothier. 

Gaussian-smooth a time series
12:33

Application of Gaussian-smoothing filter to spike time series. 

Gaussian-smooth a spike time series
05:08

Reduce noise and enhance signal by converting to TKEO energy. 

Preview 07:58

Eliminate spike artifacts using the threshold-median filter. 

Median filter to remove spike noise
09:52

Got a trend? Remove it by detrending! 

Remove linear trend (detrending)
02:07

Disappointed with linear trends? Try the nonlinear variety! 

Remove nonlinear trend with polynomials
14:33

Strength in numbers.

Averaging multiple repetitions (time-synchronous averaging)
05:18

Use least-squares projection to remove an artifact. 

Remove artifact via least-squares template-matching
10:32

Apply your skills to solve the mystery! 

Code challenge: Denoise these signals!
01:05
+ Spectral and rhythmicity analyses
6 lectures 01:00:17

Download the zip!

MATLAB and Python code for this section
00:03

A quick intro to what you need to know about the Fourier transform. 

Crash course on the Fourier transform
15:15

Examples of the FFT for spectral analyses. 

Fourier transform for spectral analyses
18:44

Increase SNR for non-stationary signals. 

Welch's method and windowing
15:26

What does a birdsong look like? 

Spectrogram of birdsong
08:19

Apply your skills to solve this mystery! 

Code challenge: Compute a spectrogram!
02:30
+ Working with complex numbers
7 lectures 35:56

Zip file with all code files for this section.

MATLAB and Python code for this section
00:01

1D numbers are for kids. Welcome to the adult numbers. 

From the number line to the complex number plane
10:14

Adding complex numbers works how you think it should. 

Addition and subtraction with complex numbers
03:29

Multiplying complex numbers is not what you probably think! 

Multiplication with complex numbers
06:15

How to get to the upside down. 

The complex conjugate
04:19

Use the complex conjugate to simplify your life. 

Division with complex numbers
03:50

Intersection of complex numbers and trigonometry. 

Magnitude and phase of complex numbers
07:48
+ Filtering
17 lectures 02:23:57

Download the zip!

MATLAB and Python code for this section
00:03

This video provides an introduction to this entire section. Don't skip it! 

Filtering: Intuition, goals, and types
16:57

Design FIR filters using the firls kernel function. 

FIR filters with firls
14:44

Can't count to 6? Use fir1 instead! 

FIR filters with fir1
06:14

IIR filters are smooth. Just like butter. 

IIR Butterworth filters
10:10

Does time flow forwards or backwards? Or both? 

Causal and zero-phase-shift filters
09:30

Learn how to use reflection to avoid those pesky edge effects! 

Preview 11:38

Identify and resolve a problem with short data sequences.

Data length and filter kernel length
07:56

Let the slow-pokes through. 

Low-pass filters
07:06

sin(x)/x: The. Best. Function. Ever. 

Windowed-sinc filters
11:59

Take the fast lane to signal processing! 

High-pass filters
06:04

See the importance of appropriate parameter selections! 

Narrow-band filters
06:39

The better way to filter across a "wide" frequency band. 

Preview 04:48

Learn one way to characterize FIR and IIR filters. 

Quantifying roll-off characteristics
11:37

Application of super-narrow notch filters for removing pesky electrical artifacts. 

Remove electrical line noise and its harmonics
10:08

Use temporal filtering to separate different sources of signals. 

Use filtering to separate birds in a recording
07:01

Apply your skills to solve this mystery! 

Code challenge: Filter these signals!
01:23
+ Convolution
10 lectures 01:11:20

Download the zip!

MATLAB and Python code for this section
00:02

Learn how to implement convolution in the time domain. 

Time-domain convolution
11:48

See convolution implemented in code. 

Convolution in MATLAB
11:45

Sometimes, truth is stranger than fiction. 

Why is the kernel flipped backwards?!?!!?
04:40

All roads lead to Rome. 

The convolution theorem
09:55
Thinking about convolution as spectral multiplication
12:18

Example of convolution for signal processing. 

Convolution with time-domain Gaussian (smoothing filter)
05:58

Example of convolution for signal processing. 

Convolution with frequency-domain Gaussian (narrowband filter)
07:02

Example of convolution for signal processing. 

Convolution with frequency-domain Planck taper (bandpass filter)
06:12

Apply your skills to solve this mystery! 

Code challenge: Create a frequency-domain mean-smoothing filter
01:40
+ Wavelet analysis
10 lectures 01:06:03

Download the zip!

MATLAB and Python code for this section
00:03

Introduction to wavelets and some examples of common wavelets. 

What are wavelets?
12:53

See what happens when you convolve a signal with wavelets. 

Convolution with wavelets
05:13
Scientific publication about defining Morlet wavelets
00:10

Morlet wavelets are great for narrowband filtering. 

Wavelet convolution for narrowband filtering
14:43

Complex wavelets can be used for time-frequency analysis. 

Overview: Time-frequency analysis with complex wavelets
07:58
Link to youtube channel with 3 hours of relevant material
00:14
MATLAB: Time-frequency analysis with complex wavelets
14:51

See an example of time-frequency analysis in real data. 

Time-frequency analysis of brain signals
07:57

Apply your skills to solve this mystery! 

Code challenge: Compare wavelet convolution and FIR filter!
02:00
+ Resampling, interpolating, extrapolating
10 lectures 01:27:50

Download the zip!

MATLAB and Python code for this section
00:02

Unsatisfied with how much data you have? Upsample to get more! 

Upsampling
13:06

Uh oh, too much data? Try downsampling! 

Downsampling
12:36

How to deal with multivariate signals that have different sampling rates. 

Preview 06:38

Missing data? No worries, just interpolate! 

Interpolation
07:35

Irregular sampling rate? Watch this video to find out what to do! 

Resample irregularly sampled data
11:11

To infinity, and beyond! 

Extrapolation
06:02

Interpolate based on smooth transitions in frequency. 

Spectral interpolation
10:16

See how similar two signals can get! 

Dynamic time warping
16:10

Apply your skills to solve this mystery! 

Code challenge: denoise and downsample this signal!
04:14
+ Outlier detection
5 lectures 27:10

Download the zip file!

MATLAB and Python code for this section
00:02

Identify outliers based on extreme standard deviation. 

Outliers via standard deviation threshold
08:54

For non-stationary time series, a "global" threshold might not work. 

Outliers via local threshold exceedance
08:33

Identify and remove excessively noisy time windows. 

Outlier time windows via sliding RMS
05:50

Apply your skills to solve this mystery! 

Code challenge
03:51
+ Feature detection
8 lectures 01:30:23

Download the zip file!

MATLAB and Python code for this section
00:02

Identifying local extrema is not as trivial as you might think! 

Local maxima and minima
14:39

Convert noise into signal. 

Recover signal from noise amplitude
11:36

Application of convolution for automatic feature extraction and averaging. 

Wavelet convolution for feature extraction
13:29

Bringing some elementary calculus into signal processing. 

Area under the curve
12:46

Application of feature detection for muscle movements. 

Application: Detect muscle movements from EMG recordings
17:43

Learn how to characterize the width of a Gaussian or Gaussian-like features. 

Full width at half-maximum
16:58

Apply your skills to solve this mystery! 

Code challenge: find the features!
03:10
Requirements
  • Basic programming experience in MATLAB or Python
  • High-school math
Description

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.


Are there prerequisites?

You need some programming experience. I go through the videos in MATLAB, and you can also follow along using Octave (a free, cross-platform program that emulates MATLAB). I provide corresponding Python code if you prefer Python. You can use any other language, but you would need to do the translation yourself.

I recommend taking my Fourier Transform course before or alongside this course. However, this is not a requirement, and you can succeed in this course without taking the Fourier transform course.


What should you do now?

Watch the sample videos, and check out the reviews of my other courses -- many of them are "best-seller" or "top-rated" and have lots of positive reviews. If you are unsure whether this course is right for you, then feel free to send me a message. I hope you to see you in class!

Who this course is for:
  • Students in a signal processing or digital signal processing (DSP) course
  • Scientific or industry researchers who analyze data
  • Developers who work with time series data
  • Someone who wants to refresh their knowledge about filtering
  • Engineers who learned the math of DSP and want to learn about implementations in software