SigmaTransform
The SigmaTransform unifies various known signal processing transforms, like the STFT and the wavelet transform, differing only by a specific diffeomorphism.
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros
Classes | Functions | Variables
SigmaTransform Namespace Reference

Classes

class  SigmaTransform1D
class  STFT1D
class  WaveletTransform1D
class  CQTransform1D
class  SigmaTransform2D
class  STFT2D
class  WaveletTransform2D
class  SIM2D
class  Curvelet2D
class  NPShearlet2D
class  Shearlet2D
class  Chronometer
class  point
class  SigmaTransform

Functions

point< 2 > polar (const point< 2 > &p)
point< 2 > shear (const point< 2 > &p)
point< 2 > parabolicAction (const point< 2 > &l, const point< 2 > &r)
cxVec loadAscii1D (std::string const &filename)
cxVec loadAscii2D (std::string const &filename, int &x, int &y)
void save2file_bin (std::string const &filename, const cxVec &out)
std::vector< double > linspace (const double &L, const double &R, const int &N)
std::vector< double > FourierAxis (const double &fs, const unsigned &len)
void StartRecursiveLoop (const std::vector< int > &max, std::function< void(const std::vector< int > &)> toDo)
void recursiveLoop (std::vector< int > &index, const std::vector< int > &max, const int &curr_ind, std::function< void(const std::vector< int > &)> toDo)
template<size_t N>
std::vector< point< N > > meshgridN (std::array< std::vector< double >, N > const &dom)
template<size_t N>
std::vector< point< N > > meshgridN (std::vector< double > const &dom)
template<size_t N>
void save2file_asc (std::string const &filename, const cxVec &out, const point< N > &dim=point< N >(0))
template<size_t N>
point< N > plus (const point< N > &l, const point< N > &r)
template<size_t N>
point< N > minus (const point< N > &l, const point< N > &r)
template<size_t N>
point< N > logabs (const point< N > &x)
template<size_t N>
point< N > logpos (const point< N > &x)
template<size_t N>
point< N > id (const point< N > &x)
template<size_t N>
cmpx gauss (const point< N > &x)
template<size_t N>
cmpx gauss_stddev (const point< N > &x, const point< N > &stddev)

Variables

const double PI = 3.141592654
const double pow2_1_4 = 1.189207115

Function Documentation

std::vector< double > SigmaTransform::SigmaTransform< N >::FourierAxis ( const double &  fs,
const unsigned &  len 
)

Makes a Fourier axis of length "len", with sampling frequency "fs".

Parameters
fssampling frequency
lennumber of points
Returns
linearly spaced Fourier-axis vector

Definition at line 91 of file SigmaTransform_util.cpp.

template<size_t N>
cmpx SigmaTransform::gauss ( const point< N > &  x)

Normalized Gaussian window.

Parameters
xN-dim point
Returns
normalized N-dim gaussian at x

Definition at line 374 of file SigmaTransform_util.h.

template<size_t N>
cmpx SigmaTransform::gauss_stddev ( const point< N > &  x,
const point< N > &  stddev 
)

Gaussian window of specific std-dev.

Parameters
xN-dim point
stddevN-dim standard deviation
Returns
N-dim gaussian with N-dim standarddev "stddev" at x

Definition at line 386 of file SigmaTransform_util.h.

template<size_t N>
point<N> SigmaTransform::id ( const point< N > &  x)

Identical diffeomorphism.

Parameters
xN-dim point
Returns
x

Definition at line 365 of file SigmaTransform_util.h.

std::vector< double > SigmaTransform::SigmaTransform< N >::linspace ( const double &  L,
const double &  R,
const int &  N 
)

Makes a linearly spaced vector between L and R in N steps.

Parameters
Lleft boundary
Rright boundary
Nnumber of points
Returns
linearly spaced vector

Definition at line 79 of file SigmaTransform_util.cpp.

cxVec SigmaTransform::SigmaTransform< N >::loadAscii1D ( std::string const &  filename)

Loads 1D-ASCII file.

Parameters
filenamethe filename
Returns
the read file as complex vector
Exceptions
std::runtime_error

Definition at line 32 of file SigmaTransform_util.cpp.

cxVec SigmaTransform::SigmaTransform< N >::loadAscii2D ( std::string const &  filename,
int &  x,
int &  y 
)

Loads 2D-ASCII file.

Parameters
filenamethe filename
xreference to an integer in which to put the x dimension
yreference to an integer in which to put the y dimension
Returns
the read file as complex vector
Exceptions
std::runtime_error

Definition at line 47 of file SigmaTransform_util.cpp.

