MRPT  2.0.4
Functions
Fourier transform functions

Detailed Description

Collaboration diagram for Fourier transform functions:

Functions

void mrpt::math::fft_real (CVectorFloat &in_realData, CVectorFloat &out_FFT_Re, CVectorFloat &out_FFT_Im, CVectorFloat &out_FFT_Mag)
 Computes the FFT of a 2^N-size vector of real numbers, and returns the Re+Im+Magnitude parts. More...
 
void mrpt::math::dft2_real (const CMatrixFloat &in_data, CMatrixFloat &out_real, CMatrixFloat &out_imag)
 Compute the 2D Discrete Fourier Transform (DFT) of a real matrix, returning the real and imaginary parts separately. More...
 
void mrpt::math::idft2_real (const CMatrixFloat &in_real, const CMatrixFloat &in_imag, CMatrixFloat &out_data)
 Compute the 2D inverse Discrete Fourier Transform (DFT) More...
 
void mrpt::math::dft2_complex (const CMatrixFloat &in_real, const CMatrixFloat &in_imag, CMatrixFloat &out_real, CMatrixFloat &out_imag)
 Compute the 2D Discrete Fourier Transform (DFT) of a complex matrix, returning the real and imaginary parts separately. More...
 
void mrpt::math::idft2_complex (const CMatrixFloat &in_real, const CMatrixFloat &in_imag, CMatrixFloat &out_real, CMatrixFloat &out_imag)
 Compute the 2D inverse Discrete Fourier Transform (DFT). More...
 
void mrpt::math::cross_correlation_FFT (const CMatrixFloat &A, const CMatrixFloat &B, CMatrixFloat &out_corr)
 Correlation of two matrixes using 2D FFT. More...
 

Function Documentation

◆ cross_correlation_FFT()

void mrpt::math::cross_correlation_FFT ( const CMatrixFloat A,
const CMatrixFloat B,
CMatrixFloat out_corr 
)

Correlation of two matrixes using 2D FFT.

Definition at line 1446 of file fourier.cpp.

References ASSERT_, mrpt::math::CMatrixDynamic< T >::cols(), mrpt::math::dft2_complex(), mrpt::math::idft2_complex(), MRPT_END, MRPT_START, mrpt::round2up(), mrpt::math::CMatrixDynamic< T >::rows(), mrpt::math::CMatrixDynamic< T >::setSize(), mrpt::square(), and THROW_EXCEPTION.

Here is the call graph for this function:

◆ dft2_complex()

void mrpt::math::dft2_complex ( const CMatrixFloat in_real,
const CMatrixFloat in_imag,
CMatrixFloat out_real,
CMatrixFloat out_imag 
)

Compute the 2D Discrete Fourier Transform (DFT) of a complex matrix, returning the real and imaginary parts separately.

Parameters
in_realThe N_1xN_2 matrix with the real part.
in_imagThe N_1xN_2 matrix with the imaginary part.
out_realThe N_1xN_2 output matrix which will store the real values (user has not to initialize the size of this matrix).
out_imagThe N_1xN_2 output matrix which will store the imaginary values (user has not to initialize the size of this matrix). If the dimensions of the matrix are powers of two, the fast fourier transform (FFT) is used instead of the general algorithm.
See also
fft_real, idft2_complex,dft2_real

Definition at line 1227 of file fourier.cpp.

References ASSERT_, mrpt::math::cdft2d(), mrpt::math::CMatrixDynamic< T >::cols(), MRPT_END, MRPT_START, myGeneralDFT(), mrpt::round2up(), mrpt::math::CMatrixDynamic< T >::rows(), and mrpt::math::CMatrixDynamic< T >::setSize().

Referenced by mrpt::math::cross_correlation_FFT(), and mrpt::img::CImage::cross_correlation_FFT().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dft2_real()

void mrpt::math::dft2_real ( const CMatrixFloat in_data,
CMatrixFloat out_real,
CMatrixFloat out_imag 
)

Compute the 2D Discrete Fourier Transform (DFT) of a real matrix, returning the real and imaginary parts separately.

