|Function||spatial frequency spectrum|
|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 );
procedure MF_spectrum( MSpec:fMatrix; htSpec, lenSpec:UIntSize; MX:fMatrix; htX, lenX:UIntSize; MWin:fMatrix );
|CUDA function C/C++||#include <cudaMFstd.h>
int cudaMF_spectrum( fMatrix d_Spec, ui htSpec, ui lenSpec, fMatrix d_X, ui htX, ui lenX, fMatrix d_Win );
void MFcu_spectrum( fMatrix h_Spec, ui htSpec, ui lenSpec, fMatrix h_X, ui htX, ui lenX, fMatrix h_Win );
|CUDA function Pascal/Delphi||uses MFstd;
function cudaMF_spectrum( d_MSpec:fMatrix; htSpec, lenSpec:UIntSize; d_MX:fMatrix; htX, lenX:UIntSize; d_MWin:fMatrix ): IntBool;
procedure MFcu_spectrum( h_MSpec:fMatrix; htSpec, lenSpec:UIntSize; h_MX:fMatrix; htX, lenX:UIntSize; h_MWin:fMatrix );
|Description||The data set MX is analyzed for the mean square amplitude of its spatial frequency spectrum. The result is stored in MSpc.
Internally, the spectrum is calculated by dividing the input data into overlapping segments, similarly to the one-dimensional case described for VF_spectrum.
MWin is a window that is applied to the data segments. Three functions are available that give suitable
Windows: MF_Welch, MF_Parzen, and MF_Hann. A square window is available by setting all matrix elements equal to 1.0 (MF_equC( MWin, htWin, lenWin, 1.0 ); ), but this is not recommended.
htSpec and lenSpec must be integer powers of 2.
MSpec has [htSpec+1][lenSpec+1] elements (!), and htX >= n*htSpec, lenX >= n*lenSpec, htWin = 2*htSpec, lenWin = 2*lenSpec.
About special versions with the prefixes MFs_ and MFl_, consult chapter 4.8 of http://www.optivec.com/vecfuncs/.
|Error handling||If either htSpec or lenSpec is not a power of 2, VF_FFT (on which MF_spectrum relies) complains "Size must be an integer power of 2" and the program is aborted. If MSpc overwrites MX or MWin, an error message "Vectors/matrices must not be identical" is generated and the program aborted.|