Srbija Posted October 28, 2023 #1 Posted October 28, 2023 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. Hidden Content Give reaction to this post to see the hidden content. Hidden Content Give reaction to this post to see the hidden content. Hidden Content Give reaction to this post to see the hidden content.
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now