In this article I’ll show you how to use Fast Fourier Transform in Digital Signal Processing and how to apply forward and inverse FFT on complex and real data using the KFR framework.
Fast Fourier Transform (FFT) can be used to perform:
- Convolution (including convolution reverberation)
- Cross-correlation and auto-correlation
- Applying large FIR filters
- Sample rate conversion
- Spectrum visualization
- Large integer multiplication
- and many other algorithms
Often FFT is the most efficient way to perform each of these algorithms.
Moreover, KFR has one of the most efficient FFT implementation, so you can get a great performance boost of your DSP applications using KFR’s FFT for all of these algorithms.
Continue reading Fast Fourier Transform in C++ using KFR. Part 1
Writing high performance code is always a difficult task. Pure algorithms are not always a good fit for the real world architectures.
Once having begun to speed up all these pure algorithms, we quickly find that some implementation is pretty fast on one architecture, but terrible slow on another while second implementation outperform the first one in some contexts losing speed in all the rest.
Continue reading How C++14 and C++17 help to write faster (and better) code. Real world examples
The following example shows how to apply FIR filter to audio data using KFR framework.
Continue reading Example: FIR filter in C++
The expression is the central entity of KFR framework.
Input expressions can be read from and output expressions can be written to. Class can be an input and output expression at same time.
univector is an example of such class.
Continue reading Basic expression tutorial
Digital biquad filters and biquad filter design functions are implemented in the KFR framework starting from the first version.
Biquad algorithm uses the Transposed Direct Form II which reduces the quantization errors in the floating point calculations.
Continue reading Biquad filters in C++ using KFR