Borland X Portal :: Просмотр темы - Преобразование Фурье

Borland X Portal
Алгоритмы - Преобразование Фурье

Potter - Чт Май 16, 2002 13:36
Заголовок сообщения: Преобразование Фурье

С помощью какой функции можно реализовать преобразование Фурье?
Пробовал функцию DFFT(...) . Но оказалось что в хэлпе такой функции нет. Хотя у меня в литературе она описана

Devnvd - Чт Май 16, 2002 15:56
Заголовок сообщения: Преобразование Фурье

Быстрое преобразование фурье.
Размерность массива N должна быть кратна степени двойки.

> code:

>     #include <math.h>

>     //

>     // Input parameter:

>     //   N-number point

>     //   x,y- Massiv data x[0]..x[N-1], x for BPF, x and y for OBPF

>     //   I- =1-BPF, =-1 -OBPF

>     // Output:

>     //   x-Re

>     //   y-Im

>     void BPF(float *x,float *y,int N,int I)

>     {

>      float c,s,t1,t2,t3,t4,u1,u2,u3;

>      int i,j,p,l,L,M,M1,K;

>      L=N;

>      M=N/2;

>      M1=N-1;

>      while(L>=2)

>      {

>     	l=L/2; u1=1.; u2=0.; t1=M_PI/float(l);

>     	c=cos(t1); s=-I*sin(t1);

>     	for(j=0;j <l;j++)

>     	{

>     	  for(i=j; i<N; i+=L)

>     	  {

>     		 p=i+l;

>     		 t1=*(x+i) + *(x+p);

>     		 t2=*(y+i) + *(y+p);

>     		 t3=*(x+i) - *(x+p);

>     		 t4=*(y+i) - *(y+p);

>     		 *(x+p)=t3*u1-t4*u2;

>     		 *(y+p)=t4*u1+t3*u2;

>     		 *(x+i)=t1; *(y+i)=t2;

>     	  }

>     	  u3=u1*c-u2*s;

>     	  u2=u2*c+u1*s; u1=u3;

>       }

>       L/=2;

>      }

>      j=0;

>      for(i=0; i < M1; i++)

>      {

>     	if(i > j)

>     	{

>     	  t1=*(x+j); t2=*(y+j);

>     	  *(x+j)=*(x+i); *(y+j)=*(y+i);

>     	  *(x+i)=t1; *(y+i)=t2;

>     	}

>     	K=M;

>     	while( j >=K)

>     	{

>     		j-=K; K/=2;

>     	}

>     	j+=K;

>      }

>     }

[ 16 Мая 2002: Сообщение отредактировано: Holms ]

Potter - Чт Май 16, 2002 16:20
Заголовок сообщения: Преобразование Фурье

Спасибо
А какая нибудь стандартная функция билдера для этой цели есть? Просто для справки

Devnvd - Чт Май 16, 2002 17:39
Заголовок сообщения: Преобразование Фурье

Стандартной функции преобразования Фурье в Builder'е не встречал никогда.
Использует каждый то, что попадётся под руку.

© 2002 Borland X Portal (http://borland.xportal.ru) - все права сохранены
При использовании материалов сайта ссылка на сайт обязательна!
Часовой пояс: GMT +3:00
Powered by phpBB 2.0 .0.1 © 2001 phpBB Group
[AD]