Parameters
in_dataThe N_1xN_2 matrix.
out_realThe N_1xN_2 output matrix which will store the real values (user has not to initialize the size of this matrix).
out_imagThe N_1xN_2 output matrix which will store the imaginary values (user has not to initialize the size of this matrix).
See also
fft_real, ifft2_read, fft2_complex If the dimensions of the matrix are powers of two, the fast fourier transform (FFT) is used instead of the general algorithm.

Definition at line 968 of file fourier.cpp.

References mrpt::math::CMatrixDynamic< T >::cols(), MRPT_END, MRPT_START, mrpt::math::rdft2d(), mrpt::math::CMatrixDynamic< T >::rows(), and mrpt::math::CMatrixDynamic< T >::setSize().

Here is the call graph for this function:

◆ fft_real()

void mrpt::math::fft_real ( CVectorFloat in_realData,
CVectorFloat out_FFT_Re,
CVectorFloat out_FFT_Im,
CVectorFloat out_FFT_Mag 
)

Computes the FFT of a 2^N-size vector of real numbers, and returns the Re+Im+Magnitude parts.

See also
fft2_real

Definition at line 927 of file fourier.cpp.

References mrpt::system::os::memcpy(), MRPT_END, MRPT_START, mrpt::math::realft(), mrpt::math::CVectorDynamic< T >::resize(), mrpt::math::CVectorDynamic< T >::size(), and mrpt::square().

Here is the call graph for this function:

◆ idft2_complex()

void mrpt::math::idft2_complex ( const CMatrixFloat in_real,
const CMatrixFloat in_imag,
CMatrixFloat out_real,
CMatrixFloat out_imag 
)

Compute the 2D inverse Discrete Fourier Transform (DFT).

Parameters
in_realThe N_1xN_2 input matrix with real values, where both dimensions MUST BE powers of 2.
in_imagThe N_1xN_2 input matrix with imaginary values, where both dimensions MUST BE powers of 2.
out_realThe N_1xN_2 output matrix for real part (user has not to initialize the size of this matrix).
out_imagThe N_1xN_2 output matrix for imaginary part (user has not to initialize the size of this matrix).
See also
fft_real, dft2_real,dft2_complex If the dimensions of the matrix are powers of two, the fast fourier transform (FFT) is used instead of the general algorithm.

Definition at line 1332 of file fourier.cpp.

References mrpt::math::CMatrixDynamic< T >::asEigen(), ASSERT_, mrpt::math::cdft2d(), mrpt::math::CMatrixDynamic< T >::cols(), MRPT_END, MRPT_START, myGeneralDFT(), mrpt::round2up(), mrpt::math::CMatrixDynamic< T >::rows(), and mrpt::math::CMatrixDynamic< T >::setSize().

Referenced by mrpt::math::cross_correlation_FFT(), and mrpt::img::CImage::cross_correlation_FFT().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ idft2_real()

void mrpt::math::idft2_real ( const CMatrixFloat in_real,
const CMatrixFloat in_imag,
CMatrixFloat out_data 
)

Compute the 2D inverse Discrete Fourier Transform (DFT)

Parameters
in_realThe N_1xN_2 input matrix with real values.
in_imagThe N_1xN_2 input matrix with imaginary values.
out_dataThe N_1xN_2 output matrix (user has not to initialize the size of this matrix). Note that the real and imaginary parts of the FFT will NOT be checked to assure that they represent the transformation of purely real data. If the dimensions of the matrix are powers of two, the fast fourier transform (FFT) is used instead of the general algorithm.
See also
fft_real, fft2_real

Definition at line 1068 of file fourier.cpp.

References ASSERT_, mrpt::math::CMatrixDynamic< T >::cols(), MRPT_END, MRPT_START, mrpt::math::rdft2d(), mrpt::round2up(), mrpt::math::CMatrixDynamic< T >::rows(), mrpt::math::CMatrixDynamic< T >::setSize(), and THROW_EXCEPTION.

Here is the call graph for this function:



Page generated by Doxygen 1.8.14 for MRPT 2.0.4 Git: 33de1d0ad Sat Jun 20 11:02:42 2020 +0200 at sáb jun 20 17:35:17 CEST 2020