Procedure TWOFFT(DATA1, DATA2:array of real; var FFT1, FFT2:array of real; N:integer); var C1R,C1I,C2R,C2I,CONJR,CONJI,H1R,H1I,H2R,H2I:real; N2,J,J2:integer; begin C1R:=0.5; C1I:=0; C2R:=0; C2I:=-0.5; For J:=1 To N do begin FFT1[2 * J - 1]:=DATA1[J]; FFT1[2 * J]:=DATA2[J]; end; FOUR1(FFT1, N, 1); FFT2[1]:=FFT1[2]; FFT2[2]:=0; FFT1[2]:=0; N2:=2 * (N + 2); For J:=2 To ((N div 2) + 1) do begin J2:=2 * J; CONJR:=FFT1[N2 - J2 - 1]; CONJI:=-FFT1[N2 - J2]; H1R:=C1R * (FFT1[J2 - 1] + CONJR) - C1I * (FFT1[J2] + CONJI); H1I:=C1I * (FFT1[J2 - 1] + CONJR) + C1R * (FFT1[J2] + CONJI); H2R:=C2R * (FFT1[J2 - 1] - CONJR) - C2I * (FFT1[J2] - CONJI); H2I:=C2I * (FFT1[J2 - 1] - CONJR) + C2R * (FFT1[J2] - CONJI); FFT1[J2 - 1]:=H1R; FFT1[J2]:=H1I; FFT1[N2 - J2 - 1]:=H1R; FFT1[N2 - J2]:=-H1I; FFT2[J2 - 1]:=H2R; FFT2[J2]:=H2I; FFT2[N2 - J2 - 1]:=H2R; FFT2[N2 - J2]:=-H2I; end; end;