45 for (
int i = 0; i <
m_n; ++i) {
47 m_kin[i].i = (ii ? ii[i] : 0.0);
54 for (
int i = 0; i <
m_n; ++i) {
63 double scale = 1.0 /
m_n;
65 for (
int i = 0; i <
m_n; ++i) {
66 ro[i] =
m_kout[i].r * scale;
67 io[i] =
m_kout[i].i * scale;
92 const double *p_lpRealIn,
const double *p_lpImagIn,
93 double *p_lpRealOut,
double *p_lpImagOut)
96 p_lpRealIn, p_lpImagIn,
97 p_lpRealOut, p_lpImagOut);
105 throw std::invalid_argument
106 (
"nsamples must be even in FFTReal constructor");
110 m_c =
new kiss_fft_cpx[
m_n];
119 void forward(
const double *ri,
double *ro,
double *io) {
123 for (
int i = 0; i <=
m_n/2; ++i) {
128 for (
int i = 0; i + 1 <
m_n/2; ++i) {
129 ro[
m_n - i - 1] = ro[i + 1];
130 io[
m_n - i - 1] = -io[i + 1];
136 double *io =
new double[
m_n];
140 for (
int i = 0; i <
m_n; ++i) {
141 mo[i] = sqrt(mo[i] * mo[i] + io[i] * io[i]);
147 void inverse(
const double *ri,
const double *ii,
double *ro) {
152 for (
int i = 0; i <
m_n/2 + 1; ++i) {
159 double scale = 1.0 /
m_n;
161 for (
int i = 0; i <
m_n; ++i) {
void forwardMagnitude(const double *ri, double *mo)
void inverse(const double *ri, const double *ii, double *ro)
void forward(const double *ri, double *ro, double *io)
void forwardMagnitude(const double *realIn, double *magOut)
Carry out a forward real-to-complex transform of size nsamples, where nsamples is the value provided ...
void forward(const double *realIn, double *realOut, double *imagOut)
Carry out a forward real-to-complex transform of size nsamples, where nsamples is the value provided ...
FFTReal(int nsamples)
Construct an FFT object to carry out real-to-complex transforms of size nsamples.
void inverse(const double *realIn, const double *imagIn, double *realOut)
Carry out an inverse real transform (i.e.
void process(bool inverse, const double *ri, const double *ii, double *ro, double *io)
FFT(int nsamples)
Construct an FFT object to carry out complex-to-complex transforms of size nsamples.
void process(bool inverse, const double *realIn, const double *imagIn, double *realOut, double *imagOut)
Carry out a forward or inverse transform (depending on the value of inverse) of size nsamples,...