A Simple Introduction To Digital Signal Processing
Last updated 7/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 10.32 GB | Duration: 13h 46m
Last updated 7/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 10.32 GB | Duration: 13h 46m
With Practical Applications in Python
What you'll learn
How signals are represented by sinusoids.
What it means for a system to be linear and time-invariant.
How digital filters can be represented by difference equations.
What the frequency response of a system is.
What convolution is and why it is important in signal processing.
What it means for two signals to be correlated.
How the discrete Fourier transform can be used to identify the frequencies present in a signal.
Get a crash course in Python.
How Python can be used to produce practical applications of digital signal processing.
Requirements
It would be nice to have had linear algebra, but most of what is taught can be understood without it.
If you wish to run the code, then you will need a computer that can run Python.
Python 3.x (directions for installing are given in the course).
Description
When I was an undergraduate I took a course called Linear Systems, which provides background theory for courses like Digital Signal Processing, Control Systems, and Communication Systems. While I did earn a grade of A in the course, I never really understood the purpose of the course beyond it being a prerequisite to other courses that I was required to take. My goal in this course is to introduce you to digital signal processing in such a way that you not only understand the purpose of the various topics, but that you also see how you can apply the material. In order to demonstrate practical applications of digital signal processing, I provide about a dozen Python programs for doing such things as removing noise from audio files, removing noise from images, identifying which phone numbers are pressed on a touch-tone phone, and analyzing temperature data. I go over each program, explaining how it works and how I designed it. I don't assume that you have already programmed using the Python programming language, so I also provide a crash course to get you up to speed. This course is not for someone wanting a rigorous, theory- and math-heavy course; there are many available options if this is what you are looking for. This isn't to say that we will not use math in this course. I think that there is too much that you need to know that you can't really understand without some math. To help you with the math that we will learn, I review complex numbers and complex exponentials at the beginning of the course. Then as we learn new topics I provide practice problems with my solved answers.
Overview
Section 1: Introduction
Lecture 1 Introduction
Lecture 2 Review of Complex Numbers
Lecture 3 Review of Complex Arithmetic (with practice problems)
Section 2: Python Crash Course
Lecture 4 Installing Anaconda on Linux (also watch if using Mac OS)
Lecture 5 Installing Anaconda on Windows
Lecture 6 Statements
Lecture 7 Booleans
Lecture 8 Conditionals
Lecture 9 Loops
Lecture 10 Program Development
Lecture 11 Functions
Lecture 12 Lists
Lecture 13 Strings
Lecture 14 Files
Lecture 15 Dictionaries
Lecture 16 Numpy
Lecture 17 Matplotlib
Section 3: Sinusoids and Basic Signals
Lecture 18 Sinusoids
Lecture 19 Sinusoids Example (with practice problems)
Lecture 20 Sampling
Lecture 21 Aliasing (with practice problems)
Lecture 22 Application: Music Generation
Lecture 23 Basic Filters
Lecture 24 Basic Signals
Lecture 25 Difference Equations (with practice problems)
Section 4: Linear, Time-Invariant (LTI) Systems
Lecture 26 Linear, Time-Invariant (LTI) Systems
Lecture 27 Linearity Examples, part 1
Lecture 28 Linearity Examples, part 2 (with practice problems)
Lecture 29 Time-Invariance Examples
Lecture 30 Application: Decoding a Digital Message
Section 5: Time-Domain Analysis
Lecture 31 Impulse Response
Lecture 32 FIR vs IIR Filters
Lecture 33 Linear Convolution
Lecture 34 Convolution Property: Commutativity
Lecture 35 Convolution Property: Associativity
Lecture 36 Convolution Property: Distributitvity (with practice problems)
Lecture 37 Application: Image Processing
Lecture 38 Correlation (with practice problems)
Lecture 39 Application: Template Matching
Section 6: Frequency-Domain Analysis
Lecture 40 Frequency-Domain Analysis
Lecture 41 Harmonics (with practice problems)
Section 7: Discrete Fourier Transform
Lecture 42 The Discrete Fourier Transform (DFT)
Lecture 43 DFT: A Conceptual Understanding (with practice problems)
Lecture 44 Application: Noise Removal from Audio using the DFT
Lecture 45 Application: Analyzing Temperature Data using the DFT
Section 8: Frequency Response
Lecture 46 Frequency Response of a Filter
Lecture 47 Frequency Response and Convolution
Section 9: Spectrogram
Lecture 48 The Spectrogram
Lecture 49 Application: Identifying a Phone Number using DTMF
Lecture 50 Feature Selection
Lecture 51 Application: Classifying Audio Files
Section 10: Design of Nonrecursive Filters
Lecture 52 Design of Nonrecursive Filters, part 1
Lecture 53 Design of Nonrecursive Filters, part 2
Lecture 54 Application: Noise Removal from Audio using an FIR Filter
Section 11: Frequency-Domain Analysis and the z-Transform
Lecture 55 The z-Transform
Lecture 56 The z-Transform: Poles and Zeros
Lecture 57 The z-Transform: Examples
Lecture 58 The z-Transform and Convolution (with practice problems)
Lecture 59 Application: Remove a Specific Frequency with a Notch Filter
Section 12: Design of Recursive Filters
Lecture 60 Design of Recursive Filters, part 1
Lecture 61 Design of Recursive Filters, part 2 (with practice problems)
Lecture 62 Application: Change Low Frequencies with a Shelving Filter
Lecture 63 Application: Separate Audio with Blind Source Separation
Section 13: End of Course
Lecture 64 Where to Go From Here
Someone without an electronics background who is interested in knowing more about Digital Signal Processing and some of its applications,.,Someone taking (or has taken) an undergraduate-level signal processing course that is mathematically rigorous but light on practical applications.