быстрое преобразование фурье

Hi, All!

где можно взять алгоритмы быстрого преобразования фурье. ассемблер. авр (тини, желательно).

практическое применение не плаируется, просто очень (очень-очень) интересно. желательно с *.пдф даташитом.

Oleg

Reply to
Oleg DOZHDEV
Loading thread data ...

Hi, Oleg Dozhdev

Если просто интересно, то вот:

unit BPF;

interface

type TDoubleArray = array of Double;

var DoubleArray:TDoubleArray;

procedure BPF_Pr(var MasIn: TDoubleArray);

implementation

procedure BPF_Pr(var MasIn: TDoubleArray); const ss: array [1..12] of real =(0,-1,-0.7071,-0.38268,-0.19509,-0.09802,-0.04907, -0.02454, -0.01227, -0.0061, -0.00307, -0.001539); cc: array [1..12] of real =(-1,0,0.7071068,0.9238795,0.9807853,0.9951847,0.9987955, 0.9996988,

0.9999247, 0.9999812, 0.9999953, 0.999999); var n,r,i,k,ni,l,m,j,g,n1,n2:Integer; x,ci,s,v,w,z,u,y,nn:Double; a,b: array of double; begin n:=Length(MasIn); case n of 256: r:=8; 512: r:=9; 1024: r:=10; 2048: r:=11; 4096: r:=12; else Exit; // не поддерживается типа end; n1:=n div 2; n2:=n1+1; nn:=1/n; SetLength(a,n+1); SetLength(b,n+1); for i:=1 to n do a[i]:=MasIn[i-1]; for i:=1 to n do b[i]:=0; ni:=n1; k:=n2; for i:=2 to n-1 do begin if i<k then begin x:=a[k]; a[k]:=a[i]; a[i]:=x; end; l:=ni; while l<k do begin k:=k-l; l:=l div 2; end; k:=k+l; end; m:=1; l:=n1; for i:=1 to r do begin ci:=cc[i]; s:=ss[i]; v:=1; w:=0; for j:=1 to m do begin for k:=1 to l do begin ni:=j+2*(k-1)*m; g:=ni+m; z:=a[g]; u:=b[g]; x:=z*v+u*w; y:=u*v-z*w; z:=a[ni]; u:=b[ni]; a[ni]:=z+x; b[ni]:=u+y; a[g]:=z-x; b[g]:=u-y; end; x:=v*ci-w*s; w:=w*ci+v*s; v:=x; end; m:=m shl 1; l:=l shr 1; end; for i:=1 to n1 do begin a[i]:=a[i]*nn; b[i]:=b[i]*nn; MasIn[i-1]:=sqrt(a[i]*a[i]+b[i]*b[i]); end; SetLength(a,0); SetLength(b,0); end;

end.

Reply to
Igor Yegorkin

Numerical recipes in C. Там, вроде и исходник и разжёвано всё. Да и вообще google.

ДАЙТЕ ДЕНЕГ!

PDF даташиты ищутся как application notes. Там тоже разжёвано, с исходниками. У Texas Instruments, например. Да у всех кто что-то с претензией на DSP делает.

Reply to
Kirill Frolov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.