summaryrefslogtreecommitdiff
path: root/epostunit.pas
diff options
context:
space:
mode:
Diffstat (limited to 'epostunit.pas')
-rw-r--r--epostunit.pas29
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;