1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
/* Copyright 2001,2002 Matt Flax <flatmax@ieee.org>
This file is part of the MFFM FFTw Wrapper library.
MFFM MFFM FFTw Wrapper library is free software; you can
redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
MFFM FFTw Wrapper library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You have received a copy of the GNU General Public License
along with the MFFM FFTw Wrapper library
*/
#include <string.h>
#include "real2DFFT.H"
#include <iostream>
using namespace std;
int main(void){
int x=8, y=8;
real2DFFTData *fftData = new real2DFFTData(x,y);
real2DFFT *fft= new real2DFFT(fftData);
// clear the data
fftData->clearInput();
fftData->clearOutput();
int temp=x/2, temp2=y/2;
for (int j=0;j<x;j++)
fftData->in[temp2+j*x]=10000.0;
for (int j=0;j<y;j++)
fftData->in[temp*y+j]=10000.0;
// fftData->in[temp*y+(y-1)/2]=20000.0;
for (int i=0;i<fftData->getXSize();i++){
for (int j=0;j<fftData->getYSize();j++)
cout<<fftData->in[i*x+j]<<'\t';
cout<<endl;
}
cout<<'\n'<<endl;
fft->fwdTransform();
fftData->reScale();
fftData->compPowerSpec();
fft->invTransform();
for (int i=0;i<fftData->getXSize();i++){
for (int j=0;j<fftData->getYSize();j++)
cout<<fftData->in[i*x+j]<<'\t';
cout<<endl;
}
cout<<'\n'<<endl;
/* for (int i=0;i<fftData.getXSize();i++){
for (int j=0;j<fftData.getYHalfSize();j++)
cout<<fftData.out[i][j].im<<'\t';
cout<<endl;
}*/
for (int i=0;i<x;i++){
for (int j=0;j<y/2+1;j++)
cout<<fftData->power[i*(y/2+1)+j]<<'\t';
cout<<endl;
}
delete fftData;
delete fft;
}
|