Code: --------------------------------------------------------------------------------------------- procedure TFormFltr.LogComplAr(Const Mes: String; Const Coef: TComplex1DArray); Var I: Integer; Begin Memo1.Lines.add(Mes); For I:= Low(Coef) to High(Coef) do With Coef[I] do Memo1.Lines.add(Format('I=%2d Real=%7.3f Im=%7.3f', [I, X, Y])); Memo1.Lines.add(' '); End; procedure TFormFltr.MyFFT(Const Inp : TComplex1DArray; Const N : AlglibInteger; var Outp : TComplex1DArray); {Deze procedure is opgezet omdat proc FFTC1D soms heel vreemde resultaten oplevert (wijzigt de inhoud van geheel andere variabelen dan de outputvar (de var die ervoor als input is geassigned aan W?)! Helaas blijkt ook deze proc/opzet het probleem niet op te lossen. } Var W : TComplex1DArray; Begin if not(odd(N)) then ShowMessage(Format('Aanroep MyFFT met even N (N=%2d)',[N])); SetLength(W,High(Inp)+1); {helpt niet} W:= Inp; LogComplAr('Coef Inp 6:',Inp); Memo1.Lines.add('Exec. FFT.FFTC1D'); FFT.FFTC1D(W,N); LogComplAr('Coef Inp 7:',Inp); {Inp blijkt gewijzigd?!!!!!!!!!!!!!!!!!!!!!} Outp:= W; End; --------------------------------------------------------------------------------------------- Logging: Coef Inp 6: I= 0 Real= 0,126 Im= 0,000 I= 1 Real= -0,888 Im= -0,261 I= 2 Real= 0,854 Im= 0,549 I= 3 Real= -0,651 Im= -0,751 I= 4 Real= 0,417 Im= 0,912 I= 5 Real= -0,142 Im= -0,989 I= 6 Real= -0,142 Im= 0,989 I= 7 Real= 0,417 Im= -0,912 I= 8 Real= -0,651 Im= 0,751 I= 9 Real= 0,854 Im= -0,549 I=10 Real= -0,888 Im= 0,261 Exec. FFT.FFTC1D Coef Inp 7: I= 0 Real= -0,693 Im= 0,000 I= 1 Real= -0,693 Im= 0,000 I= 2 Real= -0,796 Im= 0,000 I= 3 Real= -0,882 Im= 0,000 I= 4 Real= -0,947 Im= 0,000 I= 5 Real= -0,986 Im= 0,000 I= 6 Real= 10,000 Im= 0,000 I= 7 Real= -0,986 Im= 0,000 I= 8 Real= -0,947 Im= 0,000 I= 9 Real= -0,882 Im= 0,000 I=10 Real= -0,796 Im= 0,000