Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. kissfft

kissfft

NOASSERTIONC131.2.0

A simple, portable Fast Fourier Transform (FFT) library for C with support for fixed and floating point data types.

GitHubGitHub
2.0k stars361 forks0 contributors

What is kissfft?

KISS FFT is a Fast Fourier Transform library written in C that implements mixed-radix FFT algorithms. It solves the need for a simple, portable FFT implementation that supports both fixed and floating point data types with minimal licensing restrictions. The library is designed to be easily incorporated into C programs while maintaining reasonable performance.

Target Audience

C/C++ developers working on signal processing, audio applications, or embedded systems who need a straightforward FFT implementation without the complexity of highly optimized libraries.

Value Proposition

Developers choose KISS FFT for its simplicity, portability, and permissive licensing. Unlike larger, more complex FFT libraries, it offers a clean codebase (about 500 lines for the core) that's easy to understand and integrate, with support for multiple data types and build systems.

Overview

a Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid

Use Cases

Best For

  • Embedded systems requiring fixed-point FFT computations
  • Educational projects teaching Fourier transform implementation
  • Audio processing applications needing real-valued FFTs
  • Prototyping signal processing algorithms quickly
  • Projects with strict code size constraints
  • Multi-platform applications needing portable FFT functionality

Not Ideal For

  • Applications demanding peak FFT performance, such as real-time high-frequency signal processing or scientific simulations where every millisecond counts
  • Projects requiring robust optimization for odd-length real-valued FFTs, as the library currently only supports even lengths
  • Embedded systems needing fixed-point fast convolution, which is explicitly not available in KISS FFT
  • Teams seeking extensive documentation, commercial support, or active community debugging, as the author offers limited assistance per the FAQ

Pros & Cons

Pros

Minimal Code Footprint

Core routines are only about 500 lines for 1-D complex FFTs, making integration and auditing straightforward without bloat, as highlighted in comparisons with larger libraries.

Flexible Data Types

Supports compilation with float, double, Q15, or Q31 samples via build flags, allowing adaptation to various precision needs across embedded and desktop platforms.

Permissive Licensing

Uses a revised BSD license compatible with both open-source and commercial projects, reducing legal hurdles for integration into diverse codebases.

Build System Portability

Offers both Make and CMake builds with configurable options like static/shared libraries and OpenMP support, ensuring easy adoption in different development environments.

Cons

Performance Limitations

Benchmarks show it's roughly half as fast as highly optimized libraries like FFTW, making it unsuitable for performance-critical applications where speed is paramount.

Incomplete Feature Set

Real FFT optimization only works for even lengths, and fast convolution is unavailable for fixed-point data, limiting utility in specific signal processing tasks as noted in the TODO list.

Sparse Documentation

The README admits gaps like undocumentated fast convolution methods and scaling issues, forcing developers to rely on code inspection or external resources for troubleshooting.

Frequently Asked Questions

Quick Stats

Stars1,979
Forks361
Contributors0
Open Issues25
Last commit26 days ago
CreatedSince 2017

Tags

#c-library#fft#fixed-point#embedded#signal-processing#dsp#portable#floating-point#openmp#fourier-transform

Built With

M
Make
O
OpenMP
C
CMake
C
C++

Included in

C/C++70.6k
Auto-fetched 9 hours ago

Related Projects

DSPFiltersDSPFilters

A Collection of Useful C++ Classes for Digital Signal Processing

Stars2,072
Forks412
Last commit3 years ago
iir1iir1

DSP IIR realtime filter library written in C++

Stars780
Forks160
Last commit1 year ago
wavelibwavelib

C Implementation of 1D and 2D Wavelet Transforms (DWT,SWT and MODWT) along with 1D Wavelet packet Transform and 1D Continuous Wavelet Transform.

Stars446
Forks137
Last commit8 months ago
fCWTfCWT

The fast Continuous Wavelet Transform (fCWT) is a library for fast calculation of CWT.

Stars402
Forks84
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub