Unexpected BGN values #509
Replies: 3 comments 2 replies
-
Hi Thomas, Thanks for your question and example line in csv file. In theory, the smallest possible value for a signal amplitude (ie in the waveform) is determined by the bits per sample. Typically this will be 16 bits. However one of the bits is the sign bit. So the smallest possible amplitude is given in our code by epsilon as follows: Assuming 16 bit samples (you need to check this is the case for your recordings) the lowest decibel value will be: HOWEVER! Note that this constant is only used when calculating the background noise of a waveform signal. See class NoiseRemovalModal.cs, line 119. It is NOT used when dealing with spectrograms. With spectrograms, the situation is more complex. In this case the amplitude spectrogram values are derived from sinusoid coefficients calculated by the FFT algorithm. The minimum accepted value is epsilon^2, but when this is adjusted for the FFT window energy etc, it turns out that the minimum possible decibel value in the decibel spectrogram is -154 dB. If you are finding values less than (more negative than) this, then something is happening that I do not understand. I hope this helps. Cheers, Michael |
Beta Was this translation helpful? Give feedback.
-
Hi Michael and Anthony! Thank you for getting back to me so fast, and for the detailed answer. Great to hear the decreasing background noise amplitude with frequency is an expected pattern, I'll take a look at the pink noise model in more detail. It is somewhat odd that the background noise values are so low, given that they come from a tropical rain forest in the Brazilian Amazon. Could this be linked to the device which was used to make the recordings? The device setup was an LG L70 smartphone in a waterproof case with an external omnidirectional microphone recording sound files in the '.wav' format using the Arbimon Touch application. The sampling rate was 44.1 kHz, I'm unfortunately not sure what the bit per sample was, as I did not collect the data myself. I'll see if I can find out more about this. @towsey, thank you for clarifying the behind the scenes workings of how the amplitude values are derived at different stages inside the software - as I don't speak C#, this is really useful! I don't think I've found any values below -154 dB, I'll have a quick look to see if that is not the case. @atruskie, thanks for the additional links, it will be useful to brush up my knowledge on these topics a little more :). Here is the sound file that was used to obtain the BGN index files in the message above: I appreciate your help! Cheers, |
Beta Was this translation helpful? Give feedback.
-
Good morning, Concerning the location in code where the calculation of the minimum spectral decibels is calculated, it is done at line 59-60 in the class MFCCStuff.cs. THe method is GetLogEnergySpectrogram(). THis is a low level method and the calculation needs to be done late because the calculation depends on the FFT window energy and the sample rate. Both these are user determined in the case of recognizers. |
Beta Was this translation helpful? Give feedback.
-
I'm writing with a question regarding the BGN-index, which I've computed using the default settings in AnalysisPrograms.
Based on the Towsey (2017) technical report, I was under the impression that amplitude values should be set at -90 dB minimum. However, when computing the BGN-index, I sometimes get values that are far lower, up to - 141 dB, as you can see in the example I attached here below. I also found it interesting that BGN-values seemed to decrease with the frequency bin number - is this a normal pattern you find?
G9_2_87_20150806_174500Z__Towsey.Acoustic.BGN.zip
I was wondering if you'd be able to shed some light on what is going on. Am I misinterpreting how the BGN-index is computed based on the technical report, or is something causing this very low values.
I appreciate your help!
Beta Was this translation helpful? Give feedback.
All reactions