I need the functionality of the RMS table block (Level Detectors/Lookup Tables > RMS Table > Range (-93 to +3 dB) > RMS Table), but for my application the available dB/s range and precision is not large enough.
I wan't to implement fast and slow time weighting for a sound level meter according to IEC 61672. The time weighting is specified in the standard as follows: exponential time constants are 0,125 s for time-weighting F and 1 s for time-weighting S. The design goals for the corresponding rates of decay of a time-weighted sound level, after the sudden cessation of a steady 4 kHz sinusoidal electrical input signal, are 34,7 dB/s for time weighting F and 4,3 dB/s for time weighting S.
Following table specifies the RMC TC and decay rate for the two time weightings in three different formats; milliseconds, dB per second and the corresponding cutoff frequency if it was implemented as a 1st order LPF:
|TC in ms||TC in dB/s||TC in Hz|
Would it be possible to build this using seperate blocks, using lowpass filters implemented as IIR coefficients as exponential time averagers?
I can generate the necessary IIR filters, but cant get my head around how to arrange them in such a way that one of two filters sets the attack time, and the other the release time (without influencing eachother). I was using the RMS Table set at max RMS TC and Decay rate infront of the filters to generate usable values.
How is this algorithm put together if we think about it in a blockschematic/Sigmastudio way?
Looking forward to your suggestions/help.