vnl_fft_2d.h
Go to the documentation of this file.
1 // This is core/vnl/algo/vnl_fft_2d.h
2 #ifndef vnl_fft_2d_h_
3 #define vnl_fft_2d_h_
4 //:
5 // \file
6 // \brief In-place 2D fast Fourier transform
7 // \author fsm
8 
9 #include <vnl/vnl_matrix.h>
10 #include <vnl/algo/vnl_fft_base.h>
11 
12 //: In-place 2D fast Fourier transform
13 
14 template <class T>
15 struct vnl_fft_2d : public vnl_fft_base<2, T>
16 {
18 
19  //: constructor takes size of signal.
20  vnl_fft_2d(int M, int N) {
21  base::factors_[0].resize(M);
22  base::factors_[1].resize(N);
23  }
24 
25  //: dir = +1/-1 according to direction of transform.
26  void transform(vnl_matrix<std::complex<T> > &signal, int dir)
27  { base::transform(signal.data_block(), dir); }
28 
29  //: forward FFT
30  void fwd_transform(vnl_matrix<std::complex<T> > &signal)
31  { transform(signal, +1); }
32 
33  //: backward (inverse) FFT
34  void bwd_transform(vnl_matrix<std::complex<T> > &signal)
35  { transform(signal, -1); }
36 
37  //: return size of signal.
38  unsigned rows() const { return base::factors_[0].number(); }
39  unsigned cols() const { return base::factors_[1].number(); }
40 };
41 
42 #endif // vnl_fft_2d_h_
An ordinary mathematical matrix.
vnl_fft_base< 2, T > base
Definition: vnl_fft_2d.h:17
vnl_fft_2d(int M, int N)
constructor takes size of signal.
Definition: vnl_fft_2d.h:20
void fwd_transform(vnl_matrix< std::complex< T > > &signal)
forward FFT.
Definition: vnl_fft_2d.h:30
void bwd_transform(vnl_matrix< std::complex< T > > &signal)
backward (inverse) FFT.
Definition: vnl_fft_2d.h:34
In-place n-D fast Fourier transform.
void transform(std::complex< T > *signal, int dir)
dir = +1/-1 according to direction of transform.
Base class for in-place ND fast Fourier transform.
Definition: vnl_fft_base.h:19
void transform(vnl_matrix< std::complex< T > > &signal, int dir)
dir = +1/-1 according to direction of transform.
Definition: vnl_fft_2d.h:26
An ordinary mathematical matrix.
Definition: vnl_adjugate.h:22
unsigned rows() const
return size of signal.
Definition: vnl_fft_2d.h:38
vnl_fft_prime_factors< T > factors_[D]
prime factorizations of signal dimensions.
Definition: vnl_fft_base.h:28
unsigned cols() const
Definition: vnl_fft_2d.h:39
In-place 2D fast Fourier transform.
Definition: vnl_fft_2d.h:15