MF_spectrum MD_spectrum ME_spectrum
FunktionRaumfrequenz-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/Delphiuses MFstd;
procedure MF_spectrum( MSpec:fMatrix; htSpec, lenSpec:UIntSize; MX:fMatrix; htX, lenX:UIntSize; MWin:fMatrix );
BeschreibungDas 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/.

FehlerbehandlungFalls 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.
QuerverweisMF_FFT,   MF_convolve,   MF_autocorr,   MF_xcorr,   MF_filter,   Kap. 12

MatrixLib Inhaltsverzeichnis  OptiVec Home