Spatial Impulse Responses

Links:

Octave

Octave Forge

Mathworks

Signals and Systems Group at Uppsala University, Sweden

Menu:


Disclaimer

The DREAM toolbox is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY. More specifically:

THE PROGRAM IS PROVIDED ``AS-IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL ANY OF THE AUTHORS OF THE DREAM TOOLBOX AND/OR THE DEPARTMENT OF ENGINEERING SCIENCES AT UPPSALA UNIVERSITY, SWEDEN, OR THE INSTITUT D'ELECTRONIQUE ET DE MICRU-ELECTRONIQUE DU NORD (IEMN-DOAE-UMR CNRS 9929), ECOLE CENTRALE DE LILLE, FRANCE, BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER OR NOT THE AUTHORS OF THE DREAM TOOLBOX HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, AND/OR ON ANY THEORY OF LIABILITY ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


System Requirements

[1] The attenuation code in DREAM makes heavily use of FFTs. If the optimized FFTW is installed then DREAM can be configured to use this lib. Also, the fftconv_p and sum_fftconv_p functions need the FFTW3 library. A Windows version of this library can be found at:

http://www.fftw.org/install/windows.html

(see also Libraries for Windows below).

[2] If you want to use the parallel (threaded) DREAM functions in Windows you need to install the Pthreads-Win32 library. Download the library from:

http://sourceware.org/pthreads-win32/

The pre-build Windows Matlab mex-files are build with the MinGW gcc compiler and linked to pthreadGC2.dll so the pthreadGC2.dll file must be in a directory where Matlab can find it. If you use Octave on Windows see the instructions in the download section below (see also Libraries for Windows below).


Download

Development Code

The development code is available at a subversion repository at SourceForge.net. To download the code you first need to install a subversion (svn) client. There exist both command line clients and various GUI svn clients. To checkout using a command line client do a:

# svn co http://svn.code.sf.net/p/dreamtoolbox/code/trunk dream

See also the DREAM Toolbox SourceForge site.

Recomended GUI clients:

Version 2.1.3

BINARIES
CPU Matlab Windows Matlab Linux Octave
x86-32 x86-32 x86-32 pkg src [3]
x86-64 x86-64 [5] x86-64 pkg src [3,4]

Full source code for 2.1.3.

Version 2.1.0

BINARIES
CPU Matlab MacOS X
x86-32 -
x86-64 Intel mac

[3] Since the oct-API often changes between releases of Octave the binaries will probably only work for the version of Octave that they were compiled for. For this reason binaries for Octave are no longer available and you need to install the toolbox from source.

There are two source packages available for Octave, the full source package and the source package for the Octave package manager (pkg). The full source package includes: Matlab sources, Octave sources, documentation sources, example code etc. The package source only contains the Octave specific source and is adapted for use with the Octave package manager which is available in Octave 2.9.7 and above. Install with:

octave:1> pkg install dream-2.1.3.tar.gz

For building using the full sources see the instructions in the DREAM user manual.

[4] This is not tested on 64-bit windows. You also need to build Octave from sources since there is currently no Windows 64-bit Octave binaries available.

[5] The 64-bit DREAM binaries for Matlab has been compiled with the MSVC 2008 Express Edition SP1 compiler. To use these binaries you need the Microsoft Visual Studio 2008 SP1 run-time libraries. You also need to install the 64-bit fftw and Pthread-win32 libraries which can be found below.


Libraries for Windows

As discussed in the Download Section above one needs some files from the FFTW and Pthread-Win32 projects to run the DREAM Toolbox on Windows. These files can be found on the respective project's home page. To facilitate installation we have also build 32-bit (and 64-bit) versions of these libraries and the needed files can be found below:

Libraries for 64-bit Windows

The DREAM source code package contains the sources for fftw and Pthread-win32, patches, and scripts, to build these libs using the MinGW-w64 cross-compiler toolchain on Linux (see Appendix A and B in the user manual).

A Note on Parallel Processing and BLAS/LAPACK Setup

The matrices used to store the impulse responses computed by DREAM often becomes relatively large, such as when high resolution wave field snapshots are computed or when high resolution imaging is performed, for example. Modern computers often has more than one core/CPU which significantly can speed up computations in such cases. It is also not uncommon that a 64-bit machine is needed to solve such problems.

Both Matlab and Octave performs matrix operations using the Basic Linear Algebra Subroutines (BLAS) and LAPACK numerical libraries. It is highly recommended to used a tuned linear algebra library, such as K. Goto's BLAS library or ATLAS library, for example. These libraries often have thread support so that all CPUs on the computer can be utilized (resent versions of Matlab have a build-in threaded BLAS).

Furthermore, Octave can be build with 64-bit support using the --enable-64 flag when running the configure script. Note that both BLAS and LAPACK must be then be compiled with 8 byte integers.


18.01.2012