procedure IDFT (pREAL,pIMAG:ZISU; n:integer; var VALREAL,VALIMAG:ZISU ); type ZISU= array[0..99] of real; var a,b : integer; ARG : ZISU; OMEGAc,OMEGAs : real; begin for a:=0 to n-1 do ARG[a]:=(2*3.14*a*(-1))/n; for a:=0 to n-1 do begin VALREAL[a]:=0; VALIMAG[a]:=0; for b:=0 to n-1 do begin OMEGAc:=cos(ARG[a]*b); OMEGAs:=sin(ARG[a]*b); VALREAL[a]:=VALREAL[a]+pREAL[b]*OMEGAc-pIMAG[b]*OMEGAs; VALIMAG[a]:=VALIMAG[a]+pREAL[b]*OMEGAs+pIMAG[b]*OMEGAc end; VALREAL[a]:=VALREAL[a]/n; VALIMAG[a]:=VALIMAG[a]/n end end;