Re: [LAD] Calculate R M S

From: Fons Adriaensen <fons@email-addr-hidden>
Date: Fri Feb 18 2011 - 21:02:54 EET

On Fri, Feb 18, 2011 at 07:53:46PM +0200, Alfs Kurmis wrote:
 
> It&#160; means block schema of Automatick Gain/Volume Control is
> (can be)

Please try to avoid those &#160 characters in your mails....

> Filter -- RMS_Calculator -- Volume_control&#160;
> In exact such order ?

Yes. The filter is not essential, you can get good results
without it. Most compresssors or AGCs don't have a filter.

> (- For example in FFT are used Rectangular(no window) , Hann,
> Hamming, Barlow ... windows. -)

FFT windows have nothing to do with this.

> What are the most common filters for ACG and "Loudness" control ?

Just a simple first order lowpass acting on the squared samples.

> > Nothing special is needed for high frequencies.
> Why not ?

Because the theory says so. You can either

1. believe me,
2. study the theory yourself,
3. try it out yourself.

2 and 3 would be the best thing to do. See also the example
at the end of this post.

> So far i unterstand the best way for RMS calc would be SQRT of
> integral of power2 of sound signal function.
> Real signal is not sequence of sampled rectangles, but smooth
> function.
> Can not happen so what that rectangle inaccuracy of each sample by
> freq > 10KHZ ,
> in end effect will accumulate big inaccuracy ?

The analog signal is *not* the samples converted to rectangles
and smoothed a bit. It looks like that for low frequencies, but
what is really happening in DA conversion is something completely
different.

> U mean that normally full amplitude sine wave is defined as 0dB RMS
> signal ?

In most cases that is the definition of '0 dB'.

> Can U plz gimme some examples ?

Take a sine wave with peak amplitude +/- 1. The samples are:

sample [i] = sin (w * i)

i = sample number.
w = 2 * pi * frequency / sample_frequency.

Now the square of sin(x) is 0.5 + 0.5 * cos(2 * x)

The average value of cos(2 * x) is zero, so the average
value of the square of sin(x) is 0.5, and the RMS value
is sqrt(0.5) =~ 0.7071.

It doesn't matter where the samples are: if there are enough
of them then the average of cos(2 * x) will be zero, and the
result of the RMS calculation will be sqrt(0.5). ** Also for
high frequencies. **

A square wave of amplitude +/- 1 has RMS value 1. So if you
use the sine wave above as the reference (0 dB) then the
square wave is +3 dB.

But note that if you sample an analog square wave, the samples
will in most case *not* be +/- some single value. And if your
samples are +/- some value, then the analog waveform will in
most cases *not* be a lowpassed square wave (in both cases
it will be close at low frequencies). The relation between
samples and the analog waveform is not as simple as that.

Ciao,

-- 
FA
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Sat Feb 19 00:15:02 2011

This archive was generated by hypermail 2.1.8 : Sat Feb 19 2011 - 00:15:02 EET