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.
*/
|