MF_Cols_FFT MD_Cols_FFT ME_Cols_FFT
MF_Cols_FFTtoC MD_Cols_FFTtoC ME_Cols_FFTtoC
MCF_Cols_FFT MCD_Cols_FFT MCE_Cols_FFT
FunktionSchnelle Fourier-Transformation (Fast Fourier Transformation) entlang der Spalten einer Matrix
Syntax C/C++#include <MFstd.h>
void MF_Cols_FFT( fMatrix Y, fMatrix X, ui ht, ui len, int dir );
void MCF_Cols_FFT( cfMatrix Y, cfMatrix X, ui ht, ui len, int dir );
void MF_Cols_FFTtoC( cfMatrix Y, fMatrix X, ui ht, ui len );
C++ MatObj#include <OptiVec.h>
void matrix<T>::Cols_FFT( const matrix<T>& MX, int dir );
void matrix<complex<T> >::Cols_FFT( const matrix<complex<T> >& MX, int dir );
void matrix<complex<T> >::Cols_FFTtoC( const matrix<T>& MX );
Pascal/Delphiuses MFstd;
procedure MF_Cols_FFT( MY, MX:fMatrix; ht, len:UIntSize; dir:Integer );
procedure MCF_Cols_FFT( MY, MX:cfMatrix; ht, len:UIntSize; dir:Integer );
procedure MF_Cols_FFTtoC( MY:cfMatrix; MX:fMatrix; ht, len:UIntSize );
BeschreibungDie Fourier-Transformierten der Spalten von MX werden in den Spalten 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ß ht eine ganzzahlige Potenz von 2 ist.  len hingegen kann zwar beliebige Werte annehmen; die Funktion ist aber am effizientesten, wenn len 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 Spalten von MY ist in folgenden Tabelle angegeben. U ist die unkomprimierte Fourier-Transformierte, N ist ht.
Y0, iY1, iY2, i Y3, i  .....   YN-2, iYN-1, i
U0, i.ReUN/2, i.ReU1, i.Re U1, i.Im  .....   UN/2-1, i.ReUN/2-1, i.Im

Für die inverse Cols_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 "echten" komplexe Zahlen zu erhalten, benutzen Sie bitte MF_Cols_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 ht nicht eine Potenz von 2 ist, meldet sich VF_FFT (worauf MF_Cols_FFT basiert) mit der Fehlermeldung "Size must be an integer power of 2" und bricht das Programm ab.
QuerverweisMF_Rows_FFT,   MF_FFT,   Kap. 12,   Kap. 4.8 von http://www.optivec.de/vecfuncs/

MatrixLib Inhaltsverzeichnis  OptiVec Home