libsdr  0.1.0
A simple SDR library
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
sdr::FFTPlan< Scalar > Class Template Reference

Trivial FFT implementation for buffer sizes of N=2**K. More...

#include <fftplan_native.hh>

Public Types

typedef Traits< Scalar >::SScalar SScalar
 The super-scalar of the input type. More...
 

Public Member Functions

 FFTPlan (const Buffer< std::complex< Scalar > > &in, const Buffer< std::complex< Scalar > > &out, FFT::Direction dir)
 Constructs a FFT plan for the input and output buffers. More...
 
virtual ~FFTPlan ()
 Destructor. More...
 
void operator() ()
 Performs the FFT. More...
 

Protected Member Functions

void _calc (std::complex< Scalar > *a, std::complex< Scalar > *b, size_t N, size_t stride)
 Actual FFT implmenetation. More...
 

Protected Attributes

size_t _N
 FFT size, needs to be a power of 2. More...
 
Buffer< std::complex< Scalar > > _in
 The input buffer. More...
 
Buffer< std::complex< Scalar > > _out
 The output buffer. More...
 
Buffer< std::complex< SScalar > > _lut
 The exp(-i 2 pi k / N) look-up table. More...
 

Detailed Description

template<class Scalar>
class sdr::FFTPlan< Scalar >

Trivial FFT implementation for buffer sizes of N=2**K.

Member Typedef Documentation

template<class Scalar>
typedef Traits<Scalar >::SScalar sdr::FFTPlan< Scalar >::SScalar

The super-scalar of the input type.

Constructor & Destructor Documentation

template<class Scalar>
sdr::FFTPlan< Scalar >::FFTPlan ( const Buffer< std::complex< Scalar > > &  in,
const Buffer< std::complex< Scalar > > &  out,
FFT::Direction  dir 
)
inline

Constructs a FFT plan for the input and output buffers.

template<class Scalar>
virtual sdr::FFTPlan< Scalar >::~FFTPlan ( )
inlinevirtual

Destructor.

Member Function Documentation

template<class Scalar>
void sdr::FFTPlan< Scalar >::_calc ( std::complex< Scalar > *  a,
std::complex< Scalar > *  b,
size_t  N,
size_t  stride 
)
inlineprotected

Actual FFT implmenetation.

template<class Scalar>
void sdr::FFTPlan< Scalar >::operator() ( )
inline

Performs the FFT.

Member Data Documentation

template<class Scalar>
Buffer< std::complex<Scalar> > sdr::FFTPlan< Scalar >::_in
protected

The input buffer.

template<class Scalar>
Buffer< std::complex<SScalar> > sdr::FFTPlan< Scalar >::_lut
protected

The exp(-i 2 pi k / N) look-up table.

template<class Scalar>
size_t sdr::FFTPlan< Scalar >::_N
protected

FFT size, needs to be a power of 2.

template<class Scalar>
Buffer< std::complex<Scalar> > sdr::FFTPlan< Scalar >::_out
protected

The output buffer.


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