DSP-Guide
Digital Signal Processing(DSP) Guide
https://github.com/mikeroyal/DSP-Guide
Last synced: 6 days ago
JSON representation
-
C/C++ Learning Resources
- C - purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. It supports structured programming, lexical variable scope, and recursion, with a static type system. C also provides constructs that map efficiently to typical machine instructions, which makes it one was of the most widely used programming languages today.
- Embedded C - committee) to address issues that exist between C extensions for different [embedded systems](https://en.wikipedia.org/wiki/Embedded_system). The extensions hep enhance microprocessor features such as fixed-point arithmetic, multiple distinct memory banks, and basic I/O operations. This makes Embedded C the most popular embedded software language in the world.
- C & C++ Developer Tools from JetBrains
- Open source C++ libraries on cppreference.com
- C++ Graphics libraries
- C++ Libraries in MATLAB
- Google C++ Style Guide
- Introduction C++ Education course on Google Developers
- C++ style guide for Fuchsia
- Chromium C++ Style Guide
- C++ Core Guidelines
- C++ Style Guide for ROS
- Learn C++
- Learn C : An Interactive C Tutorial
- C++ Online Training Courses on LinkedIn Learning
- C++ Tutorials on W3Schools
- Learn C Programming Online Courses on edX
- Learn C++ with Online Courses on edX
- Learn C++ on Codecademy
- Coding for Everyone: C and C++ course on Coursera
- C++ For C Programmers on Coursera
- C++ Online Courses on Udemy
- Top C Courses on Udemy
- Basics of Embedded C Programming for Beginners on Udemy
- C++ For Programmers Course on Udacity
- C++ Fundamentals Course on Pluralsight
- C++ - platform language that can be used to build high-performance applications developed by Bjarne Stroustrup, as an extension to the C language.
- C++ Tools and Libraries Articles
- C++ Style Guide for ROS
-
C/C++ Tools and Frameworks
- Visual Studio - rich application that can be used for many aspects of software development. Visual Studio makes it easy to edit, debug, build, and publish your app. By using Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, and Windows Store.
- Visual Studio Code
- ReSharper C++
- AppCode - fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages. All code inspections are run on the fly.
- CLion - platform IDE for C and C++ developers developed by JetBrains.
- Code::Blocks
- Conan
- High Performance Computing (HPC) SDK
- Boost - edge C++. Boost has been a participant in the annual Google Summer of Code since 2007, in which students develop their skills by working on Boost Library development.
- Automake
- Cmake - source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice.
- GDB
- GCC - C, Fortran, Ada, Go, and D, as well as libraries for these languages.
- GSL - squares fitting. There are over 1000 functions in total with an extensive test suite.
- OpenGL Extension Wrangler Library (GLEW) - platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform.
- Libtool
- Maven
- TAU (Tuning And Analysis Utilities) - based sampling. All C++ language features are supported including templates and namespaces.
- Clang - C, C++ and Objective-C++ compiler when targeting X86-32, X86-64, and ARM (other targets may have caveats, but are usually easy to fix). Clang is used in production to build performance-critical software like Google Chrome or Firefox.
- OpenCV - time applications. Cross-Platform C++, Python and Java interfaces support Linux, MacOS, Windows, iOS, and Android.
- ANTLR (ANother Tool for Language Recognition)
- Oat++ - efficient web application. It's zero-dependency and easy-portable.
- Cython
- Infer - C, and C. Infer is written in [OCaml](https://ocaml.org/).
- Vcpkg
- CppSharp
- JavaCPP
- Spdlog - only/compiled, C++ logging library.
- Libcu++
-
Computer Vision Learning Resources
- Computer Vision
- OpenCV Courses
- Top Computer Vision Courses Online | Coursera
- Top Computer Vision Courses Online | Udemy
- Learn Computer Vision with Online Courses and Lessons | edX
- Computer Vision and Image Processing Fundamentals | edX
- Computer Vision Nanodegree program | Udacity
- Machine Vision Course |MIT Open Courseware
- Computer Vision Training Courses | NobleProg
- Visual Computing Graduate Program | Stanford Online
- Introduction to Computer Vision Courses | Udacity
- Computer Vision
- Computer Vision
- Computer Vision and Image Processing Fundamentals | edX
- Exploring Computer Vision in Microsoft Azure
- OpenCV Courses
- Exploring Computer Vision in Microsoft Azure
-
Computer Vision Tools, Libraries, and Frameworks
- Scikit-Learn
- NVIDIA cuDNN - accelerated library of primitives for [deep neural networks](https://developer.nvidia.com/deep-learning). cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers. cuDNN accelerates widely used deep learning frameworks, including [Caffe2](https://caffe2.ai/), [Chainer](https://chainer.org/), [Keras](https://keras.io/), [MATLAB](https://www.mathworks.com/solutions/deep-learning.html), [MxNet](https://mxnet.incubator.apache.org/), [PyTorch](https://pytorch.org/), and [TensorFlow](https://www.tensorflow.org/).
- Automated Driving Toolbox™ - eye-view plot and scope for sensor coverage, detections and tracks, and displays for video, lidar, and maps. The toolbox lets you import and work with HERE HD Live Map data and OpenDRIVE® road networks. It also provides reference application examples for common ADAS and automated driving features, including FCW, AEB, ACC, LKA, and parking valet. The toolbox supports C/C++ code generation for rapid prototyping and HIL testing, with support for sensor fusion, tracking, path planning, and vehicle controller algorithms.
- Computer Vision Toolbox™
- Statistics and Machine Learning Toolbox™
- Lidar Toolbox™ - camera cross calibration for workflows that combine computer vision and lidar processing.
- Mapping Toolbox™
- UAV Toolbox
- Parallel Computing Toolbox™ - intensive problems using multicore processors, GPUs, and computer clusters. High-level constructs such as parallel for-loops, special array types, and parallelized numerical algorithms enable you to parallelize MATLAB® applications without CUDA or MPI programming. The toolbox lets you use parallel-enabled functions in MATLAB and other toolboxes. You can use the toolbox with Simulink® to run multiple simulations of a model in parallel. Programs and models can run in both interactive and batch modes.
- Partial Differential Equation Toolbox™
- ROS Toolbox
- Robotics Toolbox™ - holonomic vehicle. The Toolbox also including a detailed Simulink model for a quadrotor flying robot.
- Deep Learning Toolbox™ - term memory (LSTM) networks to perform classification and regression on image, time-series, and text data. You can build network architectures such as generative adversarial networks (GANs) and Siamese networks using automatic differentiation, custom training loops, and shared weights. With the Deep Network Designer app, you can design, analyze, and train networks graphically. It can exchange models with TensorFlow™ and PyTorch through the ONNX format and import models from TensorFlow-Keras and Caffe. The toolbox supports transfer learning with DarkNet-53, ResNet-50, NASNet, SqueezeNet and many other pretrained models.
- Reinforcement Learning Toolbox™ - making algorithms for complex applications such as resource allocation, robotics, and autonomous systems.
- Deep Learning HDL Toolbox™ - built bitstreams for running a variety of deep learning networks on supported Xilinx® and Intel® FPGA and SoC devices. Profiling and estimation tools let you customize a deep learning network by exploring design, performance, and resource utilization tradeoffs.
- Model Predictive Control Toolbox™ - loop simulations, you can evaluate controller performance.
- Vision HDL Toolbox™ - streaming algorithms for the design and implementation of vision systems on FPGAs and ASICs. It provides a design framework that supports a diverse set of interface types, frame sizes, and frame rates. The image processing, video, and computer vision algorithms in the toolbox use an architecture appropriate for HDL implementations.
- Microsoft AirSim - source, cross platform, and supports [software-in-the-loop simulation](https://www.mathworks.com/help///ecoder/software-in-the-loop-sil-simulation.html) with popular flight controllers such as PX4 & ArduPilot and [hardware-in-loop](https://www.ni.com/en-us/innovations/white-papers/17/what-is-hardware-in-the-loop-.html) with PX4 for physically and visually realistic simulations. It is developed as an Unreal plugin that can simply be dropped into any Unreal environment. AirSim is being developed as a platform for AI research to experiment with deep learning, computer vision and reinforcement learning algorithms for autonomous vehicles.
- Back to the Top
- LRSLibrary - Rank and Sparse Tools for Background Modeling and Subtraction in Videos. The library was designed for moving object detection in videos, but it can be also used for other computer vision and machine learning problems.
- Image Processing Toolbox™ - standard algorithms and workflow apps for image processing, analysis, visualization, and algorithm development. You can perform image segmentation, image enhancement, noise reduction, geometric transformations, image registration, and 3D image processing.
- OpenCV - time computer vision applications. The C++, Python, and Java interfaces support Linux, MacOS, Windows, iOS, and Android.
-
CUDA Learning Resources
- CUDA - accelerated applications, the sequential part of the workload runs on the CPU, which is optimized for single-threaded. The compute intensive portion of the application runs on thousands of GPU cores in parallel. When using CUDA, developers can program in popular languages such as C, C++, Fortran, Python and MATLAB.
- CUDA Toolkit Documentation
- CUDA Quick Start Guide
- CUDA on WSL
- NVIDIA Deep Learning cuDNN Documentation
- CUDA GPU support for TensorFlow
-
CUDA Tools Libraries, and Frameworks
- Chainer - based deep learning framework aiming at flexibility. It provides automatic differentiation APIs based on the define-by-run approach (dynamic computational graphs) as well as object-oriented high-level APIs to build and train neural networks. It also supports CUDA/cuDNN using [CuPy](https://github.com/cupy/cupy) for high performance training and inference.
- CUDA Toolkit - accelerated applications. The CUDA Toolkit allows you can develop, optimize, and deploy your applications on GPU-accelerated embedded systems, desktop workstations, enterprise data centers, cloud-based platforms and HPC supercomputers. The toolkit includes GPU-accelerated libraries, debugging and optimization tools, a C/C++ compiler, and a runtime library to build and deploy your application on major architectures including x86, Arm and POWER.
- CUDA-X HPC - X HPC includes highly tuned kernels essential for high-performance computing (HPC).
- CuPy - compatible multi-dimensional array on CUDA. CuPy consists of the core multi-dimensional array class, cupy.ndarray, and many functions on it. It supports a subset of numpy.ndarray interface.
- CatBoost
- cuDF - like API that will be familiar to data engineers & data scientists, so they can use it to easily accelerate their workflows without going into the details of CUDA programming.
- ArrayFire - purpose library that simplifies the process of developing software that targets parallel and massively-parallel architectures including CPUs, GPUs, and other hardware acceleration devices.
- AresDB - powered real-time analytics storage and query engine. It features low query latency, high data freshness and highly efficient in-memory and on disk storage management.
- Open Computing Language (OpenCL) - to-parallel-computing-zNrIS) of heterogeneous platforms consisting of CPUs, GPUs, and other hardware accelerators found in supercomputers, cloud servers, personal computers, mobile devices and embedded platforms.
- OpenCL | GitHub
- Khronos Technology Courses and Training
- OpenCL Tutorials - StreamHPC
- Introduction to Intel® OpenCL Tools
- OpenCL | NVIDIA Developer
- Introduction to OpenCL on FPGAs Course | Coursera
- Compiling OpenCL Kernel to FPGAs Course | Coursera
- GPUVerify
- NVIDIA® Nsight™ Visual Studio Edition
- Radeon™ GPU Profiler
- Radeon™ GPU Analyzer
- AMD Radeon ProRender - based rendering engine that enables creative professionals to produce stunningly photorealistic images on virtually any GPU, any CPU, and any OS in over a dozen leading digital content creation and CAD applications.
- Intel® SDK For OpenCL™ Applications - intensive workloads. Customize heterogeneous compute applications and accelerate performance with kernel-based programming.
- NVIDIA Container Toolkit - container) and utilities to automatically configure containers to leverage NVIDIA GPUs.
- CUTLASS - performance matrix-multiplication (GEMM) at all levels and scales within CUDA. It incorporates strategies for hierarchical decomposition and data movement similar to those used to implement cuBLAS.
- CUB
- Thrust - level interface greatly enhances programmer productivity while enabling performance portability between GPUs and multicore CPUs.
- Arraymancer - dimensional array) project in Nim. The main focus is providing a fast and ergonomic CPU, Cuda and OpenCL ndarray library on which to build a scientific computing ecosystem.
- Kintinuous - time dense visual SLAM system capable of producing high quality globally consistent point and mesh reconstructions over hundreds of metres in real-time with only a low-cost commodity RGB-D sensor.
- Back to the Top
- GPUVerify
- OpenCL ICD Loader
- clBLAS
- clFFT
- clSPARSE
- clRNG
- CLsmith - core environment, OpenCL. Its primary feature is the generation of random OpenCL kernels, exercising many features of the language. It also brings a novel idea of applying EMI, via dead-code injection.
- Oclgrind - races and barrier divergence, collecting instruction histograms, and for interactive OpenCL kernel debugging. The simulator is built on an interpreter for LLVM IR.
- Intel® SDK For OpenCL™ Applications - intensive workloads. Customize heterogeneous compute applications and accelerate performance with kernel-based programming.
- OpenCL Tutorials - StreamHPC
- Introduction to Intel® OpenCL Tools
- Khronos Group | GitHub
- OpenCL | GitHub
-
Differential Equations Learning Resources
- Ordinary Differential Equation | Wolfram MathWorld
- Differential Equations - Wolfram|Alpha
- Differential Equations | Mathematics | MIT OpenCourseWare
- Differential Equations - Complete Review Course | YouTube
- Differential Equations Playlist | YouTube
- Introduction to Differential Equations | YouTube
- Linear Systems of Differential Equations | YouTube
- Linear Algebra and Differential Equations | Harvard University
- Ordinary Differential Equations | Harvard University
- Partial Differential Equations in Engineering Course | Stanford Online
- Partial Differential Equations of Applied Mathematics Course | Stanford Online
- Top Differential Equation Courses Online | Coursera
- Introduction to Ordinary Differential Equations | Coursera
- Differential Equations | Udemy
- Top Differential Equations Courses Online | Udemy
- Learn Differential Equations with Online Courses and lessons | edX
- Differential Equations Courses - Engineer4Free
- Differential Equations Study Resources - Course Hero
- Back to the Top
- Differential Equations Playlist | YouTube
- Differential Equations Study Resources - Course Hero
-
Laplace transform
-
Learning Resources for ML
- Machine Learning by Stanford University from Coursera
- Machine Learning Scholarship Program for Microsoft Azure from Udacity
- Microsoft Certified: Azure Data Scientist Associate
- Microsoft Certified: Azure AI Engineer Associate
- Azure Machine Learning training and deployment
- Learning Machine learning and artificial intelligence from Google Cloud Training
- JupyterLab
- Scheduling Jupyter notebooks on Amazon SageMaker ephemeral instances
- How to run Jupyter Notebooks in your Azure Machine Learning workspace
- Machine Learning Courses Online from Udemy
- Machine Learning Courses Online from Coursera
- Learn Machine Learning with Online Courses and Classes from edX
- Machine Learning Scholarship Program for Microsoft Azure from Udacity
- Learning Machine learning and artificial intelligence from Google Cloud Training
-
LiDAR Learning Resources
- Introduction to Lidar Course - NOAA
- Lidar 101:An Introduction to Lidar Technology, Data, and Applications(PDF) - NOAA
- Understanding LiDAR Technologies - GIS Lounge
- LiDAR University Free Lidar Training Courses on MODUS AI
- LiDAR | Learning Plan on ERSI
- Light Detection and Ranging Sensors Course on Coursera
- Quick Introduction to Lidar and Basic Lidar Tools(PDF)
- LIDAR - GIS Wiki
- OpenStreetMap Wiki
- OpenStreetMap Frameworks
Categories
CUDA Tools Libraries, and Frameworks
42
LiDAR Tools & Frameworks
42
C/C++ Tools and Frameworks
29
C/C++ Learning Resources
29
ML Frameworks, Libraries, and Tools
28
Photogrammetry Tools, Libraries, and Frameworks
23
Computer Vision Tools, Libraries, and Frameworks
22
Differential Equations Learning Resources
21
Computer Vision Learning Resources
17
MATLAB Tools, Libraries, Frameworks
16
Learning Resources for ML
14
MATLAB Learning Resources
14
LiDAR Learning Resources
13
Photogrammetry Learning Resources
10
Laplace transform
9
CUDA Learning Resources
6
License
1
Sub Categories
Keywords
cuda
8
deep-learning
6
cpp
6
gpu
5
machine-learning
5
nvidia
4
cpp11
3
c
3
matlab
3
computer-vision
3
meshroom
2
photogrammetry
2
structure-from-motion
2
linear-algebra
2
algorithms
2
cpp14
2
cpp17
2
cpp20
2
cxx
2
cxx11
2
camera-tracking
2
cxx14
2
cxx17
2
alicevision
2
cxx20
2
3d-reconstruction
2
tensor
2
gpu-computing
2
nvidia-hpc-sdk
2
opencl
2
cplusplus
2
compiler
2
awesome
2
deep-neural-networks
2
awesome-list
2
swig
1
pinvoke
1
parsing
1
parser
1
mono
1
interop
1
glue
1
dotnet
1
cppsharp
1
clang
1
c-sharp
1
paddlepaddle
1
syntax-tree
1
visitors
1
xamarin
1