SOFiA Modal Radial Filters
SOFiA M/F is a modal radial filter core for spherical microphone arrays. M/F can generate filters for different sphere and microphone configurations and involves softlimiting of the mode amplification and free field powerloss compensation.
ARGUMENTS
Input
Name 
Type 
Purpose 
Default 
N 
int 
Maximum filter order to be generated 
 
kr 
float vec or float mtx 
Vector or Matrix of kr values
First Row (M=1) N: kr values Microphone Radius
Second Row (M=2) N: kr values Sphere/Microphone2 Radius
kr_mic; kr_sphere or kr_2 for Rigid/Dual Sphere Configurations.
If only one krvector is given using a Rigid/Dual Sphere Configuration: kr_sphere = kr_mic 
 
ac 
int 
Array configuration
0: Open Sphere with p Transducers (No PLC!)
1: Open Sphere with pGrad Transducers
2: Rigid Sphere with p Transducers
3: Rigid Sphere with pGrad Transducers (Thanx to Nils Peters!)
4: Dual Open Sphere with p Transducers (Thanx to Nils Peters!) 
 
amax_ 
float 
Maximum mode amlification in dB 
 
plc 
int 
Free field powerloss compensation
0: Off
1: Full krspectrum plc
2: Low kr only > set fadeover 
 
fadweover 
int 
Number of kr values to fade over +/ around mindistance gap of powerloss
compensated filter and normal N0 filters. 0 = auto fadeover 
 
Output
Name 
Type 
Purpose 
dn 
complex float mtx 
Frequency domain radial filter 
beam 
complex float vec 
Free field krResponse
Plot it with semilogx(20*log10(abs(beam'))) 
Definitions
The d,,n,, coefficients are defined as:
Where b,,n,, depends on the sphere configuration and microphone type:
AC0 Open sphere with pressure transducers:
AC1 Open sphere with pressure gradient transducers (cardioids):
AC2 Rigid sphere with pressure transducers:
Configurations AC3 and AC4 are contributed and implemented by Nils Peters:
AC3 Rigid sphere with pressure gradient transducers (cardioids):
AC4 Dual open sphere with pressure transducers:
j,,n,,(kr) denotes the spherical bessel function of the first kind, h,,n,,(kr)
the spherical hankel function of the second kind and i=sqrt(1).
When modal amplification limiting is enabled, d,,n,, is defined as:
Powerloss freefield filters:
BASIC RADIAL FILTERS
The plots show basic radial filters (no limiting, no plc) for N=5 and different array configurations (ac): ac=0 Open Sphere with pressure transducers, ac=1 Open Sphere with pressure gradient transducers (cardioid), ac=2 Rigid Sphere with pressure transducers, ac=3 Open Sphere with gradient transducers (cardioid) and ac=4 Dual Open Sphere with pressure transducers.
SOFTLIMITING OF THE MODE AMPLIFICATION
At low kr the modes have to be amplified very hard (see figure above). In real array datasets this required amplification cannot be achieved as the singnal to noise ratio is limited. Strong amplification would raise more noise then useful signal contribution and disturb the array output signal. Therefore the mode amplification has to be limited to reasonable values in real life. This should not be done with hard limits as hard limiting leads to artifacts in the spatial domain. SOFiA M/F therfore uses softknee limitation.
The left figures (a) show hard limiting and the right ones (b) soft limiting. Both filtersets are limited to to +40dB
The following figure shows a real measured array response to a plane wave with basic radial filters in the upper row and SOFiA softlimited radial filters in the bottom row. The response for low kr using basic radial filters is disrupted due to measurement noise. The softlimited response looses directivity (as expected) but keeps stable.
BEAM RESPONSE
The modal amplification limiting has influence on the krresponse (which can be seen as the array's frequency response). The krresponse can be controlled by plotting the return vector beam e.g. with semilogx(20*log10(abs(beam'))).
FREE FIELD PLC
In a free field the krresponse can be aligned using the N0 mode which offers a good signal to noise ratio. This is called plc (powerloss compensation). The plc leads to a perfect onaxis krresponse. The plc compensation can be applied to the full spectrum or be limited to low frequencies only. In the last case M/F will fade the compensated filter to normal N0 filters at their minimum distance.
The figure shows the array's azimutal response to a full krspectrum plane wave coming from 180°C. The response is compensated on axis but other directions have a raised sensitivity to low frequencies. This leads to an overemphasized low frequency response in diffuse fields.
FILE(S):
File 
Type 
OS/Matlab 
sofia_mf.m 
Help header 
All OS 
sofia_mf.mexmaci64 
MEX Core 
OSX Intel 
sofia_mf.mexw32 
MEX Core 
Windows, MATLAB32 
sofia_mf.mexw64 
MEX Core 
Windows, MATLAB64 
sofia_mf.cpp 
C/C++ source 
All OS 
sofia_radial.h 
internal C/C++ header 
All OS 
sofia_radial.cpp 
internal C/C++ header/source 
All OS 
HEADER
/*
[dn, beam] = SOFIA_MF(N, kr, ac, [a_max], [plc], [fadeover])


dn 
Vector of modal 0N frequency domain filters 
beam 
Expected free field OnAxis krresponse 
 
N 
Maximum transform order 
kr 
ector or Matrix of kr values
First Row (M=1) N: kr values Microphone Radius
Second Row (M=2) N: kr values Sphere/Microphone2 Radius
[kr_mic;kr_sphere for Rigid/Dual Sphere Configurations
! If only one krvector is given using a Rigid/Dual Sphere
Configuration: kr_sphere = kr_mic 
ac 
Array Configuration
0 Open Sphere with p Transducers
1 Open Sphere with pGrad Transducers
2 Rigid Sphere with p Transducers
3 Rigid Sphere with pGrad Transducers (Thx to Nils Peters!)
4 Dual Open Sphere with p Transducers (Thx to Nils Peters!) 
a_max 
Maximum modal amplification limit in [dB] 
plc 
OnAxis powerlosscompensation
0 Off
1 Full krspectrum plc
2 Low krr only > set fadeover 
fadeover 
Number of kr values to fade over +/ around mindistance
gap of powerloss compensated filter and normal N0 filters.
0 = auto fadeover 
*/ 

The M/F core involves Bessel and Hankel functions provided by the peerreviewed BOOST C++ Math Library under the BOOST Software License. 