Dsp From Ground Up On Arm Processors [Updated]
Last updated 9/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 13.65 GB | Duration: 25h 26m
Digital Signal Processing on ARM : DFT, Filter Design, Convolution, IIR, FIR, CMSIS-DSP, Linear Systems
What you'll learn
Develop efficient DSP algorithms using MAC and SIMD instructions
Develop RealTime Digital Signal Proceesing firmware
Understand Cortex-M4, M7 DSP optimization strategies
Master the CMSIS-DSP Library
Develop and test the Convolution Kernel algorithm on ARM Processors
Perform convolution using the ARM CMSIS-DSP Library
Develop and test the Discrete Fourier Transform (DFT) algorithm on ARM Processors
Develop and test the Inverse Discrete Fourier Transform (IDFT) algorithm on ARM Processors
Develop and test the Fast Fourier Transform (FFT) algorithm on ARM Processors
Perform Fast Fourier Transform (FFT) using the CMSIS-DSP Library
Perform spectral analysis on ECG signals on ARM Processors
Develop Windowed-Sinc filters on ARM Processors
Develop Finite Impulse Response (FIR) filters on ARM Processors
Develop Infinite Impulse Response (IIR) filters on ARM Processors
Setup Finite Impulse Response (FIR) filters using the CMSIS-DSP Library
Setup Infinite Impulse Response (FIR) filters using the CMSIS-DSP Library
Build passive Low-pass and High-pass filters
Build Modified Sallen-Key filters
Build Bessel, Chebyshev and Butterworth filters
Suppress noise in signals
Give a lecture on Digital Signal Processing (DSP)
Requirements
No programming experience needed - I'll teach you everything you need to know.
You will need the STM32F411-NUCLEO Board
We shall be using the STM32 IDE which is FREE.
Description
Do you want to learn practical digital signal processing (dsp) without confusion?Here s an overview of what you re getting in this dsp on Arm processors course...Understanding the foundations of signal processing without complications:Before going on to implement practical dsp algorithms from scratch, this course teaches you the foundation of signal processing step-by-step. We shall look at key topics in signal processing including: -Signal statistics and noise -Quantization and sampling theorem -Analog filter design -Performance metrics of the Chebyshev, Butterworth, and Bessel filters -Linear systems and their properties. -Finite Impulse Response Filters (FIR) -Infinite Impulse Response Filters (IIR) -Superposition, synthesis, and decomposition. -Convolution and its properties -Discrete Fourier Transform (DFT) and IDFTDeveloping Digital Signal Processing Algorithms:We shall practically develop the signal processing algorithms we discussed in the theory class. Over here rather than use live signals we shall use some already acquired and generated signals to test our algorithms, to keep the focus on developing the algorithms and testing them, rather than signal acquisition.We shall develop the following algorithms: -Signal statistics algorithms: signal mean, signal standard deviation, signal variance -The Convolution algorithm -The Running Sum algorithm -The Discrete Fourier Transform (DFT) algorithm -The Inverse Discrete Fourier Transform (IDFT) algorithmWe shall also implement some of these algorithms using the CMSIS-DSP library and then compare the dynamic performance of our algorithm to that of the ones provided by CMSIS-DSP.Developing Drivers and Data Structures for Signal Acquisition:To be able to properly acquire signals from the external world and then apply our signal processing algorithms, we first need to develop analog-to-digital converter (ADC) drivers for acquiring the signals and appropriate data structures more storing and managing the signal. Over here we shall develop : -A bare-Metal ADC driver for acquiring the signal -A First-In-First-Out data structure for storing and managing the signal Digital Filter Design and Implementations:We shall learn about the various types of digital filters available and then go on to implement them from scratch. We shall implement: -The Moving Average Filter -The Finite Impulse Response (FIR) filter -The Infinite Impulse Response (IIR) FilterWe shall also see how to design the filter kernel of the finite impulse response filters using Matlab.Practical DSP Application on Live Signal:Over here, we shall apply all that we have learnt to process live signals from our microcontroller s ADC.This course is more than just getting the code to work. It will teach you how to . Write Practical DSP Algorithms WITHOUT a fancy Engineering DegreeYou will be able to understand the foundations of signal processing without the hassle of complex mathematical derivations. Taken by 3000+ Students with 200+ ReviewsThis course is the fully updated version of the 1st edition of the course. The first edition has been taken by over 3000 students with over 290 reviews. Here is what what one student had to say about the course."The information covered in this course is exactly what I needed to learn for a new assignment. Both general information about DSP as well as how to implement things on the ARM Cortex M4."Here is what another student had to say:"It is exciting to see how MATLAB is used in embedded systems for signal generation and filter design. The explanation here is simple and to the point. Keeps the viewer's interest captured and avoids unnecessary details."In summary, you really have nothing to lose. Give it a try, it comes with a full money back guarantee. Hope to see you in the course.
Overview
Section 1: Setting Up
Lecture 1 Downloading CubeIDE
Lecture 2 Installing CubeIDE
Lecture 3 Getting the required documentation
Lecture 4 Getting the required package for bare-metal development
Lecture 5 Testing the project setup
Section 2: Getting Stasrted
Lecture 6 Programming : Enabling the Floating Point Unit (FPU)
Lecture 7 Programming : Plotting Signals using the Internal Logic Analyzer
Lecture 8 Programming : UART Driver - Analyzing the Documentation
Lecture 9 Programming : UART Driver - GPIO Pin Configuration
Lecture 10 Programming : UART Driver - Protocol Paramters Configuration
Lecture 11 Programming : UART Driver - Transmission Function
Lecture 12 Programming : UART Driver - Testing the Driver
Lecture 13 Programming : UART Driver - Plotting Signals
Lecture 14 Programming : Integrating the CMSIS-DSP Library
Lecture 15 Programming : Testing the CMSIS-DSP float32_t
Section 3: Signal Statistics and Noise
Lecture 16 Introduction to Signals
Lecture 17 The Signal Mean and Standard Deviation
Lecture 18 Programming : Developing the Signal Mean Algorithm
Lecture 19 Programming : Developing the Signal Variance Algortihm
Lecture 20 Programming : Developing the Signal Standard Deviation Algorithm
Lecture 21 Programming : Computing the Signal Standard Deviation using CMSIS-DSP
Section 4: Quantization and The Sampling Theorem
Lecture 22 Understanding the Sampling Theorem
Lecture 23 The Passive Low-Pass Filter
Lecture 24 The Passive High-Pass Filter
Lecture 25 The Active Filter
Lecture 26 Chebyshev, Butterworth and Bessel Filters
Section 5: ARM Cortex-M DSP Support Features
Lecture 27 Overview of Arm Cortex-M DSP Support Features
Section 6: Linear Systems and Superposition
Lecture 28 Introduction to Linear Systems
Lecture 29 Understanding Superposition
Lecture 30 Impulse and Step Decomposition
Section 7: Convolution
Lecture 31 Introduction to Convolution
Lecture 32 The Convolution Operation
Lecture 33 Examining the Output of Convolution
Lecture 34 The Convolution Sum Equation
Lecture 35 Programming : Analyzing the Input Signals of Convolution
Lecture 36 Programming : Developing the Convolution Algorithm
Lecture 37 Programming : Analyzing the Output Signal of Convolution
Lecture 38 Programming : Computing Convolution using CMSIS-DSP
Lecture 39 Programming : Developing a SysTick Driver to Measure Dynamic Efficiency
Lecture 40 Programming : Measuring the Dynamic Performance of CMSIS-DSP (Part I)
Lecture 41 Programming : Measuring the Dynamic Performance of CMSIS-DSP (Part II)
Lecture 42 A closer look at the Delta function
Lecture 43 The First Difference and Running Sum
Lecture 44 Programming : Implementing the Running Sum Algorithm
Section 8: Discrete Fourier Transform (DFT)
Lecture 45 Introduction to Fourier Transform
Lecture 46 The Discrete Fourier Transform (DFT) Engine
Lecture 47 The Inverse Discrete Fourier Transform (IDFT)
Lecture 48 Programming : Developing the Discrete Fourier Transform (DFT) Algorithm
Lecture 49 Programming : Analyzing the ECG Signal for Inverse DFT
Lecture 50 Programming : Developing the Inverse DFT Algorithm (Part I)
Lecture 51 Programming : Developing the Inverse DFT Algorithm (Part II)
Section 9: Configuring the Clock Tree for Maximum Speed
Lecture 52 Programming : Analyzing the Documentation
Lecture 53 Programming : Listing out the Steps
Lecture 54 Programming : Implementing the Clock Config function (PartI)
Lecture 55 Programming : Implementing the Clock Config function (PartII)
Lecture 56 Programming : Testing the Clock Tree by Running Inverse DFT at 100Mhz
Section 10: Digital Filter Design
Lecture 57 Programming : Generating Signals with Matlab
Lecture 58 Programming : Combining Signals with Matlab
Lecture 59 Programming : Designing a Low-pass Filter Kernel in Matlab
Lecture 60 Programming : Designing a High-pass Filter Kernel in Matlab
Lecture 61 Programming : Analyzing Frequency Components of Signals in Matlab
Lecture 62 Programming : Designing Filters using the FDATool in Matlab
Lecture 63 Programming : Implementing a Digital Low Pass Filter on Embedded Device
Lecture 64 Programming : Implementing a Digital HighPass Filter on Embedded Device
Lecture 65 Programming : Comparing the DFT Results of the Embedded Device to Matlab
Lecture 66 Programming : Implementing a Moving Average Filter for Smoothening Noisy Signals
Section 11: Signal Processing on Live Sensor Data
Lecture 67 Programming : Developing a Bare-Metal ADC Driver- Analyzing the Documentation
Lecture 68 Programming : Developing a Bare-Metal ADC Driver- Initialization Function
Lecture 69 Programming : Developing a Bare-Metal ADC Driver- Testing the Driver
Lecture 70 Programming : Implementing a Live Sample-by-Sample FIR Filter (Part I)
Lecture 71 Programming : Implementing a Live Sample-by-Sample FIR Filter (Part II)
Section 12: Developing the First-In-First-Out (FIFO) Data Structure
Lecture 72 Programming : Implementing the Interface File
Lecture 73 Programming : Implementing the Initialization Function
Lecture 74 Programming : Implementing Fifo_Put Function
Lecture 75 Programming : Implementing the Fifo_Get Function
Lecture 76 Programming : Testing the FIFO
Section 13: Developing a Background Thread for Sampling Sensor Data
Lecture 77 Programming : Analyzing the Documentation
Lecture 78 Programming : Implementing the Intialization Function
Lecture 79 Programming : Testing the Background Thread
Section 14: Performing Digital Signal Processing on Blocks of Sensor Data
Lecture 80 Programming : Getting a Block of Sensor Data into the FIFO
Lecture 81 Programming : Reading from the FIFO
Lecture 82 Programming : Applying FIR Filters on a Block of Sensor Data
Lecture 83 Programming : Performing Convolution on a Block of Sensor Data using CMSIS-DSP
Lecture 84 Programming : Applying Moving Average Filters to a Block of Sensor Data
Section 15: -----------------START OF OLD VERSION OF THE COURSE --------------------------
Lecture 85 Introduction
Lecture 86 Updating and installing new packs
Lecture 87 Increasing System Clock Frequency
Lecture 88 Configuring the Logic Analyzer
Lecture 89 Configuring the Logic Analyzer (Part 2 )
Lecture 90 Plotting signals on the Logic Analyzer
Lecture 91 Plotting signals on the Logic Analyzer (Part 2)
Lecture 92 Configuring an FIR Low-pass filter
Lecture 93 Configuring an FIR Low-pass filter (Part II)
Lecture 94 Testing the Lowpass filter
Lecture 95 Testing the Lowpass filter (Part II)
Lecture 96 Generating a sine wave
Lecture 97 Generating a sine wave (Part 2)
Section 16: Getting Started with Real-time Digital Signal Processing
Lecture 98 Setting up the project
Lecture 99 Configuring the FIR filter
Lecture 100 Configuring the sine generator
Lecture 101 Filtering a noisy signal
Lecture 102 Plotting filter results
Lecture 103 Configuring the Real-time Kernel
Lecture 104 Creating Threads
Lecture 105 Synchronizing Threads
Section 17: Signal Statistics and Noise
Lecture 106 Nature of a signal
Lecture 107 Mean and Standard Deviation
Lecture 108 Coding : Developing the Mean algorithm (Part II)
Lecture 109 Loop Iterator
Lecture 110 Coding : Developing the Mean algorithm (Part II)
Lecture 111 Coding : Developing the Mean algorithm (Part III )
Lecture 112 Coding : Developing the Variance algorithm
Lecture 113 Coding : Computing the signal variance using CMSIS-DSP
Lecture 114 Coding : Developing the Standard Deviation algorithm
Lecture 115 Coding : Computing signal standard deviation using CMSIS-DSP
Lecture 116 Signal-to-Noise ratio
Section 18: Quantization and The Sampling Theorem
Lecture 117 Quantization
Lecture 118 Nyquist Theorem ( Sampling Theorem )
Lecture 119 The Passive Low-Pass Filter
Lecture 120 The Passive High-Pass Filter
Lecture 121 The Modified Sallen-Key Filter
Lecture 122 The Bessel, Chebyshev and Butterworth filters
Lecture 123 Comparing the performance of the Bessel, Chebyshev and Butterworth filters
Lecture 124 Information encoding : Time-domain and frequency-domain encoding
Section 19: ARM Cortex-M DSP Support Features
Lecture 125 From Digital Signal Processors (DSPs) to Digital Signal Controllers (DSCs)
Lecture 126 Features of Digital Signal Controllers
Lecture 127 Overview of the Floating Point Unit (FPU)
Lecture 128 Overview of Cortex-M SIMD Capabilities
Lecture 129 Overview of Cortex-M MAC Capabilities
Lecture 130 Overview of CMSIS-DSP
Lecture 131 Data Types
Section 20: Linear Systems and Superposition
Lecture 132 Signal naming conventions
Lecture 133 System Homogeneity
Lecture 134 System Additivity
Lecture 135 System Shift Invariance
Lecture 136 Synthesis and Decomposition
Lecture 137 Impulse Decomposition
Lecture 138 Step Decomposition
Section 21: Convolution
Lecture 139 Introduction to Convolution
Lecture 140 The Delta Function and Impulse Response
Lecture 141 The Convolution Kernel
Lecture 142 The Convolution Kernel (Part II)
Lecture 143 The Output side analysis and the convolution sum equation
Lecture 144 Coding : Developing the convolution algorithm (Part I)
Lecture 145 Coding : Developing the convolution algorithm (Part II)
Lecture 146 Coding : Developing the convolution algorithm (Part III )
Lecture 147 Coding : Convolving signals using CMSIS-DSP (Part I)
Lecture 148 Coding : Convolving signals using CMSIS-DSP (Part II)
Lecture 149 Coding : Convolving signals using CMSIS-DSP (Part III)
Lecture 150 The Identity property of convolution
Lecture 151 The Running Sum and First Difference
Lecture 152 Coding : Developing the Running Sum algorithm
Lecture 153 Coding : Developing the First Difference algorithm
Section 22: Fourier Transform
Lecture 154 Introduction to Fourier Analysis
Lecture 155 Introduction to Discrete Fourier Transform
Lecture 156 DFT Basis Functions
Lecture 157 Deducing the Inverse DFT
Lecture 158 Calculating the Discrete Fourier Transform (DFT)
Lecture 159 Coding : Developing the DFT algorithm (Part I)
Lecture 160 Coding : Developing the DFT algorithm (Part II )
Lecture 161 Coding : Developing the DFT algorithm (Part III )
Lecture 162 Coding : The Inverse Discrete Fourier Transform of an ECG signal (Part I)
Lecture 163 Coding : The Inverse Discrete Fourier Transform of an ECG signal (Part II)
Lecture 164 Coding : The Inverse Discrete Fourier Transform of an ECG signal (Part IIII)
Lecture 165 Coding : The Inverse Discrete Fourier Transform of an ECG signal (Part IV)
Lecture 166 Symmetry between Time domain and frequency domain -Duality
Lecture 167 Polar Notation
Lecture 168 Coding : Rectangular to Polar conversion
Lecture 169 Coding : Polar to Rectangular conversion
Lecture 170 Introduction to Spectral Analysis
Lecture 171 The Frequency Response
Lecture 172 The Complex Number System
Lecture 173 Polar Representation of Complex Numbers
Lecture 174 Euler's Relation
Lecture 175 Representation of Sinusoids
Lecture 176 Representing Systems
Lecture 177 Introduction to Complex Fourier Transform
Lecture 178 Mathematical Equivalence
Lecture 179 The Complex DFT Equation
Lecture 180 Comparing Real DFT and Complex DFT
Section 23: Fast Fourier Transform (FFT)
Lecture 181 An Overview of how FFT works.
Lecture 182 Understanding the complexity of calculating DFT directly
Lecture 183 How the Decimation -in-Time FFT Algorithm works
Section 24: Digital Filter Design
Lecture 184 Introduction to Digital Filters
Lecture 185 The Filter Kernel
Lecture 186 The Impulse,Step and Frequency response
Lecture 187 Understanding the Logarithmic scale and decibels
Lecture 188 Information representations of a signal
Lecture 189 Time domain parameters
Lecture 190 Frequency domain parameters
Lecture 191 Designing digital filters using the spectral inversion method
Lecture 192 Designing digital filters using the spectral reversal method
Lecture 193 Classification of digital filters
Section 25: Designing Finite Impulse Response (FIR) Filters
Lecture 194 The Moving Average Filter
Lecture 195 Coding : Developing the Moving Average filter algorithm (Part I)
Lecture 196 Coding : Developing the Moving Average filter algorithm (art II)
Lecture 197 The Multiple Pass Moving Average Filter
Lecture 198 The Recursive Moving Average Filter
Lecture 199 Coding : Developing the Recursive Moving Average filter algorithm (Part I)
Section 26: Designing Infinite Impulse Response (IIR) Filters
Lecture 200 Introduction to Recursive Filters
Lecture 201 The Recursion Equation
Lecture 202 The Single-Pole Recursive Filter
Lecture 203 Digital Chebyshev Filters
Section 27: Designing Windowed-Sinc Filters
Lecture 204 Introduction to Windowed-Sinc Filters
Lecture 205 The Sinc Function and the Truncated Sinc Filter
Lecture 206 The Blackman window
Lecture 207 The Hamming and Blackman window equations
Lecture 208 Designing the Windowed Sinc filter
Section 28: FFT Convolution
Lecture 209 Understanding how the Overlap-Add method works
Lecture 210 Understanding how FFT-Convolution works
Lecture 211 Understanding fractional representation
Lecture 212 Introduction to CMSIS-RTOS
Lecture 213 Thread Management APIs
Lecture 214 Coding : Thread Creation (PART I)
Lecture 215 Coding : Thread Creation (PART II)
Lecture 216 osTime Management
Lecture 217 Setting Up Virtual Timers
Lecture 218 Creating Periodic Threads
Lecture 219 What is FreeRTOS ?
Lecture 220 Features of FreeRTOS
Lecture 221 FreeRTOS Variable Names
Lecture 222 FreeRTOS Function Names
Lecture 223 The Task Function
Lecture 224 Creating a Task
Lecture 225 Coding : Task Creation
Lecture 226 Coding : Task Priorities
Lecture 227 Creating efficient delays with vTaskDelay( )
Section 29: DSP Instructions on the ARM Cortex-M
Lecture 228 Getting familiar with some useful SIMD instructions
Lecture 229 Getting familiar with some useful SIMD instructions( Part I)
Lecture 230 Overview of 32-bit DSP Arithmetic Instructions
Lecture 231 Overview of 32-bit Arithmetic Instructions (Part II )
Lecture 232 Overview of 16-bit Arithmetic Instructions
Lecture 233 Overview of 8-bit Arithmetic Instructions
Lecture 234 Overview of Floating Point Instructions
Section 30: Cortex-M4, M7 DSP Optimization Strategies
Lecture 235 Optimization strategies (Part I )
Lecture 236 Optimization strategies (Part II )
Section 31: Setting Up
Lecture 237 Overview of the STM32F4-DISCOVERY Board
Lecture 238 Overview of the STM32F4- NUCLEO Board
Lecture 239 Downloading Keil uVision 5
Lecture 240 Installing Keil uVision 5
Lecture 241 Overview of Keil uVision 5
Lecture 242 Changing the Compiler
Lecture 243 Setting Up STM32CubeMX
Lecture 244 Overview of STM32CubeMX
Lecture 245 Overview of STM32CubeMX (continued)
Lecture 246 Checking for Updates and Firmware
Lecture 247 Overview of Peripheral Configuration
Lecture 248 CubeMX Input/Output project
Lecture 249 Clock Tree configuration
Lecture 250 The Configuration Tab
Section 32: Setting Up Matlab
Lecture 251 Downloading Matlab
Lecture 252 Installing Matlab
Lecture 253 Overview of Matlab
Lecture 254 Coding : Writing to a file
Lecture 255 Coding : Reading from a file
Section 33: Closing Remarks
Lecture 256 Closing Remarks
If you are an experienced embedded developer and want to learn how to professionally develop embedded applications for ARM processors, then take this course.,If you are an absolute beginner to embedded systems, then take this course.
https://anonymz.com/?https://www.udemy.com/course/arm-cortex-dsp/
https://rapidgator.net/file/964f632de2a6d28cada8abc902ed86ea/DSP_From_Ground_Up _on_ARM_Processors_UPDATED.part1.rar https://rapidgator.net/file/a79d6ace984fd1a3f9de79bd85a1ef2e/DSP_From_Ground_Up _on_ARM_Processors_UPDATED.part2.rar https://rapidgator.net/file/a9f531e3f0bf6801622fd02153b9f324/DSP_From_Ground_Up _on_ARM_Processors_UPDATED.part3.rar
https://nitroflare.com/view/6925A46F54611D7/DSP_From_Ground_Up%E2%84%A2_on_ARM_Processors_UPDATED.part1.rar https://nitroflare.com/view/E9367C35F5054C4/DSP_From_Ground_Up%E2%84%A2_on_ARM_Processors_UPDATED.part2.rar https://nitroflare.com/view/BE8F3F8E91B8B31/DSP_From_Ground_Up%E2%84%A2_on_ARM_Processors_UPDATED.part3.rar