public class RealDoubleFFT_Radix2 extends RealDoubleFFT
d[i] = data[i0 + stride*i]The FFT (D[i]) of real data (d[i]) is complex, but restricted by symmetry:
D[n-i] = conj(D[i])It turns out that there are still n `independent' values, so the transformation can still be carried out in-place. For RealDoubleFFT_Radix2, the correspondence is as follows:
Logical | Physical | |
---|---|---|
Re(D[0]) | = | data[0] |
Im(D[0]) | = | 0 |
Re(D[1]) | = | data[1] |
Im(D[1]) | = | data[n-1] |
... | ... | |
Re(D[k]) | = | data[k] |
Im(D[k]) | = | data[n-k] |
... | ... | |
Re(D[n/2]) | = | data[n/2] |
Im(D[n/2]) | = | 0 |
... | ... | |
Re(D[n-k]) | = | data[k] |
Im(D[n-k]) | = | -data[n-k] |
... | ... | |
Re(D[n-1]) | = | data[1] |
Im(D[n-1]) | = | -data[n-1] |
Constructor and Description |
---|
RealDoubleFFT_Radix2(int n)
Create an FFT for transforming n points of real, double precision data.
|
Modifier and Type | Method and Description |
---|---|
void |
backtransform(double[] data,
int i0,
int stride)
Compute the (unnomalized) inverse FFT of data, leaving it in place.
|
protected void |
bitreverse(double[] data,
int i0,
int stride) |
double[] |
toWraparoundOrder(double[] data)
Return data in wraparound order.
|
double[] |
toWraparoundOrder(double[] data,
int i0,
int stride)
Return data in wraparound order.
|
void |
transform(double[] data,
int i0,
int stride)
Compute the Fast Fourier Transform of data leaving the result in data.
|
backtransform, checkData, inverse, inverse, normalization, transform
public RealDoubleFFT_Radix2(int n)
public void transform(double[] data, int i0, int stride)
transform
in class RealDoubleFFT
public void backtransform(double[] data, int i0, int stride)
transform
.backtransform
in class RealDoubleFFT
public double[] toWraparoundOrder(double[] data)
toWraparoundOrder
in class RealDoubleFFT
public double[] toWraparoundOrder(double[] data, int i0, int stride)
toWraparoundOrder
in class RealDoubleFFT
protected void bitreverse(double[] data, int i0, int stride)
Copyright © 2012. All Rights Reserved.