Download
Welcome to SOFiA
Who is behind SOFiA
Feature overview
System overview
Function reference
readVSAdata
mergeArrayData
F/D/T
gauss
lebedev
S/W/G
S/T/C
W/G/C
S/F/E
M/F
R/F/I
P/D/C
I/T/C
makeMTX
makeIR
visual3D
Coordinate System
Application Examples
Example 1
Example 2
Example 3
Example 4
Example 5
Example 6
Example 7
Example 8
Array Datasets
VariSphear system
Groups and Mailinglists
Contact and Support
How to Reference

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 soft-limiting 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 kr-vector 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 kr-spectrum plc
2: Low kr only -> set fadeover
-
fadweover int Number of kr values to fade over +/- around min-distance 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 kr-Response
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 free-field 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.

SOFT-LIMITING 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 soft-knee 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 soft-limited radial filters in the bottom row. The response for low kr using basic radial filters is disrupted due to measurement noise. The soft-limited response looses directivity (as expected) but keeps stable.


BEAM RESPONSE

The modal amplification limiting has influence on the kr-response (which can be seen as the array's frequency response). The kr-response 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 kr-response 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 on-axis kr-response. 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 kr-spectrum 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 over-emphasized low frequency response in diffuse fields.

FILE(S):

File Type OS/Matlab
sofia_mf.m Help header All OS
sofia_mf.mexmaci64 MEX Core OS-X 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 0-N frequency domain filters
beam Expected free field On-Axis kr-response
------------------------------------------------------------------------------------
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 kr-vector 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 powerloss-compensation
0 Off
1 Full kr-spectrum plc
2 Low krr only -> set fadeover
fadeover Number of kr values to fade over +/- around min-distance
gap of powerloss compensated filter and normal N0 filters.
0 = auto fadeover
*/

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