mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
Loading...
Searching...
No Matches
fourierModes.hpp File Reference

Functions for generating 2D Fourier modes. More...

Functions for generating 2D Fourier modes.

Author
Jared R. Males

Definition in file fourierModes.hpp.

#include <vector>
#include <algorithm>
#include "../mxlib.hpp"
#include "../math/constants.hpp"
#include "../math/geo.hpp"

Go to the source code of this file.

Classes

struct  mx::sigproc::fourierModeDef
 Structure to contain the parameters of a Fourier mode. More...

Namespaces

namespace  mx
 The mxlib c++ namespace.
#define MX_FOURIER_BASIC   0
 Signifies the basic sine/cosine Fourier basis.
#define MX_FOURIER_MODIFIED   1
 Signifies the modified Fourier basis.
template<class typeN>
int mx::sigproc::makeFourierModeC (typeN im, typename typeN::Scalar m, typename typeN::Scalar n)
 Populate a single cosine mode.
template<class typeN>
int mx::sigproc::makeFourierModeS (typeN im, typename typeN::Scalar m, typename typeN::Scalar n)
 Populate a single sine mode.
template<class typeN>
int mx::sigproc::makeFourierMode (typeN im, typename typeN::Scalar m, typename typeN::Scalar n, int p)
 Populate a single basic Fourier mode.
template<class typeN>
int mx::sigproc::makeModifiedFourierMode (typeN im, typename typeN::Scalar m, typename typeN::Scalar n, int p, typename typeN::Scalar ang=0)
 Populate a single modified Fourier mode.
template<class typeN>
int mx::sigproc::makeModifiedFourierModeP (typeN im, typename typeN::Scalar m, typename typeN::Scalar n, typename typeN::Scalar ang=0)
 Populate a single modified Fourier +1 mode.
template<class typeN>
int mx::sigproc::makeModifiedFourierModeM (typeN im, typename typeN::Scalar m, typename typeN::Scalar n, typename typeN::Scalar ang=0)
 Populate a single modified Fourier -1 mode.
bool mx::sigproc::comp_fourierModeDef_PandV (const fourierModeDef &spf1, const fourierModeDef &spf2)
 Sorting functor for modes according to the Poyner and Veran (2005) standard.
int mx::sigproc::makeFourierModeFreqs_PandV (std::vector< fourierModeDef > &spf, int N)
 Generate a Poyneer and Veran spatial frequency grid.
bool mx::sigproc::comp_fourierModeDef (const fourierModeDef &spf1, const fourierModeDef &spf2)
 Sorting functor for modes according to the mx::AO standard.
int mx::sigproc::makeFourierModeFreqs_Circ (std::vector< fourierModeDef > &spf, int N)
 Generate a circular spatial frequency grid.
int mx::sigproc::fourierModeNumber (int m, int n, int p)
 Calculate the index of a Fourier mode given its (m,n,p) coordinates.
int mx::sigproc::fourierModeCoordinates (int &m, int &n, int &p, int i)
 Calculate the (m,n,p) coordinates of a Fourier mode given its index.
int mx::sigproc::makeFourierModeFreqs_Rect (std::vector< fourierModeDef > &spf, int N)
 Generate a rectangular spatial frequency grid.
template<typename cubeT>
int mx::sigproc::fillFourierBasis (cubeT &cube, int dim, std::vector< fourierModeDef > spf, int basisType, typename cubeT::Scalar ang=0)
 Fill in a cube with a Fourier basis.
template<typename cubeT>
int mx::sigproc::makeFourierBasis_PandV (cubeT &cube, int dim, int N, int basisType)
 Generate a rectangular modified Fourier basis with the Poyneer and Veran ordering.
template<typename cubeT>
int mx::sigproc::makeFourierBasis_Circ (cubeT &cube, int dim, int N, int basisType)
 Generate a circular Fourier basis.
template<typename cubeT>
int mx::sigproc::makeFourierBasis_Rect (cubeT &cube, int dim, int N, int basisType, typename cubeT::Scalar ang=0)
 Generate a rectangular Fourier basis.