All Projects → dac1976 → dsp

dac1976 / dsp

Licence: LGPL-3.0 license
Header only C++14 library containing various digital signal processing utilities.

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to dsp

dsp-theory
Theory of digital signal processing (DSP): signals, filtration (IIR, FIR, CIC, MAF), transforms (FFT, DFT, Hilbert, Z-transform) etc.
Stars: ✭ 643 (+2043.33%)
Mutual labels:  dsp, digital-signal-processing
Planeverb
Project Planeverb is a CPU based real-time wave-based acoustics engine for games. It comes with an integration with the Unity Engine.
Stars: ✭ 22 (-26.67%)
Mutual labels:  dsp, digital-signal-processing
dsp.rs
Digital Signal Processing
Stars: ✭ 60 (+100%)
Mutual labels:  dsp, digital-signal-processing
dsp-kit
A digital signal processing library in Javascript
Stars: ✭ 32 (+6.67%)
Mutual labels:  dsp, digital-signal-processing
RTspice
A real-time netlist based audio circuit plugin
Stars: ✭ 51 (+70%)
Mutual labels:  dsp, digital-signal-processing
signalo
A DSP toolbox with focus on embedded environments written in Rust.
Stars: ✭ 71 (+136.67%)
Mutual labels:  dsp, digital-signal-processing
signals-and-systems
Interactive visualizations for Dr. Richard Baraniuk's open-source "Signals and Systems" textbook. R / Shiny.
Stars: ✭ 31 (+3.33%)
Mutual labels:  dsp, digital-signal-processing
RpiANC
Active Noise Control on Raspberry Pi
Stars: ✭ 49 (+63.33%)
Mutual labels:  dsp, digital-signal-processing
math
Useful m-scripts for DSP (CIC, FIR, FFT, Fast convolution, Partial Filters etc.)
Stars: ✭ 15 (-50%)
Mutual labels:  dsp, digital-signal-processing
DAFx19-Gamelanizer
Accompanying material for the paper 'A Real-Time Audio Effect Plug-In Inspired by the Processes of Traditional Indonesian Gamelan Music'
Stars: ✭ 33 (+10%)
Mutual labels:  dsp, digital-signal-processing
DTMF-Decoder
A Java program to implement a DMTF Decoder.
Stars: ✭ 28 (-6.67%)
Mutual labels:  dsp, digital-signal-processing
intfftk
Fully pipelined Integer Scaled / Unscaled Radix-2 Forward/Inverse Fast Fourier Transform (FFT) IP-core for newest Xilinx FPGAs (Source language - VHDL / Verilog). GNU GPL 3.0.
Stars: ✭ 43 (+43.33%)
Mutual labels:  dsp, digital-signal-processing
uos
United Open-libraries of Sound. United procedures for open-source audio libraries. For FPC/Lazarus/fpGUI/MSEgui.
Stars: ✭ 112 (+273.33%)
Mutual labels:  dsp
portedplugins
A collection of plugins for the SuperCollider sound environment, all of which are ported / remixed from elsewhere
Stars: ✭ 124 (+313.33%)
Mutual labels:  dsp
lessampler
lessampler is a Singing Voice Synthesizer
Stars: ✭ 59 (+96.67%)
Mutual labels:  dsp
dsp
DSP and filtering library
Stars: ✭ 36 (+20%)
Mutual labels:  dsp
campaign-manager
The Camapign Management UI for RTB4Free, the open source bidder / DSP.
Stars: ✭ 24 (-20%)
Mutual labels:  dsp
speech course
YSDA course in Speech Processing.
Stars: ✭ 93 (+210%)
Mutual labels:  dsp
DtBlkFx
Fast-Fourier-Transform (FFT) based VST plug-in
Stars: ✭ 99 (+230%)
Mutual labels:  dsp
spafe
🔉 spafe: Simplified Python Audio Features Extraction
Stars: ✭ 310 (+933.33%)
Mutual labels:  dsp

DSP (Digital Signal Processing)

Introduction

As part of my day job I frequently have to make use of various digital signal processing techniques. At work we use Intel's IPP libraries but I decided that for small projects at home or for platforms and operating systems where these libraries aren't available or practical then having a lightweight header only C++14 library would be quite useful.

It is licensed under the terms of LGPL 3.0 and the relevant documentation for this can be found at the top of each source file and in the LICENSE text file.

The code is the work of me (Duncan Crutchley) ([email protected]).

Copyright (C) 2018 onwards Duncan Crutchley.

Requirements

Any compatible C++14 compiler can be used. The code is header only and has no external dependencies. It uses just pure C++. It has been tested with Clang, GCC and MSVC2015 and 2017. It has been tested on Linux and Windows 10 64bit OSes. I've also run it successfully on my Samsung Galaxy S9 phone using the C4Droid (based on GCC) compiler available in the Google Play Store.

Contents

The library contains classes and helper functions for the following.

  • Mathematical Utilties: discrete convolution, Bessel function, Sinc functions, Sinusoidal function, GCD (greatest common divisor), power of 2 checker.
  • Pi: Multi-precision static template functions to generate variants of Pi, e.g. Pi, 2Pi, Pi/2 etc.
  • Roots: Multi-precision static template functions to generate variants of Sqrt(2), e.g. Sqrt(2), 2Sqrt, 1/Sqrt(2) etc.
  • Signal Generators: template functions to generate single- and multi-tone sinusoidal signals.
  • Window Functions: template functions and functors to evaluate window functions and generate coefficients, e.g. flat-top, Hann, Hamming, rectangle, sinc, Bartlett, Blackman, Kaiser and Lanczos.
  • Filters: template functions and functors to compute FIR filter coeffcients, e.g. low-, high-, band-pass and notch filters.
  • Resampling: template functors to perform filter-based signal data resampling, including computing up- and down-sample factors.
  • Fast Fourier Transforms: template functors to perform various forward and inverse FFT related activities. This also includes fast FFT-based convolution.

Usage

Simply include dsp.hpp and start uing the code. Everything is in the "dsp" namespace.

The code is commented using Doxygen style comments so check the documentation in the /docs/html/ folder and open index.html in your browser of choice.

For usage examples I recommend looking at the unit test code in the file "test_main.cpp".

Comments

I'll fix bugs and improve the code when necessary but make no guarantees on how often this happens. I provide no warranty or support for any issues that are encountered while using it. Although if you are really stuck email me at the provided address and if I have the time I will try to help or fix the issue if it's within my power to do so.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].