SAF
|
Spatially encodes spherical microphone array signals into spherical harmonic signals (aka: Ambisonic signals) utilising theoretical encoding filters. More...
Go to the source code of this file.
Data Structures | |
struct | array2sh_arrayPars |
Contains variables for describing the microphone/hydrophone array. More... | |
struct | array2sh_data |
Main structure for array2sh. More... | |
Macros | |
#define | ARRAY2SH_FRAME_SIZE ( 128 ) |
Framesize, in time-domain samples. | |
#define | HOP_SIZE ( 128 ) |
STFT hop size. | |
#define | HYBRID_BANDS ( HOP_SIZE + 5 ) |
Number of frequency bands. | |
#define | TIME_SLOTS ( ARRAY2SH_FRAME_SIZE / HOP_SIZE ) |
Number of STFT timeslots. | |
#define | MAX_NUM_SENSORS ( ARRAY2SH_MAX_NUM_SENSORS ) |
Maximum permitted number of inputs/sensors. | |
#define | MAX_EVAL_FREQ_HZ ( 20e3f ) |
Up to which frequency should the evaluation be accurate. | |
#define | MAX_NUM_SENSORS_IN_PRESET ( MAX_NUM_SENSORS ) |
Maximum permitted number of inputs/sensors. | |
Functions | |
void | array2sh_initTFT (void *const hA2sh) |
Initialise the filterbank used by array2sh. | |
void | array2sh_calculate_sht_matrix (void *const hA2sh) |
Computes the spherical harmonic transform (SHT) matrix, to spatially encode input microphone/hydrophone signals into spherical harmonic signals. | |
void | array2sh_apply_diff_EQ (void *const hA2sh) |
Applies diffuse-field equalisation at frequencies above the spatial aliasing limit. | |
void | array2sh_calculate_mag_curves (void *const hA2sh) |
Computes the magnitude responses of the equalisation filters; the absolute values of the regularised inversed modal coefficients. | |
void | array2sh_evaluateSHTfilters (void *hA2sh) |
Evaluates the spherical harmonic transform performance with the currently configured microphone/hydrophone array. | |
void | array2sh_createArray (void **const hPars) |
Creates an instance of a struct, which contains the array configuration data. | |
void | array2sh_destroyArray (void **const hPars) |
Destroys an instance of a struct, which contains the array configuration data. | |
void | array2sh_initArray (void *const hPars, ARRAY2SH_MICROPHONE_ARRAY_PRESETS preset, int *arrayOrder, int firstInitFLAG) |
Intialises an instance of a struct based on a preset, which contains the array configuration data. | |
Spatially encodes spherical microphone array signals into spherical harmonic signals (aka: Ambisonic signals) utilising theoretical encoding filters.
The algorithms within array2sh were pieced together and developed in collaboration with Symeon Delikaris-Manias and Angelo Farina. A detailed explanation of the algorithms within array2sh can be found in [1]. Also included, is a diffuse-field equalisation option for frequencies past aliasing, developed in collaboration with Archontis Politis, 8.02.2019
Definition in file array2sh_internal.h.
#define ARRAY2SH_FRAME_SIZE ( 128 ) |
Framesize, in time-domain samples.
Definition at line 69 of file array2sh_internal.h.
#define HOP_SIZE ( 128 ) |
STFT hop size.
Definition at line 72 of file array2sh_internal.h.
#define HYBRID_BANDS ( HOP_SIZE + 5 ) |
Number of frequency bands.
Definition at line 73 of file array2sh_internal.h.
#define MAX_EVAL_FREQ_HZ ( 20e3f ) |
Up to which frequency should the evaluation be accurate.
Definition at line 76 of file array2sh_internal.h.
#define MAX_NUM_SENSORS ( ARRAY2SH_MAX_NUM_SENSORS ) |
Maximum permitted number of inputs/sensors.
Definition at line 75 of file array2sh_internal.h.
#define MAX_NUM_SENSORS_IN_PRESET ( MAX_NUM_SENSORS ) |
Maximum permitted number of inputs/sensors.
Definition at line 77 of file array2sh_internal.h.
#define TIME_SLOTS ( ARRAY2SH_FRAME_SIZE / HOP_SIZE ) |
Number of STFT timeslots.
Definition at line 74 of file array2sh_internal.h.
void array2sh_apply_diff_EQ | ( | void *const | hA2sh | ) |
Applies diffuse-field equalisation at frequencies above the spatial aliasing limit.
Definition at line 380 of file array2sh_internal.c.
void array2sh_calculate_mag_curves | ( | void *const | hA2sh | ) |
Computes the magnitude responses of the equalisation filters; the absolute values of the regularised inversed modal coefficients.
Definition at line 496 of file array2sh_internal.c.
void array2sh_calculate_sht_matrix | ( | void *const | hA2sh | ) |
Computes the spherical harmonic transform (SHT) matrix, to spatially encode input microphone/hydrophone signals into spherical harmonic signals.
Definition at line 95 of file array2sh_internal.c.
void array2sh_createArray | ( | void **const | hPars | ) |
Creates an instance of a struct, which contains the array configuration data.
[in] | hPars | (&) array configuration handle |
Definition at line 606 of file array2sh_internal.c.
void array2sh_destroyArray | ( | void **const | hPars | ) |
Destroys an instance of a struct, which contains the array configuration data.
[in] | hPars | (&) array configuration handle |
Definition at line 612 of file array2sh_internal.c.
void array2sh_evaluateSHTfilters | ( | void * | hA2sh | ) |
Evaluates the spherical harmonic transform performance with the currently configured microphone/hydrophone array.
Definition at line 509 of file array2sh_internal.c.
void array2sh_initArray | ( | void *const | hPars, |
ARRAY2SH_MICROPHONE_ARRAY_PRESETS | preset, | ||
int * | arrayOrder, | ||
int | firstInitFLAG ) |
Intialises an instance of a struct based on a preset, which contains the array configuration data.
[in] | hPars | (&) array configuration handle |
[in] | preset | Array preset (see ARRAY2SH_MICROPHONE_ARRAY_PRESETS enum) |
[in] | arrayOrder | (&) maximum encoding order of the current preset |
[in] | firstInitFLAG | '1' this is the first time function is being called |
Definition at line 621 of file array2sh_internal.c.
void array2sh_initTFT | ( | void *const | hA2sh | ) |
Initialise the filterbank used by array2sh.
Definition at line 74 of file array2sh_internal.c.