Code Monkey home page Code Monkey logo

Comments (14)

nicolas-f avatar nicolas-f commented on September 13, 2024

Thanks for feedback.

We have to fix this issue by changing the fromTime value. (without copying array)

from i-simpa.

nicolas-f avatar nicolas-f commented on September 13, 2024

After reading again the code:

The implementation follow the ISO 3382:1997(F). The reverberation time RT30 is computed using the regression on a Schroeder curve from -5db to -35db.

The variable wxFloat32 fromTime is the time when the value is -5 dB inferior than the higher value of the Schroeder curve.

from i-simpa.

nicolas-f avatar nicolas-f commented on September 13, 2024

All this post-processing code will be moved into lib_interface and included into the automated unit test framework.

from i-simpa.

wbinek avatar wbinek commented on September 13, 2024

The RT calculation is ok. The bug is in energetic parameters calculation (mainly C and D). The integration should start when the impulse arrives to the receiver not from t=0.

from i-simpa.

wbinek avatar wbinek commented on September 13, 2024

If you look at for example projet_calculation.cpp in C param calculation there is:

wxFloat32 wj_CurrentFreq=GetSumLimit(idFreq,0.f,te,timeTable,tab_wj)/GetSumLimit(idFreq,te,-1.f,timeTable,tab_wj);

The problem is that instead of starting integration from fixed 0 it should start when direct sound approaches the receiver. It can be changed in parameter calculation funcition or GetSumLimit method.
This applies to all energetic parameters.

from i-simpa.

nicolas-f avatar nicolas-f commented on September 13, 2024

Yes sorry, I was focused in RT and EDT. I reopen the issue and I will fix it by updating

Compute_ST_Param
Compute_C_Param
Compute_D_Param
Compute_TS_Param
Compute_LEF_Param
Compute_LF_Param
Compute_LFC_Param
Compute_LG_Param
Compute_G_Param

from i-simpa.

Picaut avatar Picaut commented on September 13, 2024

I try to validate this modification. However, I obtained NaN or °Inf values for all parameters (except reverberation parameters).
Need to verify step by step the calculation, in debug mode.

Below, a simulation (v1.3.4) for a 10m cubic room, source at the center, receiver at 2m from the source:

50Hz to 1250Hz, increasing absorption from 0, step 0.05, d=1 (100% diffuse)
1600 and 2000 Hz, absorption 0.1 and 0.2 respectively, no diffusion d=0

image

from i-simpa.

Picaut avatar Picaut commented on September 13, 2024

May be a problem in this function. Is-it for finding the time step of direct field? lastdb should not be updated at each time step?
Time step of the direct field (if exists) could be estimated simply by calculating the distance from source;
If no direct field ?

https://github.com/Ifsttar/I-Simpa/blob/dca3a488d558d3756fb2a90a0f52877e2238c9bd/src/isimpa/data_manager/projet_calculation.cpp#L114-L126

from i-simpa.

nicolas-f avatar nicolas-f commented on September 13, 2024

Yes it could be that. GetTimeDecay should return the time before the noise level is decaying .

from i-simpa.

Picaut avatar Picaut commented on September 13, 2024

Are you sure it finds the time step of the direct field (or a valid change/increasing of energy)?

from i-simpa.

nicolas-f avatar nicolas-f commented on September 13, 2024

With I-Simpa in dev branch I have this:

isimpa

What is the timestep in spps ?
issue_7.zip

from i-simpa.

nicolas-f avatar nicolas-f commented on September 13, 2024

ok, there is an issue when sound power received is < 0 dB. I will try to fix that

from i-simpa.

Picaut avatar Picaut commented on September 13, 2024

May be that results are correct. I have prepared a I-Simpa project with the possibility to compare results with expected values for C, D...

from i-simpa.

Picaut avatar Picaut commented on September 13, 2024

I have compared SPPS and expected theoretical results for 100% diffusing room, in many room size (verifying also the effects of the Time Step and distance from source). It seems that the procedure for calculating the clarity C80 within I-Simpa seems correct. It probably needs further validation with measurements or other reference data, but it seems quite acceptable for now.

image

from i-simpa.

Related Issues (20)

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.