Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Programmabsturz durch einfügen eines TButton ??

  Alt 6. Jun 2008, 18:38
Ähhhm Sekunde mal! Deine Arrays sind zu klein. Die FFTW erwartet folgendes:
Delphi-Quellcode:
type
  TComplex = packed record
    Re, Im: Double;

  TComplexArray = packed array of TComplex;
.
.
.
plan := fftwf_plan_dft_1d(n, @In_[0].Re, @Out_[0].Re, FFTW_FORWARD, FFTW_ESTIMATE);
AUSSER(!) Du verwendest die Versionen die speziell für rein Reellwertige Samples gedacht sind. Dort wird dann bei Forward ein array of Double erwartet wie du es hast, und als Out-Array ein array of TComplex, das aber nur halb so lang ist. (Bei Rücktransformation entprechend anders herum.)

Edit: Du kannst auch einfach ein array of Double nehmen, und jeden 2. Wert als Imaginäranteil "von Hand" interpretieren. Es muss halt nur doppelt so lang sein wie N angibt.

Edit2...: In der FFTW Doku gibts imho auch eine Übersicht, wie die Arrays ganz detailiert auszusehen haben, und wo die Unterschiede in den verschiedenen Funktionsaufrufen und Betriebsmodi liegen. Das ist zugegebenermaßen erstmal fummelig, dafür haben sich die Jungs echt Gedanken gemacht.

Edit3: Letztes Edit. Rechtschreibung und so.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat