GithubHelp home page GithubHelp logo

lichtso / ccwt Goto Github PK

View Code? Open in Web Editor NEW
151.0 6.0 16.0 4.77 MB

Complex Continuous Wavelet Transform

License: MIT License

Makefile 1.60% C 95.79% Python 2.62%
wavelet fft python-bindings png c99 python-2 python-3 signal-processing

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
  • 4 synchrosqueeze modes
  • 6 color schemes
  • 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 additionally at the beginning:

  • file: File object to store 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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ccwt's Issues

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.