我用
#define PI 3.1415926
#define X2D (PI / 180.0)
#define A 97.14
#define Q (12.37 * X2D)
#define DD (360.0 / 1024.0)
while (1024 > iCounter)
{
in[iCounter][0] = (double)(A * sin((((double)iCounter) * DD * X2D) + Q));
in[iCounter][1] = 0.0;
//pData[iCounter] = (double)(A * sin((((double)iCounter) * DD * X2D) + Q));
iCounter++;
}
创建一个波形,然后用FFTW
fftw_plan plan;
plan = fftw_plan_dft_1d(1024, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_execute(plan);
进行FFT
之后
for (iCounter = 0; iCounter < 200; iCounter++)
{
double dT = sqrt(out[iCounter][0] * out[iCounter][0] + out[iCounter][1] * out[iCounter][1]);
printf("%lf\n", dT);
if (dT > AM)
{
AM = dT;
}
}
得到的时49735这样的值。请问我是不是哪里错了?
另怎么从FFT结果中求得A,Q等值?