SigmaTransform
The SigmaTransform unifies various known signal processing transforms, like the STFT and the wavelet transform, differing only by a specific diffeomorphism.
|
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 |
std::vector< double > SigmaTransform::SigmaTransform< N >::FourierAxis | ( | const double & | fs, |
const unsigned & | len | ||
) |
Makes a Fourier axis of length "len", with sampling frequency "fs".
fs | sampling frequency |
len | number of points |
Definition at line 91 of file SigmaTransform_util.cpp.
cmpx SigmaTransform::gauss | ( | const point< N > & | x | ) |
Normalized Gaussian window.
x | N-dim point |
Definition at line 374 of file SigmaTransform_util.h.
cmpx SigmaTransform::gauss_stddev | ( | const point< N > & | x, |
const point< N > & | stddev | ||
) |
Gaussian window of specific std-dev.
x | N-dim point |
stddev | N-dim standard deviation |
Definition at line 386 of file SigmaTransform_util.h.
point<N> SigmaTransform::id | ( | const point< N > & | x | ) |
Identical diffeomorphism.
x | N-dim point |
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.
L | left boundary |
R | right boundary |
N | number of points |
Definition at line 79 of file SigmaTransform_util.cpp.
cxVec SigmaTransform::SigmaTransform< N >::loadAscii1D | ( | std::string const & | filename | ) |
Loads 1D-ASCII file.
filename | the filename |
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.
filename | the filename |
x | reference to an integer in which to put the x dimension |
y | reference to an integer in which to put the y dimension |
std::runtime_error |
Definition at line 47 of file SigmaTransform_util.cpp.
point<N> SigmaTransform::logabs | ( | const point< N > & | x | ) |
Logarithm of the modulus.
x | N-dim point |
Definition at line 347 of file SigmaTransform_util.h.
point<N> SigmaTransform::logpos | ( | const point< N > & | x | ) |
"Positive" logarithm.
x | N-dim point |
Definition at line 356 of file SigmaTransform_util.h.
std::vector<point<N> > SigmaTransform::meshgridN | ( | std::array< std::vector< double >, N > const & | dom | ) |
Makes N-D-meshgrid from N 1D-vectors.
dom | array containg N double-vectors |
Definition at line 230 of file SigmaTransform_util.h.
std::vector<point<N> > SigmaTransform::meshgridN | ( | std::vector< double > const & | dom | ) |
Makes symmetric N-D-meshgrid from single 1D-vector.
dom | a double-vectors |
Definition at line 260 of file SigmaTransform_util.h.
point<N> SigmaTransform::minus | ( | const point< N > & | l, |
const point< N > & | r | ||
) |
Simple N-dim subtraction.
l | left operand |
r | right operand |
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.
l | 2D point |
r | 2D point |
Definition at line 17 of file SigmaTransform2D.cpp.
point<N> SigmaTransform::plus | ( | const point< N > & | l, |
const point< N > & | r | ||
) |
Simple N-dim addition.
l | left operand |
r | right operand |
Definition at line 328 of file SigmaTransform_util.h.
point< 2 > SigmaTransform::SigmaTransform< N >::polar | ( | const point< 2 > & | x | ) |
Performs a polar diffeomorphism.
x | a 2D cartesian point |
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".
index | vector, containing the current iteration-indices |
max | vector, containing the maximal iteration-indices |
curr_ind | the current nested iteration |
toDo | function handle, performing the nested operations, depending on the handed index |
Definition at line 105 of file SigmaTransform_util.cpp.
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.
filename | name of file to save data to |
out | complex vector, containing the data |
dim | N-dim point, containing the dimensions of the data |
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.
filename | name of file to save data to |
out | complex vector, containing the data |
Definition at line 74 of file SigmaTransform_util.cpp.
point< 2 > SigmaTransform::SigmaTransform< N >::shear | ( | const point< 2 > & | x | ) |
Performs a shear diffeomorphism.
x | a 2D cartesian point |
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)"
max | vector, containing the maximal iteration-indices |
toDo | function handle, performing the nested operations, depending on the handed index |
Definition at line 99 of file SigmaTransform_util.cpp.
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.