MF_Rows_FFT MD_Rows_FFT ME_Rows_FFT
MF_Rows_FFTtoC MD_Rows_FFTtoC ME_Rows_FFTtoC
MCF_Rows_FFT MCD_Rows_FFT MCE_Rows_FFT
FunktionSchnelle Fourier-Transformation (Fast Fourier Transformation) entlang der Zeilen einer Matrix
Syntax C/C++#include <MFstd.h>
void MF_Rows_FFT( fMatrix Y, fMatrix X, ui ht, ui len, int dir );
void MCF_Rows_FFT( cfMatrix Y, cfMatrix X, ui ht, ui len, int dir );
void MF_Rows_FFTtoC( cfMatrix Y, fMatrix X, ui ht, ui len );
C++ MatObj#include <OptiVec.h>
void matrix<T>::Rows_FFT( const matrix<T>& MX, int dir );
void matrix<complex<T> >::Rows_FFT( const matrix<complex<T> >& MX, int dir );
void matrix<complex<T> >::Rows_FFTtoC( const matrix<T>& MX );
Pascal/Delphiuses MFstd;
procedure MF_Rows_FFT( MY, MX:fMatrix; ht, len:UIntSize; dir:Integer );
procedure MCF_Rows_FFT( MY, MX:cfMatrix; ht, len:UIntSize; dir:Integer );
procedure MF_Rows_FFTtoC( MY:cfMatrix; MX:fMatrix; ht, len:UIntSize );
BeschreibungDie Fourier-Transformierten der Zeilen von MX werden in den Zeilen von MY zurückgegeben. Die Vorwärts-Transformation erhält man für dir = 1, die inverse (oder Rückwärts-) Transformation für dir = -1. Der verwendete FFT-Algorithmus erfordert es, daß len eine ganzzahlige Potenz von 2 ist.  ht hingegen kann zwar beliebige Werte annehmen; die Funktion ist aber am effizientesten, wenn ht ein Vielfaches von 4 ist.
Komplexe Version: Sowohl die Eingabe-Matrix X also auch die Ausgabe-Matrix Y sind komplex.
Reell-zu-Komplex-Version: Die Eingabe-Matrix X ist reell. Die Ausgabe-Matrix Y ist komplex. Da diese Funktion nur in Vorwärts-Richtung ausgeführt werden kann, ist kein Argument "dir" erforderlich.
Rein reelle Version: Für die Vorwärts-Transformation ist MX eine reelle Matrix. Die Ausgabe-Matrix Y ist ebenfalls als reelle Matrix definiert, obwohl sie aus komplexen Zahlen besteht. Diese sind auf spezielle Weise so gepackt, daß sie in den für eine gleich große reelle Matrix zur Verfügung stehenden Speicherplatz passen. Die Reihenfolge der Elemente der Zeilen von MY ist in folgenden Tabelle angegeben. U ist die unkomprimierte Fourier-Transformierte, N ist ht.
MYi,0MYi,1MYi,2 MYi,3  .....   MYi,N-2MYi,N-1
Ui,0.ReUi,N/2.ReUi,1.Re Ui,1.Im  .....   Ui,N/2-1.ReUi,N/2-1.Im

Für die inverse Rows_FFT reeller Matrizen muß die Eingabe-Matrix in diesem gepackt-komplexen Format vorliegen. und als Ergebnis erhält man eine "echte" reelle Matrix. Falls Sie es vorziehen, das Ergebnis der Vorwärts-Transformation ungepackt, also als "echte" komplexe Zahlen zu erhalten, benutzen Sie bitte MF_Rows_FFTtoC.

Bezüglich spezieller Versionen mit den Präfixen MFs_, MFl_ und MFp_ vergleiche man Kap. 4.8 von http://www.optivec.de/vecfuncs/.

FehlerbehandlungFalls len nicht eine Potenz von 2 ist, meldet sich VF_FFT (worauf MF_Rows_FFT basiert) mit der Fehlermeldung "Size must be an integer power of 2" und bricht das Programm ab.
QuerverweisMF_Cols_FFT,   MF_FFT,   Kap. 12,   Kap. 4.8 von http://www.optivec.de/vecfuncs/

MatrixLib Inhaltsverzeichnis  OptiVec Home