| MF_spectrum
| MD_spectrum |
ME_spectrum |
|
| Funktion | Raumfrequenz-Spektrum |
|
| Syntax C/C++ | #include <MFstd.h>
void MF_spectrum( fMatrix Spec, ui htSpec, ui lenSpec, fMatrix X, ui htX, ui lenX, fMatrix Win ); |
| C++ MatObj | #include <OptiVec.h>
void matrix<T>::sprectrum( const matrix<T>& MX, const matrix<T>& MWin ); |
| Pascal/Delphi | uses MFstd;
procedure MF_spectrum( MSpec:fMatrix; htSpec, lenSpec:UIntSize; MX:fMatrix; htX, lenX:UIntSize; MWin:fMatrix ); |
|
| Beschreibung | Das mittlere Amplitudenquadrat des Raumfrequenz-Spektrums der in MX enthaltenen Daten wird berechnet und in MSpc gespeichert.
Intern wird MX in überlappende Segmente unterteilt, ähnlich wie für den eindimensionalen Fall bei VF_spectrum beschrieben. MWin ist ein Fenster, das auf die Datensegmente angewendet wird. OptiVec bietet drei Funktionen zur Erzeugung passender Fenster: MF_Welch, MF_Parzen und MF_Hann. Ein Rechteck-Fenster erhält man durch Setzen aller Matrix-Elemente auf den Wert 1.0 (MF_equC( MWin, htWin, lenWin, 1.0 ); ), dies wird aber nicht empfohlen.
htSpec und lenSpec müssen ganzzahlige Potenzen von 2 sein.
MSpec hat [htSpec+1][lenSpec+1] Elemente (!), und htX >= n*htSpec, lenX >= n*lenSpec, htWin = 2*htSpec, lenWin = 2*lenSpec.
Bezüglich spezieller Versionen mit den Präfixen MFl_ und MFs_ vergleiche man Kap. 4.8 von http://www.optivec.de/vecfuncs/. |
|
| Fehlerbehandlung | Falls entweder htSpec oder lenSpec keine ganzzahlige Potenz von 2 ist, meldet sich VF_FFT (worauf MF_spectrum basiert) mit der Fehlermeldung "Size must be an integer power of 2" und bricht das Programm ab. |
|
|