hello,
I have a real time-domain signal, I need to abstract low frequency part. First I caculate the Fast Fourier Transform and get a set of complex data. I translate them into real number (magnitude) by ToPolar1D(wavesignal,waveimgsignal,wavepoint,magnitude,phase). Through Bw_LPF(magnitude,wavepoint, fs, lowf,3, filter), I get the low frequency. But the filter is a set of real numbers, how can I compute InvFFT?
FFT(wavesignal,waveimgsignal,wavepoint);
ToPolar1D(wavesignal,waveimgsignal,wavepoint,magnitude,phase);
PlotY(panelHandle,PANEL_GRAPH_3,magnitude,wavepoint,VAL_DOUBLE,VAL_THIN_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_RED);
// InvFFT(wavesignal,waveimgsignal,wavepoint);
// PlotY( panelHandle,PANEL_GRAPH_4,wavesignal,wavepoint,VAL_DOUBLE,VAL_THIN_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_RED);
T=time1[wavepoint-1]-time1[0];
fs=512.0/T;
// lowf=1+250.0*T;
lowf=500.0;
Bw_LPF(magnitude,wavepoint, fs, lowf,3, filter);
PlotY(panelHandle,PANEL_GRAPH_2,filter,wavepoint,VAL_DOUBLE,VAL_THIN_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_RED);
for(i=0;i<wavepoint;i++)
{
waveimgsignal[i]=0;
}
InvFFT(filter,waveimgsignal,wavepoint);
//ToPolar1D(wavesignal,waveimgsignal,wavepoint,magnitude,phase);
PlotY(panelHandle,PANEL_GRAPH_4,filter,wavepoint,VAL_DOUBLE,VAL_THIN_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_RED);
By this program, my results are false.