The function mergeArrayData() merges array measurement data to structs that can be read by the SOFiA F/D/T frequency domain transform. The mergeArrayData() function allows to downsample and normalize the impulse responses.
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.
/* timeData = sofia_mergeArrayData(impulseResponses, FS, temperature,...
[downsample], [normalized])
------------------------------------------------------------------------------------
|
timeData |
Struct with fileds:
.impulseResponses
.FS
.downSample
.averageAirTemp
.irOverlay
|
[N:Channes M:Samples]
Temperature in DEG
Plot this for a good total
overview if the dataset
|
------------------------------------------------------------------------------------ |
impulseResponse |
Impulse response data [M:Channels N:Samples]
!The audio data must be in in columns as it is
usual in MATLAB. But SOFiA works on audio data
in rows as it is usual in audio editors etc.
Therefore the output IR matrix is flipped over. |
FS
|
Sampling frequency of the source material in 1/s
|
radius
|
Array sphere radius in meters
|
temperature
|
Average air temperature during the capture This is important for F/D/T to calculate the
kr-vector. (This value is simply passed thru).
|
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 response with respect to the
absolute maximum value within the complete dataset.
|
directory
|
VSA dataset directory. If not definded a user dialog
opens to pick a directory
|
*/ |
|