{"id":16575558,"url":"https://github.com/jmrplens/a-lab","last_synced_at":"2025-03-21T12:31:52.815Z","repository":{"id":152919626,"uuid":"305625507","full_name":"jmrplens/A-Lab","owner":"jmrplens","description":"Matlab-based software for measuring acoustic parameters and experiments.","archived":false,"fork":false,"pushed_at":"2023-04-10T22:06:12.000Z","size":76604,"stargazers_count":26,"open_issues_count":3,"forks_count":8,"subscribers_count":6,"default_branch":"source","last_synced_at":"2024-10-12T21:48:17.899Z","etag":null,"topics":["acoustics","anechoic","impedance-tube","impulse-response","matlab","measurements","transmission-tube"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmrplens.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"jmrplens","patreon":null,"open_collective":null,"ko_fi":"jmrplens","tidelift":null,"community_bridge":null,"liberapay":"jmrplens","issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-10-20T07:29:52.000Z","updated_at":"2024-08-18T16:48:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"4ce6aa75-a6fd-4951-8ace-05c99f1d6c5e","html_url":"https://github.com/jmrplens/A-Lab","commit_stats":{"total_commits":191,"total_committers":2,"mean_commits":95.5,"dds":"0.47643979057591623","last_synced_commit":"7c3b4b6dbef8d80cdb7fd94a6ab1f2ab8445d738"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmrplens%2FA-Lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmrplens%2FA-Lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmrplens%2FA-Lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmrplens%2FA-Lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmrplens","download_url":"https://codeload.github.com/jmrplens/A-Lab/tar.gz/refs/heads/source","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221815185,"owners_count":16885136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acoustics","anechoic","impedance-tube","impulse-response","matlab","measurements","transmission-tube"],"created_at":"2024-10-11T21:48:26.327Z","updated_at":"2024-10-28T10:08:32.893Z","avatar_url":"https://github.com/jmrplens.png","language":"MATLAB","funding_links":["https://github.com/sponsors/jmrplens","https://ko-fi.com/jmrplens","https://liberapay.com/jmrplens","https://www.paypal.com/donate?hosted_button_id=BLP3R6VGYJB4Q"],"categories":[],"sub_categories":[],"readme":"[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate?hosted_button_id=BLP3R6VGYJB4Q) \n[![Donate](https://img.shields.io/badge/Donate-Ko--fi-brightgreen?color=ff5f5f)](https://ko-fi.com/jmrplens) \n[![Sponsor](https://img.shields.io/badge/Sponsor-GitHub-brightgreen?color=ea4aaa)](https://github.com/sponsors/jmrplens) \n\n[![View A|Lab on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://www.mathworks.com/matlabcentral/fileexchange/93180-a-lab)\n\n#### GitHub and code info\n\n[![Lines of code](https://img.shields.io/tokei/lines/github/jmrplens/A-Lab?label=Lines%20of%20code\u0026style=plastic)](https://github.com/jmrplens/A-Lab/graphs/code-frequency)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/jmrplens/A-Lab)](https://github.com/jmrplens/A-Lab/releases)\n[![GitHub](https://img.shields.io/github/license/jmrplens/A-Lab)](https://github.com/jmrplens/A-Lab/blob/9708e9ecb9b033e2b26cbf3849685fe69a16ad9f/LICENSE)\n![GitHub top language](https://img.shields.io/github/languages/top/jmrplens/A-Lab)\n[![GitHub issues](https://img.shields.io/github/issues/jmrplens/A-Lab)](https://github.com/jmrplens/A-Lab/issues)\n[![GitHub Repo stars](https://img.shields.io/github/stars/jmrplens/A-Lab?style=social)](https://github.com/jmrplens/A-Lab/stargazers)\n\n# A|Lab\nMatlab-based software for measuring acoustic parameters and experiments (**A**coustic **Lab**oratory).\n\nThis software is made up of different types of measurement (impedance tube, transmission tube, general, etc.) and expansion modules for different specific projects. The software is under development and will be adding more measure methods.\n\n**If you find any bug in the interface or in the calculations, please inform and I will fix it as soon as possible. To feature requests or bug reports go to [Issues](https://github.com/jmrplens/A-Lab/issues).**\n\nThe software has been made with the collaboration of the [Waves in Complex Media group](https://igic.webs.upv.es/index.php?option=com_content\u0026view=article\u0026id=22)  located in the [Higher Polytechnic School of Gandia](https://www.upv.es/contenidos/CGANDIA/index-en.html) which is part of the [Polytechnic University of Valencia](https://www.upv.es/index-en.html), mainly giving access to equipment and instrumentation and data to be able to validate the results.\n\n## The heart of the app\nThe software uses the MATLAB audio libraries, specifically, to transmit and receive simultaneously, the MATLAB \u003ca href=\"https://www.mathworks.com/help/audio/ref/audioplayerrecorder-system-object.html\"\u003eaudioPlayerRecorder\u003c/a\u003e object is used.\n\nIn order to make use of the \u003ca href=\"https://www.mathworks.com/help/audio/ref/audioplayerrecorder-system-object.html\"\u003eaudioPlayerRecorder\u003c/a\u003e object, it is necessary to have a sound card that supports 'Full-Duplex'. All external audio cards have 'Full-Duplex', but the audio cards integrated in computers, especially laptops, do not usually have support for this object. A|Lab will notify you with a window if your hardware is not compatible (image below), if you have several sound cards and one that is valid, enter the configuration and select it.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/noFullDuplex.png\" width=\"40%\"\u003e\u003c/img\u003e \n\u003c/p\u003e\n\nIf you are only opening a previous project, you can ignore the warning.\n\n## Examples\n\nThe software allows you to save the entire measurement project to be able to open it again at any time and view or export the results. To be able to test the software quickly, some examples of impedance tube and transmission tube measurements have been included, open them from the top menu `File-\u003eLoad project`.\n\n# Table of contents\n\n---\n- [General](#general)\n  - [Open the software](#open-and-use)\n  - [Device setup and calibration](#device-setup-and-calibration)\n  - [Signal panel](#signal-panel)\n  - [Information panel](#information-panel)\n- [Methods](#methods)\n  - [General](#general-1)\n  - [Impedance Tube \\(ISO 10534-2\\)](#impedance-tube-iso-10534-2)\n  - [Transmission Tube \\(ASTM 2611\\)](#transmission-tube-astm-2611)\n  - [Robot measurement \\(Polytechnic University of Valencia\\)](#robot-measurement-upv)\n- [Standards and theory](#standards-and-theory)\n- [Supports](#supports)\n- [Author](#author)\n---\n\n\u003ca id=\"general\"\u003e\u003c/a\u003e\n# General\n\n\u003ca id=\"open-and-use\"\u003e\u003c/a\u003e\n## Open the software\n\nTo open the software you have two options:\n\n- **Source code**: download the source code and run the ALab.mlapp file with MATLAB.\n\n- **Installable package**: to install the software within matlab download the package from [here](https://github.com/jmrplens/A-Lab/releases).\n\n\u003ca id=\"device-setup-and-calibration\"\u003e\u003c/a\u003e\n## Device setup and calibration\n\nIn this panel you can configure the parameters of the audio device and calibrate the system latency (useful for correcting delays in the impulse response). Also, if you have a microphone calibrator, you can calibrate each input channel.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/devicepanelc.png\" width=\"70%\"\u003e\u003c/img\u003e \n\u003c/p\u003e\n\nOptions:\n  - **Harware configuration**: Sample rate, Samples per Frame, Device driver, Audio device and Bit depth.\n  - **Calibrate latency**: Selects the input and output channel and calibrates automatically.\n  - **Calibrate inputs**: Select calibrator signal level, input channel and run calibration.\n  - **Air parameters**: Sound speed and air density.\n\n\u003ca id=\"calibrate-latency\"\u003e\u003c/a\u003e\n### Calibrate latency\n\nAll systems have an internal latency from the moment the signal is emitted until it is received. With this calibration, the latency of the system is obtained and the correction is applied in all measurements, the delay added by the system in the received signal is eliminated.\n\nTo calibrate the latency you must connect a cable directly from an output of the sound card to an input. Once connected, choose the channels where the cable is connected and press `Calibrate latency`. The software will make 5 measurements to calculate the latency of the system.\n\n```matlab\n% Latency calculation\ninCalibration;  % Input signal from latency calibration measure\noutCalibration; % Output signal from latency calibration measure\n\n[cross,time] = xcorr(inCalibration,outCalibration);\n[~,Midx]     = max(abs(cross)); % Find peak\nLatency      = time(Midx)/fs;   % Latency time value in seconds\n```\n\n```matlab\n% Latency correction\nLatency;     % Latency time in seconds\nsigReceived; % Signal received in a measurement from general method, impedance tube, ...\n\nDelaySamples = floor(Latency*SampleRate);\nsigReceived = [sigReceived(DelaySamples+1:end);zeros(DelaySamples,1)];\n```\n\n\u003ca id=\"calibrate-inputs\"\u003e\u003c/a\u003e\n### Calibrate inputs\n\nTo obtain the correct level in the measurements calculations, it is necessary to obtain a factor that applies a dimension to the input signal. This is the calibration factor and it is obtained from a source that has a known acoustic pressure. Usually a calibrator emits 94dB but if you have another type of calibrator you can indicate the reference level.\n\nYou must place the calibrator on the microphone you want to calibrate and click on `Calibrate channel N`, the calibration factor will automatically be calculated. This calibration factor is automatically applied to all measured signals.\n\n```matlab\n% Calculate calibration factor\nLcal;   % Calibrator reference value in dB (Typical: 94)\nsigCal; % Measured signal with calibrator placed on the microphone\n\nPcal = 10^(Lcal/20) * 2e-5;                 % Calibration reference in Pa\nXrms = sqrt(sum(sigCal.^2)/length(sigCal)); % = rms(sigCal)\nK = Xrms / Pcal;                            % Calibration factor\n```\n\n```matlab\n% Apply calibration factor to a measured signal\nK;            % Calibration factor\nsigReceived;  % Signal received in a measurement from general method, impedance tube, ...\n\nsigReceived = sigReceived ./  K; % Calibrated signal\n```\n\n\n\u003ca id=\"signal-panel\"\u003e\u003c/a\u003e\n## Signal panel\nThe signal selection panel appears in all types of measurements. \n\n\u003cimg width=\"225\" src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/sweepPanel.png\"\u003e\u003c/img\u003e\n\nThe available signals depend on the chosen measurement method. The following signals are available:\n  * MLS\n    ```matlab\n          fs; % Sample rate\n    duration; % Duration in seconds of a sequence\n        nseq; % Number of sequences\n        \n        signal = mls(round(fs*duration+1));\n        signal = repmat(signal,nseq,1);\n        signal = [signal;zeros(round(fs*duration+1),1)];\n    ```\n  * Sweep\n    ```matlab\n          fs; % Sample rate\n    duration; % Duration in seconds\n     dur_sil; % Silence duration in seconds\n        fini; % Initial frequency in hertz\n        fend; % End frequency in hertz\n        \n        signal = sweeptone(duration,dur_sil,fs,'SweepFrequencyRange',[fini,fend]);\n    ```\n  * White Noise\n    ```matlab\n          fs; % Sample rate\n    duration; % Duration in seconds\n    \n        signal = randn(round(duration*fs),1);\n    ```\n  * Pink Noise\n    ```matlab\n          fs; % Sample rate\n    duration; % Duration in seconds\n    \n        signal = pinknoise(round(duration*fs));\n    ```\n  * Pure Tone\n    ```matlab\n          fs; % Sample rate\n    duration; % Duration in seconds\n        freq; % Tone frequency in hertz\n        \n        signal = cos(2*pi*freq*(0:1/fs:duration));\n    ```\n  * Custom signal\n\n    If you want to use a different signal you can import it by selecting it within this panel. The signal must be in a text file with a single column, the sampling frequency will be the one defined in the software configuration.\n\nAll signals are normalized between 0.5 and -0.5: `signal = (signal/max(abs(signal)))*0.5;`.\n\n\u003ca id=\"information-panel\"\u003e\u003c/a\u003e\n## Information panel\n \u003cimg align=\"left\" height=\"150\" src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/infoPanelc.png\"\u003e\u003c/img\u003e This panel always appears in the bar on the right. It displays the relevant information of the audio device.\n If latency calibration has not been performed it shows the approximate value (`SamplesPerFrame/SampleRate*2`) but this value is not applied to signals.\n If at least one input of the device has been calibrated, the word 'Yes' and the channels numbers will be displayed in the input calibration.\n\n\u003cp\u003e\u003cbr /\u003e\u003cbr /\u003e\u003c/p\u003e\n\n---\n\n\u003ca id=\"methods\"\u003e\u003c/a\u003e\n# Methods\n\n\u003ca id=\"general-1\"\u003e\u003c/a\u003e\n## General\n\nThis method is only to perform some tests and see some options that MATLAB offers us, such as the calculation of common parameters in sound level meters.\n**Remember: only for test.**\n\n**Tip**: If you have calibrated the input of a microphone, take a measurement with the calibrator attached to the microphone. You can see the measured value in the 'Sound Pressure Level' panel, it must be the same as the reference value of the calibrator. This way you will check that everything is working correctly.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/GeneralMethod.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003ca id=\"impedance-tube-iso-10534-2\"\u003e\u003c/a\u003e\n## Impedance Tube (ISO 10534-2)\n\n---\n##### Table of contents\n- [Tube parameters](#tube-parameters)\n- [One-Mic measurement](#one-mic-measurement)\n- [Two-Mic measurement](#two-mic-measurement)\n  - [Calibrate the impedance tube system](#calibrate-the-impedance-tube-system)\n- [Information panel](#information-panel-1)\n- [Results visualization](#results-visualization)\n---\n\nThe impedance tube method is detailed in \u003ca href=\"https://www.iso.org/standard/22851.html\"\u003eISO 10534-2\u003c/a\u003e. In this software the measure has been implemented in full compliance with the standard.\n\nThe steps to follow (also indicated in the standard) are:\n  1. Calibrate the inputs to be used (\u003ca href=\"#device-setup-and-calibration\"\u003econfiguration panel\u003c/a\u003e). (_Recommended_)\n  1. Enter tube parameters (distances and shape).\n  1. Calibrate the impedance tube system (if you use two microphones). (_Recommended_)\n  1. Measure.\n \nThe results obtained are: reflection factor, sound absorption coefficient, specific acoustic impedance, impulse response (two inputs) and frequency response (two inputs).\n\nThe side panels that appear in this measurement method are:\n* **Left panel**: Here you can open the tube parameter configuration panel, measure with one or two microphones or review the information of the measurement method.\n* **Right panel**: Here you can choose the type of signal and its parameters. You will also have information about the tube and the audio hardware.\n\n|Left panel|Right panel|\n|:-------:|:------:|\n|\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/ImpedanceTubeLeftc.png\" width=\"50%\"\u003e\u003c/img\u003e|\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/ImpedanceTubeRightc.png\" width=\"50%\"\u003e\u003c/img\u003e|\n\n\n\u003ca id=\"tube-parameters\"\u003e\u003c/a\u003e\n### Tube parameters\n\nEnter in this panel the geometric parameters of the tube: shape, distance between microphones and distance to the sample. Make sure all distances are measured correctly. Also do not forget to indicate the shape of the tube.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/ImpedanceTubeParametersc.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"one-mic-measurement\"\u003e\u003c/a\u003e\n### One-Mic measurement\n\nIf you only have one microphone, you can perform the measurement through this panel.\nFirst place the microphone in position [A] and press `Measure [A]`, then move the microphone to position [B] and press `Measure [B]`. Finally, click on the button `Calculate results` in the right panel.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/ImpedanceTubeOneMicc.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"two-mic-measurement\"\u003e\u003c/a\u003e\n### Two-Mic measurement\n\nTo measure with two microphones simply place the microphones in position and press `Measure`.\nYou can also calibrate the system by pressing `Calibrate (optional)`.\nOnce the measurement is finished, press the button `Calculate results` in the right panel. If you have calibrated the tube, the software will ask you if you want to use the calibration.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/e86de2b313cba96f422deaba3747a0959e8e51cc/.github/images/ImpedanceTubeTwoMicc.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"calibrate-the-impedance-tube-system\"\u003e\u003c/a\u003e\n#### Calibrate the impedance tube system\n\nTo calibrate the system, two measurements must be made, one with the normal microphone position, and other one with the swapped position.\nIt is also advisable to have an absorbent material to slightly reduce reflections.\nThe figures indicate the position of the microphones for each measurement, make sure they are located correctly before measuring. Once the two measurements are finished, click on `Return`.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/ImpedanceTubeTwoMicCalc.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"information-panel-1\"\u003e\u003c/a\u003e\n### Information panel\nIn this panel you will see a summary of the measurement method and the limitations according to the tube parameters.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/ImpedanceTubeInformationc.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"results-visualization\"\u003e\u003c/a\u003e\n### Results visualization\n\nIn the results panel you can choose the resolution of the FFT and see the standard results.\nYou can also export the results in text file to use it in another software, also export the graphs (PNG, JPG, PDF, EPS or FIG) or see the impulse and frequency responses of the measured signals (`Other results` button).\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/ImpedanceTubeResultsc.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003ca id=\"transmission-tube-astm-2611\"\u003e\u003c/a\u003e\n## Transmission Tube (ASTM 2611)\n\n---\n##### Table of contents\n- [Tube parameters](#tube-parameters-1)\n- [One-Mic measurement](#one-mic-measurement-1)\n- [Two-Mic measurement](#two-mic-measurement-1)\n- [Four-Mic measurement](#four-mic-measurement)\n  - [Calibrate the transmission tube system](#calibrate-the-transmission-tube-system)\n- [Measure information](#measure-information)\n- [Results visualization](#results-visualization-1)\n  - [Single results visualization](#single-results-visualization-1)\n---\n\nThe transmission tube method is detailed in \u003ca href=\"https://www.astm.org/Standards/E2611.htm\"\u003eASTM 2611\u003c/a\u003e. In the software the method is implemented to be able to use one, two or four microphones. It is necessary to have a transmission tube with 4 microphone positions, two on the upstream side and two on the downstream side.\n\nIf the sample to be analyzed is symmetrical, only an anechoic end of the tube is necessary. If it is not symmetric, it will be necessary to measure with anechoic end and with rigid end.\n\nThe steps to follow (also indicated in the standard) are:\n  1. Calibrate the inputs to be used (\u003ca href=\"#device-setup-and-calibration\"\u003econfiguration panel\u003c/a\u003e). (_Recommended_)\n  1. Enter tube parameters (distances and shape).\n  1. Calibrate the impedance tube system (if you use four microphones). (_Recommended_)\n  1. Measure with anechoic end and, if not symmetrical sample, repeat measure with rigid end.\n \nThe results obtained are: transmission loss, characteristic impedance, transmission factor, reflection factor, propagation wavenamber in material, sound absorption coefficient, impulse response and frequency response (four inputs) for anechoic and rigid end measure (if not symmetrical).\n\nThe side panels that appear in this measurement method are:\n* **Left panel**: Here you can open the tube parameter configuration panel, measure with one, two or four microphones or review the information of the measurement method.\n* **Right panel**: Here you can choose the type of signal and its parameters. You will also have information about the tube and the audio hardware.\n\n|Left panel|Right panel|\n|:-------:|:------:|\n|\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTubeLeft.png\" width=\"50%\"\u003e\u003c/img\u003e|\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTubeRightc.png\" width=\"50%\"\u003e\u003c/img\u003e|\n\n\u003ca id=\"tube-parameters-1\"\u003e\u003c/a\u003e\n### Tube parameters\nThe panel shown here is used to enter the geometric parameters of the tube. Make sure all distances are measured correctly. Also do not forget to indicate the shape of the tube.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTubeParams.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"one-mic-measurement-1\"\u003e\u003c/a\u003e\n### One-Mic measurement\nIf you only have one microphone, it is possible to perform the measurement by placing the microphone in each of the measurement positions.\n\nEvery time a measurement is made the graph is updated to show which parts have already been measured. Also, if you are not sure that you have carried out the measurement correctly, you can delete it and do it again.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTube1mic.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"two-mic-measurement-1\"\u003e\u003c/a\u003e\n### Two-Mic measurement\nIf you have two microphones you can perform the measurement faster than the one microphone option. The operation is the same, except that now two input channels are chosen, one for each microphone.\n\nThe first measurement is made with the microphones in positions `A` and `B` (upstream) and the second in `C` and `D` (downstream), that is why microphone 1 corresponds to position `A` and `C`, and microphone 2 to position `B` and `D`.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTube2mic.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"four-mic-measurement\"\u003e\u003c/a\u003e\n### Four-Mic measurement\nThis is the best option, it reduces errors when manipulating the position of the microphones obtaining better results (although it is not a big difference).\n\nThis option also allows you to calibrate the microphones before making the measurement.\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTube4mic.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"calibrate-the-transmission-tube-system\"\u003e\u003c/a\u003e\n#### Calibrate the transmission tube system\n\nTo calibrate the transmission tube, it is necessary to perform 4 measurements:\n1. Take a measurement first with all four microphones in their normal positions. (Microphones order: [1,2,3,4])\n2. Swap the position of microphone 1 with microphone 2 (leave the other microphones in their normal position) and measure. (Microphones order: [2,1,3,4])\n3. Put the microphone 2 back to its position, put the microphone 1 in the position of the microphone 3 and the microphone 3 in the position of the microphone 1. Measure. (Microphones order: [3,2,1,4])\n4. Put the microphone 3 back to its position, put the microphone 1 in the position of the microphone 4 and the microphone 4 in the position of the microphone 1. Measure. (Microphones order: [4,2,3,1])\n\nOnce all the measurements are finished, click on `Done`.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTube4micCal.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"measure-information\"\u003e\u003c/a\u003e\n### Measure information\nIn this panel you will see some information about the measurement method.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTubeInformation.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"results-visualization-1\"\u003e\u003c/a\u003e\n### Results visualization\nWhen you press the button to calculate results, you will see this panel with the different results defined by the standard. If you click on any of the graphs you can see it larger.\n\nAlso, if you press the button for other results, you will be able to see the impulse and frequency response of all the measurements.\n\nIn the main results panel you can choose to export all the results in text file, export the **transfer matrix** (T11,T12,T21,T22) in text file for your own calculations or if you click on any graph you go to: [Single result](#single-results-visualization-1).\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTubeResults.png\" width=\"49%\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n\u003ca id=\"single-results-visualization-1\"\u003e\u003c/a\u003e\n#### Single results visualization\n\nIn this panel you will be able to see the larger graph and you will also be able to export only that result to a text file or graphic file. \nIn addition, in the case of absorption and reflection, by clicking on their graphs you will see both the hard-backed calculation that defines the ASTM 2611 standard and the anechoic-backed calculation (from transfer matrix method).\n\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTubeSingleTrans.png\" width=\"32%\"\u003e\u003c/img\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTubeSingleReflection.png\" width=\"32%\"\u003e\u003c/img\u003e\n\u003cimg src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/TransmissionTubeSingleAbsorption.png\" width=\"32%\"\u003e\u003c/img\u003e\n\n\u003cbr\u003e\n\n\u003ca id=\"robot-measurement-upv\"\u003e\u003c/a\u003e\n## Robot measurement (Polytechnic University of Valencia)\n\nThis measurement method is exclusive to the [Polytechnic University of Valencia](https://www.upv.es/index-en.html). It performs acoustic measurements by using a three-axis robot for automated measurements in a plane or volume. A page dedicated to this method will be included soon to facilitate use by students and researchers at the [Polytechnic University of Valencia](https://www.upv.es/index-en.html).\n\n---\n\n\u003ca id=\"standards-and-theory\"\u003e\u003c/a\u003e\n# Standards and theory\n\nHere is a table of the sources used for the implementation of some of the measures developed in the software.\n\n| Measure | Source | M-File |\n|:-------:|:------:|:------:|\n| Impedance tube | \u003ca href=\"https://www.iso.org/standard/22851.html\"\u003eISO 10534-2:1998\u003c/a\u003e   | [`calculationsTwoMicISO105342.m`](https://github.com/jmrplens/A-Lab/blob/a1b295f4ee735112b9b5fa40cdbf009617be4e14/include/Measurements/Impedance%20Tube%20-%20ISO%2010534-2/calculationsTwoMicISO105342.m)|\n| Transmission tube | \u003ca href=\"https://www.astm.org/Standards/E2611.htm\"\u003eASTM 2611 - 19\u003c/a\u003e | [`calculationsFourMicASTM2611.m`](https://github.com/jmrplens/A-Lab/blob/a1b295f4ee735112b9b5fa40cdbf009617be4e14/include/Measurements/Transmission%20Tube%20-%20ASTM%202611/calculationsFourMicASTM2611.m) |\n\n---\n\n\u003ca id=\"supports\"\u003e\u003c/a\u003e\n# Supports\n\n\u003ca href=\"https://www.upv.es\"\u003e\u003cimg align=\"Left\" height=\"100\" src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/LogoUPV2.png\"\u003e\u003c/img\u003e\u003c/a\u003e\u003ca href=\"https://www.gandia.upv.es/\"\u003e\u003cimg align=\"Left\" height=\"100\" src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/LogoEPSG2.png\"\u003e\u003c/img\u003e\u003c/a\u003e\u003ca href=\"https://igic.webs.upv.es/\"\u003e\u003cimg align=\"Left\" height=\"100\" src=\"https://github.com/jmrplens/A-Lab/blob/dbb199b9b21f8d9c1c09294dc0a1d02a9d33d509/.github/images/LogoIGICb.png\"\u003e\u003c/img\u003e\u003c/a\u003e***Thanks to the [Waves in Complex Media group](https://igic.webs.upv.es/index.php?option=com_content\u0026view=article\u0026id=22), [Higher Polytechnic School of Gandia](https://www.upv.es/contenidos/CGANDIA/index-en.html) and [Polytechnic University of Valencia](https://www.upv.es/index-en.html) for providing the necessary equipment to develop some of the measures implemented in the software and for all the support in time, meet, talk and discussions.***\n\n\u003cp\u003e\u003cbr /\u003e\u003c/p\u003e\nSpecial mention for \u003ca href=\"https://www.linkedin.com/in/gabrielebunkheila/\"\u003eGabriele Bunkheila\u003c/a\u003e and \u003ca href=\"https://www.linkedin.com/in/carsanbo/\"\u003eCarlos Sanchis\u003c/a\u003e for helping me and answer my questions with MATLAB, those long email threads are very valuable.\n\n---\n\n\u003ca id=\"author\"\u003e\u003c/a\u003e\n# Author\nJose M. Requena Plens, 2021. (\u003ca href=\"https://jmrplens.github.io/\"\u003ejmrplens.github.io\u003c/a\u003e)\n\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate?hosted_button_id=BLP3R6VGYJB4Q)\n[![Donate](https://img.shields.io/badge/Donate-Ko--fi-brightgreen?color=ff5f5f)](https://ko-fi.com/jmrplens)\n[![Sponsor](https://img.shields.io/badge/Sponsor-GitHub-brightgreen?color=ea4aaa)](https://github.com/sponsors/jmrplens) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmrplens%2Fa-lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmrplens%2Fa-lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmrplens%2Fa-lab/lists"}