Giter Club home page Giter Club logo

ccwt's Introduction

CCWT library for C and Python

Did you ever wanted to easily generate a spectrogram like this one?

spectrogram

Take the Tutorial with lots of examples and all features being explained.

Features

Complex continuous wavelet transformation

  • with a gabor wavelet
  • interfaces for C99, python2.7 and python3.5
  • using libFFTW for performance
  • and libPNG as possible output
  • 6 render modes
  • parallelization / multithreading support
  • customizable frequency bands
  • helper method for linear and exponential frequency bands

Dependencies

Ubuntu

sudo apt-get install libfftw3-dev libpng-dev

Arch Linux

sudo pacman -S fftw libpng

Mac OS

brew install fftw libpng

Installation

[sudo] pip[3] install ccwt

Documentation

ccwt.fft()

  • input_signal: Numpy 1D float32, float64, complex64 or complex128 array
  • padding: Zero samples to be virtually added at each end of the input signal, default is 0
  • thread_count: Default is 1 (no multi threading)

ccwt.frequency_band()

  • height: Height of the resulting image in pixels and number of frequencies to analyze
  • frequency_range: Difference between the highest and the lowest frequency to analyze, default is height/2
  • frequency_offset: Lowest frequency to analyze, default is 0.0
  • frequency_basis: Values > 0.0 switch from a linear to an exponential frequency scale using this as basis, default is 0.0 / linear mode
  • deviation: Values near 0.0 have better frequency resolution, values towards infinity have better time resolution, default is 1.0

ccwt.numeric_output()

  • fourier_transformed_signal: Numpy 1D complex128 array generated by ccwt.fft()
  • frequency_band: Numpy 2D float64 array generated by ccwt.frequency_band()
  • width: Width of the resulting image in pixels, can be the length of the input signal or less for downsampling
  • padding: Same value as passed to ccwt.fft()
  • thread_count: Default is 1 (no multi threading)

ccwt.render_png()

Same as ccwt.numeric_output() but with these two at the beginning:

  • path: Filename of the resulting PNG image
  • render_mode: indicating the color scheme for rendering, see include/render_mode.h for possible values
  • logarithmic_basis: Values > 0.0 switch from a linear to a logarithmic intensity rendering using this as basis

ccwt's People

Contributors

lichtso avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.