Skip to content

[FEATURE] add pytta.e2611 with the four-microphone transmission tube (ASTM E2611) - #115

Open
aguirreSL wants to merge 1 commit into
PyTTaMaster:developmentfrom
aguirreSL:dev-e2611
Open

aguirreSL wants to merge 1 commit into
PyTTaMaster:developmentfrom
aguirreSL:dev-e2611

Conversation

@aguirreSL

Copy link
Copy Markdown

Adds pytta.e2611, the normal incidence sound transmission of ASTM E2611-09 with four microphones and the transfer matrix method, which ita_impedance_tube_transmission and ita_kundt_calc_impedance_transmission of the ITA-Toolbox provide:

  1. speed_of_sound(temperature) and air_density(temperature, pressure): Eq 4 and 5.
  2. wave_components(f, H, l1, s1, l2, s2, c): the forward and backward waves on both sides of the specimen from the transfer functions of the four microphones, Eq 17 to 20.
  3. transfer_matrix(f, Ha, Hb=None, l1, s1, l2, s2, d, c, rho): the transfer matrix of the specimen by the two-load method (Eq 22), or by the one-load method for a symmetric specimen (Eq 24).
  4. transmission_loss, reflection_coefficient, absorption_coefficient and material_properties: Eq 25 to 30, the transmission loss of the anechoic-backed specimen, the reflection and absorption of the hard-backed one, and the wavenumber and characteristic impedance in the material.

As in Fig. 4 of the standard, l1 and l2 are both measured from the front face of the specimen, so l2 includes its thickness. The equations were taken from the text of the standard. The two ITA functions belong to an application of the ITA-Toolbox whose license is "all rights reserved", so only their help text was read.

The tests in tests/test_e2611.py synthesize the microphone pressures from a known specimen matrix with Eq 21 and the plane wave field of the tube, and print the measured differences:

  1. A limp layer of 2 kg/m² follows the mass law, TL = 20 lg|1 + jωm / (2ρc)|, with two loads and with one load (3.6e-14 dB).
  2. A layer of air 5 cm thick gives k' = k (8.0e-14) and z = ρc (4.8e-15), no transmission loss and no absorption when hard-backed.
  3. Eq 4 and 5 give 343.24 m/s and 1.2020 kg/m³ at 20 °C and 101.325 kPa.

Checked with Python 3.12, numpy 1.26 and scipy 1.17. The 7 failures of development (3 in test_h5io.py, 4 in test_pyttasave.py) are the same with and without this change.

Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant