Radio Control  Control Software and GUI for the Panoradio SDR, by DC9ST 2016
Public Member Functions | Private Attributes | List of all members
fft_avg_complex Class Reference

FFT Class for averaging over multiple FFTs with complex time domain input values. More...

#include <fft_avg_complex.h>

Inheritance diagram for fft_avg_complex:
fftw_base

Public Member Functions

 fft_avg_complex (int n, t_fft_window fft_window)
 constructor, allocated memory and calls base class constructor More...
 
 ~fft_avg_complex ()
 destructor
 
void add_fft (double data_in_real[], double data_in_imag[])
 performs a single FFT and stores the result internally More...
 
void reset ()
 resets the module, call to restart averaging
 
void get_avg_fft (double output_avg_fft_mag[])
 read averaged FFT bins of power spectrum in dBm, including windowing and CPG correction More...
 
- Public Member Functions inherited from fftw_base
 fftw_base (int n, t_fft_window fft_window)
 constructor, allocates memory, sets parameter for magnitude calculation and windowing coefficients More...
 
virtual ~fftw_base ()
 destructor
 

Private Attributes

int num_ffts_
 
double * fft_sum_
 
double * fft_out_temp_
 

Additional Inherited Members

- Public Types inherited from fftw_base
enum  t_fft_window { no, hann, flat }
 window types
 
- Protected Member Functions inherited from fftw_base
void real_fft_linear_power (double data_in[], double data_out_mag[])
 performs FFT on real input values, including windowing, no CPG correction More...
 
void complex_fft_linear_power (double data_in_real[], double data_in_imag[], double data_out_mag[])
 performs FFT on complex input values, including windowing, no CPG correction More...
 
void linear2dbm_real (double data_out_mag[])
 converts a linear scaled power spectrum of real input values into a power spectrum in dBm (same as "linear2dbm_complex" but with n/2 values) More...
 
void linear2dbm_complex (double data_out_mag[])
 converts a linear scaled power spectrum of complex input values into a power spectrum in dBm (same as "linear2dbm_real" but with n values) More...
 
void correct_coherent_gain_real (double data_out_mag[])
 corrects the coherent power gain (caused by windowing) of a power spectrum in dBm of real input values (n/2 samples) More...
 
void correct_coherent_gain_complex (double data_out_mag[])
 corrects the coherent power gain (caused by windowing) of a power spectrum in dBm of complex input values (n samples) More...
 
- Protected Attributes inherited from fftw_base
int n_
 FFT size.
 
double resistor_ref_
 resistance in Ohms of a resistor over which the input voltage occurs
 
double adc_full_scale_voltage_
 full scale voltage of ADC in Volts
 
int num_adc_bits_
 number of ADC bits
 
double coherent_gain_
 coherent power gain of selected window
 
t_fft_window fft_window_
 selected window
 
double * window_weights_
 pointer to array of window weight coefficients
 
fftw_plan * my_fftw_plan_
 FFTW specific module for FFT calculation.
 
fftw_complex * in_
 FFTW specific buffer for FFT input data.
 
fftw_complex * out_
 FFTW specific buffer for FFT output data.
 
double * data_out_mag_complex_temp_
 temporary array required when reordering the bins of a complex FFT
 

Detailed Description

FFT Class for averaging over multiple FFTs with complex time domain input values.

Constructor & Destructor Documentation

fft_avg_complex::fft_avg_complex ( int  n,
t_fft_window  fft_window 
)

constructor, allocated memory and calls base class constructor

Parameters
nFFT size, number of input values
fft_windowFFT window

Member Function Documentation

void fft_avg_complex::add_fft ( double  data_in_real[],
double  data_in_imag[] 
)

performs a single FFT and stores the result internally

Parameters
data_in_real[]array of n complex input time domain samples, real part
data_in_imag[]array of n complex input time domain samples, imaginary part
void fft_avg_complex::get_avg_fft ( double  output_avg_fft_mag[])

read averaged FFT bins of power spectrum in dBm, including windowing and CPG correction

Parameters
output_avg_fft_mag[]array for the n output averaged FFT bins of power spectrum in dBm

The documentation for this class was generated from the following files: