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

VariSphear dataset import

The function `readVSAdata()` imports array data from a VariSphear system. The function parses the VariSphear data to structs that can be read by the SOFiA F/D/T frequency domain transform.
The `readVSAdata()` function allows to downsample and normalize the impulse responses. It calculates the average air temperature and delivers the quadrature grid positions and weights. If no directory is given a user dialog will open to pick a directory.



ARGUMENTS

Input

Name Type Purpose Default
downSample int Downsample Factor 1
normalize int Normalization Flag 1:on 0:off 1
directory string VSA Session Directory uigetdir()

Output

Name Type Purpose Default
timeDataCH1 struct Time domain Data for CH1 -
timeDataCH2 struct Time domain Data for CH2 -

 

The structs contain the following fields:

Field Type Purpose
.impulseResponses float mtx Impulse Response Data N:Channels, M:Samples
.FS int Sampling Frequency
.quadratureGrid float mtx Quadrature Grid Data AZ1 EL1 W1; …; AZn ELn Wn
.metaData cell array VSD structs from VariSphear session
.downSample int Downsampling Factor (from Input)
.averageAirTemp float Average air temperature of the session (default 20°C if not captured)
.irOverlay float vector Overlay of all impulse responses (PLOT)

 

The content of `timeDataCH1` and `timeDataCH1` depends on the VariSphear session type:

Session Type Microphones timeDataCH1 timeDataCH2
Single Sphere 1 full dataset empty
Half Sphere 2 full dataset empty
Dual Sphere 2 Radius 1 dataset (CH1) Radius 2 dataset (CH2)


SOME DETAILS

The downsampling is done using DECIMATE and a FIR low pass filter of order 30. See MATLAB documentation for more information.
(MATLAB Signal Processing Library required for downsampling.)

The normalization is done with respect to the highest overall value found in the complete session.

 

FILE(S):

File Type OS/Matlab
sofia_readVSAdata.m Help header, Fuction All OS

 

HEADER

/*

[timeDataCH1, timeDataCH2] = readVSA_data([downSample], [normalize], [directory])

---------------------------------------------------------------------------------

timeData    Struct with fields:

         .impulseResponses  [Channels x Samples]

         .FS   

         .quadratureGrid   [AZ1 EL1 W1; ...; AZn ELn Wn]

         .metaData       Cell Array; VSA Metadata

         .downSample

         .averageAirTemp   Temperature in °C

         .irOverlay      Plot this for a good total

                     overview of the dataset.

----------------------------------------------------------------------------------

downSample   Downsampling factor [default = 1: No downsampling]

         Downsampling is done using DECIMATE and a FIR low

         pass filter of order 30. See MATLAB documentation

         for more information.

         !!! MATLAB Signal Processing Library required



normalize    Normalize flag 1:on; 0:off    [default = 1: on]

         Normalizes the impulse responses with respect to the

         absolute maximum value within the complete dataset.



directory    VSA dataset directory. If not defined a user dialog

         opens to pick a directory.

*/