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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Top2n
522
Top2n  

Друзья, не могу понять в чем дело, высчитываю БПФ на 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
Georgiy Merts
9179
Georgiy Merts  

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

Vladimir Tkach
26442
Vladimir Tkach  

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

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

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

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

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

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