Sound Pressure level returning -inf

8 visualizaciones (últimos 30 días)
Farid
Farid el 1 de Sept. de 2022
Respondida: Jimmy Lapierre el 7 de Sept. de 2022
Hello Community;
when I use the function [Lt,Leq,Lpeak,Lmax] = SPL(recording_vector) it returns vectors containing (partially or completely) -inf values. Surprisingly when I re-Run the same line I get usual numeric values. how is this possible? how to avoid it?
Thanks
  2 comentarios
Chunru
Chunru el 2 de Sept. de 2022
Can you show your data (a portion) or your code?
It is likely due to the signal amplitude to be 0 so log of it becomes -inf.
Farid
Farid el 3 de Sept. de 2022
Thanks a Lot Chunru, I am attaching the file to this comment.
calib=importdata('calib.mat')
IRS=importdata('IRS.mat')
spl = splMeter("CalibrationFactor",calib, ...
"FrequencyWeighting","Z-weighting", ...
"TimeWeighting","Fast", ...
"TimeInterval",0.125, ...
"SampleRate",FS,...
"Bandwidth","1 octave");
[Lt,Leq,Lpeak,Lmax] = spl(IRS)

Iniciar sesión para comentar.

Respuesta aceptada

Jimmy Lapierre
Jimmy Lapierre el 7 de Sept. de 2022
Leq, Lpeak and Lmax are only computed every TimeInterval, so they correspond to the SPL of zero for the first 0.125 seconds. And as chunru said, that corresponds to -Inf. When you call spl a second time, you are already pass the first 0.125 seconds of pure silence.
To avoid it, either discard the fist 0.125 seconds, or set a minimum value you prefer.
For example set any value below -100 dB (including -Inf) to -100:
Leq(Leq<-100)=-100;

Más respuestas (0)

Categorías

Más información sobre Audio Processing Algorithm Design en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by