Страница: 1 |
На днях задумал светомузыку забацать!!! Ну все уже умею и к порту LPT обратиться и светодиодик любой зажечь, и поток данных с саундкарты снять, но когда дело дошло до разложения потока в спектр (!!!), вперся! :-(( Оказывается для этого нужно вспоминать курс высшей математики! :-(( А учился я неважно. Вот сижу теперь перепахиваю формулы и вспоминаю "Что же такое преобразование Фурье?". Если вдруг кто сталкивался с написанием кода быстрого преобразования Фурь(FFT) плиз, ну прямо ПЛИЗЗЗ(!!!), не поленитесь, вышлите мне его на мыло!?! Заранее ОГРОМНОЕ спасибо! EvgenyBoom@HiTV.ru
Есть на С (вроде бы) и еще не пойму на чём, похоже на листинг для BAT файла. Выкладываю на С, не знаю подойдет или нет... Пpеобpазование Фypье: Используется если число точек степень двойки Скорость N*log2(N) sin cos - вычисляются редко. Сразу выдает весь спектр и фазу. sqrt(X[i]*X[i]+Y[i]*Y[i]) - энергия частоты. Используютя только частоты от 0 до N/2. TREAL - для duoble,long double,float ... Нашел еще один листинг на С++, но он по больше будет и по сложнее, комментарии на английском, так что выкладывать не буду. Если хочешь могу выслать. Спасибо ИСпаю за помощь, но неужели никто на VB не раскладывал сигналы в частотный спектр??? Страница: 1 |
Вопрос: Вот она высшая математика для чегоооо!!!
Добавлено: 06.04.04 18:15
Автор вопроса: EvgenyBoom2004
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #1
Добавлено: 06.04.04 19:26
template<class TREAL>void FFT(int n,TREAL *x,TREAL *y){int n2=n>>1,kd,i1,i;TREAL Tx,Ty,T;for(int j=i=0;i<n-1;i++) { if(i<j){swap(x[i],x[j]);swap(y[i],y[j]);} for(kd=n2;j>=kd;kd=(kd+1)>>1)j-=kd; j+=kd; }TREAL Wx,Wy;for(kd=1;kd<=n2;kd<<=1) for(j=0;j<kd;j++) { Wx=cosl(M_PI/kd*j); Wy=sinl(M_PI/kd*j); for(i=j;i<n;i+=kd<<1) { i1=i+kd; Tx=x[i1]*Wx-y[i1]*Wy; Ty=x[i1]*Wy+y[i1]*Wx; x[i1]=x[i]-Tx; y[i1]=y[i]-Ty; x[i]+=Tx; y[i]+=Ty; } }for(i=0;i<n;i++) { x[i]/=n2; y[i]/=n2; }}
если не сложно, пришли листинг своей проги
Номер ответа: 2
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #2
Добавлено: 06.04.04 19:35
Номер ответа: 3
Автор ответа:
EvgenyBoom2004
Вопросов: 4
Ответов: 6
Профиль | | #3
Добавлено: 10.04.04 12:15