SAF
|
A spatially-localised active-intensity (SLAI) based direction-of- arrival estimator (SLDoA) More...
Go to the source code of this file.
Data Structures | |
struct | sldoa_data |
Main struct for sldoa. More... | |
Macros | |
#define | SLDOA_FRAME_SIZE ( 512 ) |
Framesize, in time-domain samples. | |
#define | ORDER2NUMSECTORS(L) ( L*L ) |
Macro to convert SH order to number of sectors. | |
#define | HOP_SIZE ( 128 ) |
STFT hop size. | |
#define | HYBRID_BANDS ( HOP_SIZE + 5 ) |
hybrid mode incurs an additional 5 bands | |
#define | TIME_SLOTS ( SLDOA_FRAME_SIZE / HOP_SIZE ) |
Processing relies on fdHop = 16. | |
#define | MAX_NUM_SECTORS ( 64 ) |
maximum number of sectors, TODO: expand beyond 64 (which is the max possible in the spherecovering grids we currently use) | |
#define | NUM_DISP_SLOTS ( 2 ) |
Number of display slots; needs to be at least 2. | |
Functions | |
void | sldoa_setCodecStatus (void *const hSld, CODEC_STATUS newStatus) |
Sets codec status (see CODEC_STATUS enum) | |
void | sldoa_initAna (void *const hSld) |
Intialises the codec variables, based on current global/user parameters. | |
void | sldoa_initTFT (void *const hSld) |
Initialise the filterbank used by sldoa. | |
void | sldoa_estimateDoA (float_complex **SHframeTF, int anaOrder, float_complex *secCoeffs, float doa[MAX_NUM_SECTORS][TIME_SLOTS][2], float energy[MAX_NUM_SECTORS][TIME_SLOTS]) |
Estimates the DoA using the active intensity vectors derived from spatially localised sectors, as in [1,2]. | |
A spatially-localised active-intensity (SLAI) based direction-of- arrival estimator (SLDoA)
VBAP gain patterns are imposed on the spherical harmonic signals, such that the DoA can be estimated in a spatially-constrained region; thus mitigating the effect of interferes and reflections arriving from other directions. The DoA is estimated per sector for each frequency band.
The algorithms within sldoa were developed in collaboration with Symeon Delikaris-Manias and Angelo Farina, and are explained in more detail in [1,2]
Definition in file sldoa_internal.h.
#define HOP_SIZE ( 128 ) |
STFT hop size.
Definition at line 69 of file sldoa_internal.h.
#define HYBRID_BANDS ( HOP_SIZE + 5 ) |
hybrid mode incurs an additional 5 bands
Definition at line 70 of file sldoa_internal.h.
#define MAX_NUM_SECTORS ( 64 ) |
maximum number of sectors, TODO: expand beyond 64 (which is the max possible in the spherecovering grids we currently use)
Definition at line 72 of file sldoa_internal.h.
#define NUM_DISP_SLOTS ( 2 ) |
Number of display slots; needs to be at least 2.
On slower systems that skip frames, consider adding more slots.
Definition at line 73 of file sldoa_internal.h.
#define ORDER2NUMSECTORS | ( | L | ) | ( L*L ) |
Macro to convert SH order to number of sectors.
Definition at line 68 of file sldoa_internal.h.
#define SLDOA_FRAME_SIZE ( 512 ) |
Framesize, in time-domain samples.
Definition at line 65 of file sldoa_internal.h.
#define TIME_SLOTS ( SLDOA_FRAME_SIZE / HOP_SIZE ) |
Processing relies on fdHop = 16.
Definition at line 71 of file sldoa_internal.h.
void sldoa_estimateDoA | ( | float_complex ** | SHframeTF, |
int | anaOrder, | ||
float_complex * | secCoeffs, | ||
float | doa[MAX_NUM_SECTORS][TIME_SLOTS][2], | ||
float | energy[MAX_NUM_SECTORS][TIME_SLOTS] ) |
Estimates the DoA using the active intensity vectors derived from spatially localised sectors, as in [1,2].
[in] | SHframeTF | Input SH frame; MAX_NUM_SH_SIGNALS x TIME_SLOTS |
[in] | anaOrder | Analysis order (1:AI, 2+: SLAI) |
[in] | secCoeffs | Sector coefficients for this order |
[out] | doa | Resulting DoA estimates per timeslot and sector |
[out] | energy | Resulting sector energies per time slot |
Definition at line 145 of file sldoa_internal.c.
void sldoa_initAna | ( | void *const | hSld | ) |
Intialises the codec variables, based on current global/user parameters.
The formulae for calculating the sector coefficients can be found in [1,2].
Definition at line 60 of file sldoa_internal.c.
void sldoa_initTFT | ( | void *const | hSld | ) |
Initialise the filterbank used by sldoa.
Input Arguments: hSld - sldoa handle
Definition at line 127 of file sldoa_internal.c.
void sldoa_setCodecStatus | ( | void *const | hSld, |
CODEC_STATUS | newStatus ) |
Sets codec status (see CODEC_STATUS enum)
Definition at line 49 of file sldoa_internal.c.