Giter Site home page Giter Site logo

lancejenkinza / rapidalpha Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lancejenkin-uct/rapidalpha

0.0 2.0 0.0 5.33 MB

RapidAlpha is used to measure the sound power absorption coefficient of materials

Python 26.45% Jupyter Notebook 73.55% Shell 0.01%

rapidalpha's Introduction

RapidAlpha

RapidAlpha is an application developed for Lance Jenkin's MSc Thesis, Application of Cepstral Techniques to the Automated Determination of the Sound Power Absorption Coefficient. It is used to measure the sound power absorption coefficient of material samples.

The application can be started from the command line as follows:

python alpha.py

Software Architecture

RapidDelegate is a subclass of BaseDelegate. It is responsible creating a new RapidController - the user interface. It creates a PreferenceDelegate - to set the settings for the program.
It also handles the new measurement, save measurement and load measurement signals.

A new measurement is handled by BaseDelegate. It creates a new Measurement object with using the configuration in the measurement_settings property. The Measurement object create a new AudioIO object using the audio devices in measurement_settings. The AudioIO object handles the playback and recording of the audio signals.
The newMeasurement method of the Measurement object creates a new SignalGenerator object.
This object generates the excitation signal to be used in the measurement, including repeating the signal, and padding the signal with silence. The AudioIO objects plays the signal and captures the response. The Measurement object then locates the synchronization impulse. It then splits the one long recorded response into the individual signal responses.

Once the measurement has completed, it would be saved by calling the saveMeasurement method of the BaseDelegate object. A new MeasurementDB object is created, and the measurement settings and signals are then saved to a measurement database.

loadAbsorptionCoefficeint method of the BaseDelegate object loads the measurement database. The microphone and generator signals and the measurement settings are used to create a new AbsorptionCoefficient. The determineAlpha method the AbsorptionCoefficient object then extracts the signals from the raw responses.
It then averages the responses together. From the averaged signals, the frequency response of the system is determined. The responses are then down sampled.

The resampled signals then used to determine the power cepstra of the microphone and generator.
The impulse response of the material sample is then liftered from the system's power cepstrum, and transformed to the Frequency domain. The absorption coefficient is then determined. Once the absorption coefficient is determined, the RapidController graphs the absorption coefficient using the Grapher object.

All the database files are standard SQLite databases. The config.db is the main configuration database, where default settings can be set. Although there are 3 tables in the config.db database, when a measurement is saved, the three tables are merged into an attributes table in the measurement database.

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.