|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Ruslan Askarov 2:5020/400 14 Mar 2002 14:31:13 To : All Subject : Баг? --------------------------------------------------------------------------------
Есть функция, которая делает преобразование Фурье:
void __fastcall TX::Convert(unsigned par)
{
garm = new float[par];
fia = new float[par];
sing=new float[par];
cosg=new float[par];
int i;
unsigned j;
float dx=2*M_PI/n;
for (i=0;i<n;i++)
{
garm[0]+=y[i];
for (j=1;j<par;j++)
{
sing[j]+=y[i]*sin(j*(i)*dx);
cosg[j]+=y[i]*cos(j*(i)*dx);
}
}
garm[0]=garm[0]/n;
for (j=1;j<par;j++)
{
sing[j]=sing[j]*2/n;
cosg[j]=cosg[j]*2/n;
garm[j]=sqrt(sing[j]*sing[j]+cosg[j]*cosg[j]);
fia[j]=atan(cosg[j]/sing[j]);
}
}
}
Так вот в ней:
1) garm[j]=sqrt(sing[j]*sing[j]+cosg[j]*cosg[j]);
и
garm[j]=sqrt(cosg[j]*cosg[j]+sing[j]*sing[j];
не одно и тоже.
2)
sing[j]=sing[j]*2/n;
cosg[j]=cosg[j]*2/n;
и
cosg[j]=cosg[j]*2/n;
sing[j]=sing[j]*2/n;
то же, не одно и тоже - результаты абсолютно разные.
В чем проблема?
--- ifmail v.2.15dev5
* Origin: UGNTU (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/208070728881.html, оценка из 5, голосов 10
|