ФУРЬЕ, что то не так!

 

Друзья, не могу понять в чем дело, высчитываю БПФ на mql5. Сигнал получается не гармоничный.

#include<dt_fft.mqh>
int arr=1050;
double arrayZ[arr];
//-----------------
int tnn1=MathPow(2,10);//  размер массива должен быть степенью двойки
double aa[];
int N=ArrayResize(aa,tnn1);

// Построение спектра
double sig;
for(int i=0; i<=N-1; i++)
  {
   sig=arrayZ[i+1]; // рыночные цены
   aa[i]=sig;
  }

// Прямое преобразование Фурье - после выпонения функции в массиве aa[] - спектрограмма
realfastfouriertransform(aa,tnn1,false);

//--- Вывод спектрограммы на экран
for(int i=0; i<=(N-1)/2; i++)
  {
   // Модуль комплексного числа
   arrayZ[i+1]=(MathSqrt(aa[i*2]*aa[i*2]+aa[i*2+1]*aa[i*2+1]))/(N/2);
  }  


 

Файлы:
12.jpg  41 kb
FFT.dll.mqh  1 kb
 

Очевидно, проблема в ДЛЛ ?

 

Судя по спектру присутствует статическая составляющая. Обычно перед преобразованием сигнал центрируют вычитая из всех значений среднее.

Да и кто вам сказал, что по ценам вы должны видеть гармоники? 

 
Фурье это разводка!! Пиши диссертацию, разоблачитель
 

Разве так, что поперек есть в доль нет. 

Рассчитывал  на иной результат

 
Вертикальную ось сделайте логарифмической.
 
roma_krasava:
Фурье это разводка!! Пиши диссертацию, разоблачитель
Хоть таблицу умножения выучил, а? Взялся рассуждать о Фурье.
 
Vladimir Tkach:
Вертикальную ось сделайте логарифмической.
Как, в самом преобразовании, или от результата?
 
В результатах на графике. Но легче не станет. Лишь больше мусора увидишь.
Причина обращения: