Skip to content

reverberation_time_linear_regression divide by zero warning when last time sample of IR is 0 #151

@tjueterb

Description

@tjueterb

Is there an existing issue for this?

  • I have searched the existing issues

Problem description

Hi all,

just a small inconvenience: If the last sample of an impulse response is 0 (e.g. because it's windowed), the last sample of the EDC (from schroeder_integration is also 0 and reverberation_time_linear_regression throws a divide by zero warning. I think it wouldn't be too harmful to supress that warning.

Code sample

Code run:

ir = pf.signals.files.room_impulse_response()
# fade out of the last two samples
ir = pf.dsp.time_window(ir, interval=(ir.n_samples-2, ir.n_samples-1),shape='right')
edc = pr.edc.schroeder_integration(ir, is_energy=False)
t30 = pr.parameters.reverberation_time_linear_regression(edc, T='T30')
print(f'T30: {t30} seconds')

Traceback:

T30: [2.00420347] seconds
/home/tjueterb/code/misuka/.venv/lib/python3.12/site-packages/pyrato/parameters.py:83: RuntimeWarning: divide by zero encountered in log10
  edcs_db = 10*np.log10(np.abs(energy_decay_curve.time))

Environment

Details I pulled the develop branch just before testing. ```text pyrato==0.4.1 ├── pyfar [required: >=0.5.0, installed: 0.7.4] │ ├── numpy [required: >=1.23.0, installed: 2.4.2] │ ├── scipy [required: >=1.5.0, installed: 1.16.3] │ │ └── numpy [required: >=1.25.2,<2.6, installed: 2.4.2] │ ├── matplotlib [required: Any, installed: 3.10.8] │ │ ├── contourpy [required: >=1.0.1, installed: 1.3.3] │ │ │ └── numpy [required: >=1.25, installed: 2.4.2] │ │ ├── cycler [required: >=0.10, installed: 0.12.1] │ │ ├── fonttools [required: >=4.22.0, installed: 4.61.1] │ │ ├── kiwisolver [required: >=1.3.1, installed: 1.4.9] │ │ ├── numpy [required: >=1.23, installed: 2.4.2] │ │ ├── packaging [required: >=20.0, installed: 26.0] │ │ ├── pillow [required: >=8, installed: 12.1.1] │ │ ├── pyparsing [required: >=3, installed: 3.3.2] │ │ └── python-dateutil [required: >=2.7, installed: 2.9.0.post0] │ │ └── six [required: >=1.5, installed: 1.17.0] │ ├── sofar [required: >=0.1.2, installed: 1.2.3] │ │ ├── netCDF4 [required: !=1.7.4, installed: 1.7.3] │ │ │ ├── cftime [required: Any, installed: 1.6.5] │ │ │ │ └── numpy [required: >=1.21.2, installed: 2.4.2] │ │ │ ├── certifi [required: Any, installed: 2026.1.4] │ │ │ └── numpy [required: Any, installed: 2.4.2] │ │ ├── numpy [required: >=1.14.0, installed: 2.4.2] │ │ ├── beautifulsoup4 [required: Any, installed: 4.14.3] │ │ │ ├── soupsieve [required: >=1.6.1, installed: 2.8.3] │ │ │ └── typing_extensions [required: >=4.0.0, installed: 4.15.0] │ │ ├── requests [required: Any, installed: 2.32.5] │ │ │ ├── charset-normalizer [required: >=2,<4, installed: 3.4.4] │ │ │ ├── idna [required: >=2.5,<4, installed: 3.11] │ │ │ ├── urllib3 [required: >=1.21.1,<3, installed: 2.6.3] │ │ │ └── certifi [required: >=2017.4.17, installed: 2026.1.4] │ │ └── packaging [required: Any, installed: 26.0] │ ├── urllib3 [required: Any, installed: 2.6.3] │ ├── deepdiff [required: Any, installed: 8.6.1] │ │ └── orderly-set [required: >=5.4.1,<6, installed: 5.5.0] │ └── soundfile [required: >=0.11.0, installed: 0.13.1] │ ├── cffi [required: >=1.0, installed: 2.0.0] │ │ └── pycparser [required: Any, installed: 3.0] │ └── numpy [required: Any, installed: 2.4.2] ├── numpy [required: >=1.14.0, installed: 2.4.2] ├── scipy [required: >=1.5.0, installed: 1.16.3] │ └── numpy [required: >=1.25.2,<2.6, installed: 2.4.2] └── matplotlib [required: Any, installed: 3.10.8] ├── contourpy [required: >=1.0.1, installed: 1.3.3] │ └── numpy [required: >=1.25, installed: 2.4.2] ├── cycler [required: >=0.10, installed: 0.12.1] ├── fonttools [required: >=4.22.0, installed: 4.61.1] ├── kiwisolver [required: >=1.3.1, installed: 1.4.9] ├── numpy [required: >=1.23, installed: 2.4.2] ├── packaging [required: >=20.0, installed: 26.0] ├── pillow [required: >=8, installed: 12.1.1] ├── pyparsing [required: >=3, installed: 3.3.2] └── python-dateutil [required: >=2.7, installed: 2.9.0.post0] └── six [required: >=1.5, installed: 1.17.0]

</details>


### Anything else?

_No response_

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions