FFT Class

FFT Class

Description
A class used for performing FFT calculations with real-number inputs and outputs.
Syntax
class FFT
Members
Public Constructors
FFT::FFT Create an instance of the FFT class.
Public Methods
FFT::setWindow Configure the window function used in FFT calculations.
FFT::calculate Calculate FFT for an input array of values.
FFT::getFrequencyBins Get the FFT output frequency bins.
FFT::getFFTSize Get the size of FFT output for a given input size.

FFT::FFT

Description
Create a FFT class object.
Syntax
void FFT(void);
Parameters
The function requires no input parameter.
Returns
The function returns nothing.
Example Code
Example: FFT
Notes and Warnings
NA
 

FFT::setWindow

Description
Configure the window function used in FFT calculations.
Syntax
void setWindow(FFTWindow_t window, uint16_t sampleCount);
Parameters
window: The window function to be used in FFT calculations. Valid values: None, Hann, Hamming. sampleCount: Number of sample datapoints in the input.
Returns
The function returns nothing.
Example Code
Example: FFT
Notes and Warnings
The window function is used to reduce the effects of discontinuities that occur when the input signal has frequencies that do not fit an integer number of periods in the sample datapoints. More information on FFTs and window functions can be seen at:
https://download.ni.com/evaluation/pxi/Understanding%20FFTs%20and%20Windowing.pdf
https://en.wikipedia.org/wiki/Window_function

FFT::Calculate

Description
Calculate FFT for an input array of values.
Syntax
void calculate(float* inputBuf, float* outputBuf, uint16_t sampleCount); void calculate(int16_t* inputBuf, float* outputBuf, uint16_t sampleCount);
Parameters
inputBuf: pointer to an array of sampleCount size, containing input sample datapoints, in float or uint16_t format. outputBuf: pointer to a float array of sampleCount/2 size, for containing FFT output. sampleCount: number of sample datapoints in the input array, valid values: 16, 32, 64, 128, 256, 512, 1024, 2048.
Returns
The function returns nothing.
Example Code
Example:FFT
Notes and Warnings
Large sample counts will require a longer time for FFT calculations, but will also return a result with higher frequency resolution.
 

FFT::getFrequencyBins

Description
Get the FFT output frequency bins.
Syntax
void getFrequencyBins(uint16_t* outputBuf, uint16_t sampleCount, uint32_t sampleRate);
Parameters
outputBuf: pointer to a uint16_t array of sampleCount/2 size, for containing the calculated center frequency of each FFT output element.
Returns
The function returns nothing.
Example Code
Example: FFT
Notes and Warnings
NA
 

FFT::getFFTSize

Description
Get the size of FFT output for a given input size.
Syntax
uint16_t getFFTSize(uint16_t sampleCount);
Parameters
sampleCount: number of input sample datapoints.
Returns
The function returns the FFT output size for the given sampleCount, which is sampleCount/2.
Example Code
NA
Notes and Warnings
NA
Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved.
请先确认已安装QQ通讯软体