
Yon can download the complete course material including Lecture slides and Python codes
Launch a concise Python crash course that covers essential modules for implementing signal processing techniques, teaching programming basics so you can program in Python and apply DSP algorithms.
Explore using Python as a calculator for addition, subtraction, multiplication, and division, including exponent and square roots, order of operations, modulo, and the basics of variable assignment.
Learn to create and manipulate 1d and 2d arrays in Python for DSP. Inspect shape and size, and find max, min, and their indices.
Master array creation in Python for DSP using range with lower and upper bounds, and interval, and linear space numbers; learn to reshape a 25-element array into a 5x5 matrix.
Learn to generate zeros and ones, create identity matrices, generate random numbers from normal and uniform distributions, and random integers, then index and slice arrays to extract submatrices and columns.
Learn to plot a sine wave against time, set x and y axis limits, add labels, a title, and a legend, and customize the figure with colors, markers, and styles.
Master plotting and visualization by building subplots, configuring figure size, and applying line styles via policy parameters that affect all plots; plot data against X and Y with labeled axes.
Master nested for loops in Python, using outer and inner iterations and placeholders to build and fill matrices, including a 3x6 zeros matrix and a 5x5 checkerboard.
Explore fundamental discrete-time signals, including the unit impulse, unit step, and common time-shifting operations that create delayed and advanced versions; compare to continuous-time counterparts.
Explore sampling and reconstruction in Python by applying Nyquist principles, showing how sampling at least twice the signal's maximum frequency enables accurate recovery of sine waves.
Explore how discrete signals are represented as sequences and graphs, then apply the convolution sum by flipping, shifting, multiplying, and adding to produce the output sequence.
Explore full mode convolution in digital signal processing, showing that the output length equals input length plus kernel length minus one, with a concrete numerical example.
Learn how to denoise a noisy signal using convolution and moving average filters, generate a sine wave with noise, and apply convolution to recover the original signal.
Explore moving average, Gaussian, and median filters to recover signals from noisy data. Learn their convolution-based noise removal and spike handling.
Explore implementing a moving average filter in Python to remove noise from a sinusoidal signal, using 256 Hz sampling and a 61-point window.
Apply a gaussian mean filter to remove noise using a kernel generated from full width at half maximum. Pad with zeros to preserve length and clip edges.
Apply the median filter to noisy signals by replacing each point with the median of its neighbors, a nonlinear alternative to the moving average that resists outliers.
Learn to divide complex numbers by multiplying the numerator and denominator by the conjugate of the denominator, turning the denominator into a real number using a^2 - b^2 and simplifying.
Explore frequency concepts and build a wave from sine, cosine, and DC components. Learn Fourier transform steps in Python, analyze multiplexed signals, and study the amplitude spectrum and inverse transform.
Model a signal by decomposing it into sine waves and using dot products to locate frequencies, then use complex sine waves and amplitude correction to map to frequencies, noting symmetry.
Learn stepwise python coding of the Fourier transform for DSP, building a 256-sample sinusoid (amplitude 3, frequency 5 Hz) with complex numbers, Nyquist normalization, and frequency indexing, including multiplexing signals.
Explore why digital filters enable signal separation and restoration, define spectral separability, and contrast finite and infinite impulse responses as foundations for stable filtering.
Design a fir zero-shift filter in five steps using a 063 reader. Generate a test signal with zero-start and zero-end segments and a mid-band sinusoid, then apply a least-squares filter.
Design a low-pass fir filter to remove noise from a signal, defining a 20 Hz cutoff in the frequency domain and validating with a least-squares approach.
Students design low-pass and high-pass filters using the window method and practice coding by designing a band with window techniques.
Learn to design IIR Butterworth filters from ground up in Python, defining order and cutoff, generating coefficients, obtaining impulse response, transforming to frequency domain, and applying the filter to signals.
This course will bridge the gap between the theory and implementation of Signal Processing Algorithms and their implementation in Python. All the lecture slides and python codes are provided.
Why Signal Processing?
Since the availability of digital computers in the 1970s, digital signal processing has found its way in all sections of engineering and sciences.
Signal processing is the manipulation of the basic nature of a signal to get the desired shaping of the signal at the output. It is concerned with the representation of signals by a sequence of numbers or symbols and the processing of these signals.
Following areas of sciences and engineering are specially benefitted by rapid growth and advancement in signal processing techniques.
1. Machine Learning.
2. Data Analysis.
3. Computer Vision.
4. Image Processing
5. Communication Systems.
6. Power Electronics.
7. Probability and Statistics.
8. Time Series Analysis.
9. Finance
10. Decision Theory
11. Biomedical Signal Processing
12. Health care
Course Outline
Section 01: Introduction of the course
Section 02: Python crash course
Section 03: Fundamentals of Signal Processing
Section 04: Convolution of Signals
Section 05: Signal Denoising Filters
Section 06: Complex Numbers
Section 07: Fourier Transform
Section 08: FIR Filter Design
Section 09: IIR Filter Design