diff options
Diffstat (limited to 'epostunit.pas')
-rw-r--r-- | epostunit.pas | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/epostunit.pas b/epostunit.pas index 704956e..390da27 100644 --- a/epostunit.pas +++ b/epostunit.pas @@ -4849,10 +4849,22 @@ begin exit; until false; bekannteBefehle.free; - if senkrecht then + if senkrecht then begin + if odd(_tSiz) then begin + gibAus('Eine FFT braucht eine gerade Anzahl an Werten, '+intToStr(_tSiz)+' ist aber ungerade (man könnte das aber auch noch implementieren)!',3); + fenster.free; + exit; + end; fenster.breite:=_tSiz - fenster.rand - else + end + else begin + if odd(_xSteps) then begin + gibAus('Eine FFT braucht eine gerade Anzahl an Werten, '+intToStr(_xSteps)+' ist aber ungerade (man könnte das aber auch noch implementieren)!',3); + fenster.free; + exit; + end; fenster.breite:=_xSteps - fenster.rand; + end; if not sT then begin gibAus('berechne FFT ...',3); if not fft(threads,senkrecht,false,doRes,nB,fenster,nil,pvFehler,warn) then begin @@ -4956,6 +4968,19 @@ begin fensters[true].breite:=_tSiz-fensters[true].breite; fensters[false].breite:=_xSteps-fensters[false].breite; + if odd(_tSiz) then begin + gibAus('Eine 2d-FFT braucht eine gerade Anzahl an Werten, '+intToStr(_tSiz)+' ist aber ungerade (man könnte das aber auch noch implementieren)!',3); + for b:=false to true do + fensters[b].free; + exit; + end; + if odd(_xSteps) then begin + gibAus('Eine 2d-FFT braucht eine gerade Anzahl an Werten, '+intToStr(_xSteps)+' ist aber ungerade (man könnte das aber auch noch implementieren)!',3); + for b:=false to true do + fensters[b].free; + exit; + end; + if istKomplex xor (dos[4] in [doAlleResIms, doAlleResSmi]) then begin gibAus('Eine 2d-FFT gibt genau dann alle Real- und Imaginärteile aus, wenn die Eingabe komplex ist!',3); exit; |