Overview
Estimates the direction of arrival in a 2d circle
Type Definition
Code Block |
---|
typedef struct _ModuleGCCDOAV1 { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure INT32 numMics; // Number of mics in the array INT32 numDirs; // Number of look directions INT32 maxNumSources; // Maximum number of sources to identify INT32 interpFactor; // Interpolation factor INT32 fftSize; // Size of FFT upstream from this module INT32 numBins; // Number of bins. This should be the input block size INT32 useInputWeightingPin; // Use input weighting pin INT32 numPairs; // Number of microphone pairs INT32 xCorrsZeroSamp; // 0th sample index in the xcorr data FLOAT32 noiseFloorDBOffset; // Offset, in DB, for noise floor weighting. Higher value will weight noise floor less. INT32 interpBS; // Block Size at interpolated rate FLOAT32 interpSR; // Sample rate at interpolated rate INT32 lookDirLow; // Min look direction, in degrees. The low end of the DOA look direction. INT32 lookDirHigh; // Max look direction, in degrees. The high end of the DOA look direction. FLOAT32 epsilon; // Small number FLOAT32 c; // Speed of sound in meters per sec FLOAT32 windowSize; // How much to extend the look window when comparing measured delays with theoretical time delays. This is relative number. INT32 removalWindowDelta; // Number of samples to remove when filtering DOA Peaks INT32 tauMaxMax; // Maximum theoretical time delays for all mic pair INT32 tauMinMin; // Minimum theoretical time delays for all mic pair INT32 tdZeroSamp; // windowed xcorr 0 delay sample index INT32 tdLength; // Length of the xcorr vector, after windowing FLOAT32* micArrayCoords; // Microphone geometry in cartesian coordinates and in meters. The vector going from (0,0) to (1,0) is considered 0 degrees. FLOAT32* noiseFloorVar; // Microphone noise floor measurement, in linear units. INT32* taus; // Theoretical time delays based on the mic geometry and other factors. FLOAT32* lookDirs; // Look directions, in degrees. INT32* tauMax; // Maximum theoretical time delays for each mic pair INT32* tauMin; // Minimum theoretical time delays for each mic pair FLOAT32* G; // Temporary variable from the processing function FLOAT32* doaValues; // Temporary variable from the processing function FLOAT32* td; // Temporary variable from the processing function FLOAT32* tdTmp; // Temporary variable from the processing function void * ifft_struct_pointer; // Points to an instance of an IFFT module } ModuleGCCDOAV1Class; |
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
numMics | int | const | 0 | 6 | Unrestricted | |
numDirs | int | const | 0 | 360 | Unrestricted | |
maxNumSources | int | const | 0 | 3 | Unrestricted | |
interpFactor | int | const | 0 | 16 | Unrestricted | |
fftSize | int | const | 0 | 512 | Unrestricted | |
numBins | int | const | 0 | 257 | Unrestricted | |
useInputWeightingPin | int | const | 0 | 1 | Unrestricted | |
numPairs | int | const | 0 | 15 | Unrestricted | |
xCorrsZeroSamp | int | const | 0 | 128 | Unrestricted | |
noiseFloorDBOffset | float | parameter | 0 | 5 | -20:20 | |
interpBS | int | derived | 0 | 4097 | Unrestricted | |
interpSR | float | derived | 0 | 196608000 | Unrestricted | |
lookDirLow | int | parameter | 0 | 0 | 0:360 | |
lookDirHigh | int | parameter | 0 | 360 | 0:360 | |
epsilon | float | parameter | 1 | 1e-16 | Unrestricted | |
c | float | parameter | 1 | 343 | Unrestricted | |
windowSize | float | parameter | 1 | 0 | Unrestricted | |
removalWindowDelta | int | parameter | 1 | 2 | Unrestricted | |
tauMaxMax | int | derived | 1 | 0 | Unrestricted | |
tauMinMin | int | derived | 1 | 0 | Unrestricted | |
tdZeroSamp | int | derived | 1 | 0 | Unrestricted | |
tdLength | int | derived | 1 | 1 | Unrestricted | |
micArrayCoords | float* | parameter | 0 | [6 x 2] | Unrestricted | |
noiseFloorVar | float* | parameter | 0 | [257 x 1] | 0:1 | |
taus | int* | derived | 1 | [15 x 360] | Unrestricted | |
lookDirs | float* | derived | 1 | [1 x 360] | Unrestricted | |
tauMax | int* | derived | 1 | [15 x 1] | Unrestricted | |
tauMin | int* | derived | 1 | [15 x 1] | Unrestricted | |
G | float* | state | 0 | [4097 x 1] | Unrestricted | |
doaValues | float* | state | 0 | [360 x 1] | Unrestricted | |
td | float* | state | 0 | [1 x 15] | Unrestricted | |
tdTmp | float* | state | 0 | [8192 x 1] | Unrestricted | |
ifft_struct_pointer | void * | state | 1 | Unrestricted |
Pins
Input Pins
Name: micIn
Description: Microphone array input - in frequency domain
...
Sample rate range: Unrestricted
Complex support: Real
Output Pins
Name: estDirs
Description: Estimated directions, in degrees
...
Description: Estimated relative energy for each estimated direction
Data type: float
Scratch Pins
Channel count: 1
Block size: 4097
...
Block size: 8192
Sample rate: 48000
MATLAB Usage
File Name: gcc_doa_v1_module.m
...