template<size_t N>
point<N> SigmaTransform::logabs ( const point< N > &  x)

Logarithm of the modulus.

Parameters
xN-dim point
Returns
log( abs( x ) )

Definition at line 347 of file SigmaTransform_util.h.

template<size_t N>
point<N> SigmaTransform::logpos ( const point< N > &  x)

"Positive" logarithm.

Parameters
xN-dim point
Returns
logarithm of x if positive, -inf else

Definition at line 356 of file SigmaTransform_util.h.

template<size_t N>
std::vector<point<N> > SigmaTransform::meshgridN ( std::array< std::vector< double >, N > const &  dom)

Makes N-D-meshgrid from N 1D-vectors.

Parameters
domarray containg N double-vectors
Returns
N-D meshgrid

Definition at line 230 of file SigmaTransform_util.h.

template<size_t N>
std::vector<point<N> > SigmaTransform::meshgridN ( std::vector< double > const &  dom)

Makes symmetric N-D-meshgrid from single 1D-vector.

Parameters
doma double-vectors
Returns
symmetric N-D meshgrid

Definition at line 260 of file SigmaTransform_util.h.

template<size_t N>
point<N> SigmaTransform::minus ( const point< N > &  l,
const point< N > &  r 
)

Simple N-dim subtraction.

Parameters
lleft operand
rright operand
Returns
difference

Definition at line 338 of file SigmaTransform_util.h.

point< 2 > SigmaTransform::SigmaTransform< N >::parabolicAction ( const point< 2 > &  l,
const point< 2 > &  r 
)

Performs a parabolic shift.

Parameters
l2D point
r2D point
Returns
a 2D point, "l" parabolic shifted by "r"

Definition at line 17 of file SigmaTransform2D.cpp.

template<size_t N>
point<N> SigmaTransform::plus ( const point< N > &  l,
const point< N > &  r 
)

Simple N-dim addition.

Parameters
lleft operand
rright operand
Returns
sum

Definition at line 328 of file SigmaTransform_util.h.

point< 2 > SigmaTransform::SigmaTransform< N >::polar ( const point< 2 > &  x)

Performs a polar diffeomorphism.

Parameters
xa 2D cartesian point
Returns
the 2D point in polar-coordinates

Definition at line 8 of file SigmaTransform2D.cpp.

void SigmaTransform::SigmaTransform< N >::recursiveLoop ( std::vector< int > &  index,
const std::vector< int > &  max,
const int &  curr_ind,
std::function< void(const std::vector< int > &)>  toDo 
)

Applies a recursive loop, which replaces an arbitrary number of nested loops; internally called by "StartRecursiveLoop".

Parameters
indexvector, containing the current iteration-indices
maxvector, containing the maximal iteration-indices
curr_indthe current nested iteration
toDofunction handle, performing the nested operations, depending on the handed index
Returns
void

Definition at line 105 of file SigmaTransform_util.cpp.

template<size_t N>
void SigmaTransform::save2file_asc ( std::string const &  filename,
const cxVec &  out,
const point< N > &  dim = point<N>(0) 
)

Saves N-dim complex vector to ASCII-file.

Parameters
filenamename of file to save data to
outcomplex vector, containing the data
dimN-dim point, containing the dimensions of the data
Returns
void

Definition at line 292 of file SigmaTransform_util.h.

void SigmaTransform::SigmaTransform< N >::save2file_bin ( std::string const &  filename,
const cxVec &  out 
)

Saves N-dim complex vector to binary-file.

Parameters
filenamename of file to save data to
outcomplex vector, containing the data
Returns
void

Definition at line 74 of file SigmaTransform_util.cpp.

point< 2 > SigmaTransform::SigmaTransform< N >::shear ( const point< 2 > &  x)

Performs a shear diffeomorphism.

Parameters
xa 2D cartesian point
Returns
the 2D point in "shearing-coordinates"

Definition at line 13 of file SigmaTransform2D.cpp.

void SigmaTransform::SigmaTransform< N >::StartRecursiveLoop ( const std::vector< int > &  max,
std::function< void(const std::vector< int > &)>  toDo 
)

Starts a recursive loop and applies "toDo" for each point between (0,...,0) and "(max_1,...,max_n)"

Parameters
maxvector, containing the maximal iteration-indices
toDofunction handle, performing the nested operations, depending on the handed index
Returns
void

Definition at line 99 of file SigmaTransform_util.cpp.

Variable Documentation

const double SigmaTransform::PI = 3.141592654

Definition at line 28 of file SigmaTransform_util.h.

const double SigmaTransform::pow2_1_4 = 1.189207115

Definition at line 29 of file SigmaTransform_util.h.