 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 Wave Generator Core
The W/G/C Wave Generator Core delivers ideal analytical fourier coefficients emulating a full spectrum (0FS/2) wave impact to an array.
ARGUMENTS
Input
Name 
Type 
Purpose 
Default 
N 
int 
Maximum order 
 
r 
float 
Microphone radius in m
Can also be a vector for rigid/dual sphere configurations:
(1,1) => rm Microphone Radius
(2,1) => rs Sphere Radius or Microphone2 Radius
! If only one radius (rm) is given using a Rigid/Dual Sphere Configuration:
rs = rm. In this case only one krvector is returned.

 
ac 
int 
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
4: Dual Open Sphere with p Transducers 
 
FS 
int 
Sampling rate 
 
NFFT 
int 
FFT Order (Number of bins) should be 2^x, x=1,2,3,… 
 
AZ 
float 
Azimuthal angle of the wave (Refer to Coordinate System) 
 
EL 
float 
Elevation angle of the wave (Refer to Coordinate System) 
 
t 
float 
Time delay in s 
0 
c 
float 
Speed of sound in m/s 
343.0 
wavetype 
int 
0: Plane wave, 1: Spherical wave 
0 
ds 
float 
Source distance in m (For wavetype = 1, spherical wave only)
WARNING: If NFFT is smaller than the timer the wavefront needs
to travel from the source to the array, the impulse response will by
cyclically shifted (cyclic convolution) 
1m 
Angles AZ, EL are in RAD
Output
Name 
Type 
Purpose 
fftData 
complexfloat mtx 
Frequency domain data for S/T/C 
kr 
float vec [1xNFFT/2+1]or
float mtx[2xNFFT/2+1] 
krVector (k: wave number, r: radius)
Can also be a matrix krs for rigid sphere configurations:
(1,:) =>krm referring to the Microphone Radius
(2;:) =>krs referring to the Sphere/Microphone2 Radius 
FILE(S):
File 
Type 
OS/Matlab 
sofia_wgc.m 
Help header 
All OS 
sofia_wgc.mexmaci64 
MEX Core 
OSX Intel 
sofia_wgc.mexw32 
MEX Core 
Windows, MATLAB32 
sofia_wgc.mexw64 
MEX Core 
Windows, MATLAB64 
sofia_wgc.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
/*
[Pnm, kr] = sofia_wgc(N, r, ac, FS, NFFT, AZ, EL,...
t, c, wavetype, ds, lSegLim, uSegLim, SeqN)


Pnm 
Spatial Fourier Coefficients
Columns: nm coeff
Rows: FFT bins 
kr

krVector
Can also be a matrix [krm; krs] for rigid sphere configurations:
[1;:] => krm referring to the Microphone Radius
[2;:] => krs referring to the Sphere/Microphone2 Radius

 
N 
Maximum transform order 
r 
Microphone Radius
Can also be a vector for rigid sphere configurations:
[1,1] => rm Microphone Radius
[2,1] => rs Sphere Radius (Scatterer)

q_grid

Quadrature grid [default LEB110]
Columns: Position Number 1...M
Rows: [AZ EL Weight]
Angles AZ, EL in [RAD]

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!)

FS 
Sampling Frequency 
NFFT 
FFT Order (Number of bins) shhould be 2^x, x=1,2,3,... 
AZ 
Azimuth angle in [DEG] 02pi 
EL 
Elevation angle in [DEG] 0pi 
c 
Speed of sound in [m/s] (Default: 343m/s) 
t 
Time Delay in s 
wavetype 
Type pf the Wave. 0: Plane wave (default); 1: Spherical Wave 
ds 
Distance of the source in [m] (For wavetype = 1 only)
Warning: If NFFT is smaller than the time the wavefront
needs to travel from the source to the array, the impulse
response will by cyclically shifted (cyclic convolution). 
lSegLim 
(Lower Segment Limit) Used by the S/W/G wrapper 
uSegLim 
(Upper Segment Limit) Used by the S/W/G wrapper 
SegN 
(Segment Order) Used by the S/W/G wrapper 
*/ 

