Giter Site home page Giter Site logo

psztoolbox's Introduction

PSZ-toolbox

MATLAB toolbox to evaluate the performance of Personal Sound Zones (PSZ) systems. The use of the toolbox is exemplified with different examples included in the examples folder. In particular, the toolbox allows to evaluate the performance of the filters computed with the different formulations of the weighted Pressure Matching (wPM) algorithm proposed in:

  • Chang, J.-H., & Jacobsen, F. (2013). Experimental validation of sound field control with a circular double-layer array of loudspeakers. The Journal of the Acoustical Society of America, 133, 2046. https://doi.org/10.1121/1.4792486
  • Simon Galvez, M. F., Elliott, S. J., & Cheer, J. (2015). Time Domain Optimization of Filters Used in a Loudspeaker Array for Personal Audio. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 23(11), 1869–1878. https://doi.org/10.1109/TASLP.2015.2456428
  • Molés-Cases, V., Piñero, G., De Diego, M., & Gonzalez, A. (2020). Personal Sound Zones by Subband Filtering and Time Domain Optimization. IEEE/ACM Transactions on Audio Speech and Language Processing, 28, 2684–2696. https://doi.org/10.1109/TASLP.2020.3023628

Also, the toolbox includes an implementation of the superfast solver for Least Squares (LS) problems proposed in:

  • Poletti, M. A., & Teal, P. (2021). A Superfast Toeplitz Matrix Inversion Method for Single- and Multi-Channel Inverse Filters and its Application to Room Equalization. IEEE/ACM Transactions on Audio Speech and Language Processing, 29, 3144–3157. https://doi.org/10.1109/TASLP.2021.3120650

Moreover, the toolbox includes the polyphase implementation for Generalized Discrete Fourtier Transform (GDFT) filter banks proposed in:

  • Harteneck, M., Weiss, S., & Stewart, R. W. (1999). Design of near perfect reconstruction oversampled filter banks for subband adaptive filters. IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, 46(8), 1081–1085. https://doi.org/10.1109/82.782056

This toolbox has been used to obtain the results included in:

  • Molés-Cases, V., Piñero, G., & Gonzalez, A. (2022). On the Performance of Personal Sound Zones Systems with Subband Filtering. Submitted to IEEE/ACM Transactions on Audio Speech and Language Processing.

Folders

The toolbox is organized in the following folders:

  • algorithms: source files required to compute the filters of the PSZ system.
  • examples: scripts to exemplify the use of the toolbox.
  • filterbank: source files related with filter banks.
  • mex: source files for the MEX functions.
  • rir: folder where the Room Impulse Responses (RIR) of the system are stored.
  • utilities: source files with different utilities for the toolbox.

Room Impulse Responses

The Room Impulse Responses (RIR) of the system must be stored in a .mat file within the rir folder. The .mat file must contain an structure called RIR with the following fields:

  • RIR.h_ctrl: Array of size Ih x L x M with the RIRs between the L loudspeakers and the M control points.
  • RIR.h_val: Array of size Ih x L x M, with the RIRs between the L loudspeakers and the M validation points.
  • RIR.fs: Sampling frequency of the RIR.

An example of such an structure is inclunded in rir/2021_6_30_13_12_27/RIR.mat.

MEX functions

All the functionalities of the toolbox are implemented with MATLAB, however, some functionalities are also implemented with C language and ran from MATLAB using MEX functions to speed up the simulations. To use the MEX implementation set mexFlag = true;. To build the MEX functions you must have installed one of the C compilers supported by MATLAB. The provided MEX files use the BLAS and LAPACK routines of the Intel(R) Math Kernel Library, which are provided by MATLAB, and the external FFTW library.

Setup FFTW for Microsoft Windows

The toolbox includes all the required files of the FFTW v.3.3.5 library for platforms using Microsoft Windows x64. These files have been obtained by downloading a pre-compiled version of the library from http://www.fftw.org/install/windows.html, and by following the steps in the previous link to create the import libraries with the Library Manager of Microsoft Visual Studio.

Setup FFTW for Mac OS X

Download and install MacPorts from: https://www.macports.org/install.php. Open the terminal and type sudo port install fftw-3 to install FFTW. To build the MEX functions, modify the file mex/buildmex.m such that

  • Variable FFTWpath contains the path to the installed FFTW library (usually '/opt/local/lib/').
  • Variable FFTWheader contains the path to the header files of the library (usually '/opt/local/include/').
  • Variable FFTWlibfile contains the name of the .a file for the library.

psztoolbox's People

Contributors

vicentmolescases avatar

Stargazers

 avatar  avatar  avatar LGT avatar  avatar  avatar

Forkers

woqiang0515 lszcy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.