|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Evgenij Masherov 2:5020/175.2 21 Sep 2001 10:03:03 To : Artur Kamilyanov Subject : Интегральное преобразование Фурье -------------------------------------------------------------------------------- Thu Sep 20 2001 20:38, Artur Kamilyanov wrote to Evgenij Masherov: >>>> 1. Интегральное преобразование Фурье - делается не численно, а БА>>> аналитически. БА>>> Речь шла - програмку написать. ;) EM>> Hу, может, коллега занимается компьютерной алгеброй? AK> программку надо. По поводу конкретики сказал все, что знал. Мне ведь AK> только сабж нужен был =) procedure fft512(var Ar:array of double; var Ai:array of double); // Зашиты 512 точек, изменения очевидны... // Входные данные - массивы действительных и мнимых частей // Выходные - они же для Фурье var Le,Le1,jt,it,ip,lt,kt:Integer; Tr,Ti,Ur,Ui,Wr,Wi:Double; begin // Перестановка в инвертированном битовом порядке for it:=0 to 511 do begin kt:=256; jt:=0; Le:=1; Le1:=it; for lt:=1 to 9 do begin if kt<=Le1 then begin jt:=jt+Le; Le1:=Le1-kt; end; Le:=Le*2; kt:=kt div 2; end; if it<jt then begin Tr:=Ar[jt];Ti:=Ai[jt]; Ar[jt]:=Ar[it];Ai[jt]:=Ai[it]; Ar[it]:=Tr;Ai[it]:=Ti; end; end; //Собственно Фурье for lt:=1 to 9 do //Делим пополам... begin Le:=1; for jt:=1 to lt do Le:=Le*2; Le1:=Le div 2; Ur:=1.0; Ui:=0.0; Wr:=cos(Pi/Le1); Wi:=sin(Pi/Le1); // синусы и косинусы считаем рекурсивно for jt:=0 to Le1-1 do begin it:=jt; while it<512-Le1 do begin // бабочка ip:=it+Le1; Tr:=Ar[ip]*Ur-Ai[ip]*Ui; Ti:=Ar[ip]*Ui+Ai[ip]*Ur; Ar[ip]:=Ar[it]-Tr; Ai[ip]:=Ai[it]-Ti; Ar[it]:=Ar[it]+Tr; Ai[it]:=Ai[it]+Ti; it:=it+Le; end; // Вычисление новых синусов Tr:=Ur*Wr-Ui*Wi; Ti:=Ur*Wi+Ui*Wr; Ur:=Tr; Ui:=Ti; end; end; end; Hу вот программка. Обратное - ею же, но сопрягнув вектор. Деление на эH на совести считающего... Евгений Машеров АКА СанитарЖеня --- ifmail v.2.15 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/3300eab605d0.html, оценка из 5, голосов 10
|