Fundamentos · 02

Ponderação A/C/Z

O ouvido humano não responde igual em todas as frequências. Ponderar um espectro significa aplicar um filtro que aproxima essa resposta antes de somar tudo num único número de dB.

As três curvas

O Spectra implementa as curvas de ponderação A, C e Z exatamente como definidas pelo IEC 61672-1, Anexo E1 — a norma internacional para medidores de nível sonoro:

As fórmulas

Ambas as curvas nascem de quatro frequências de polo fixas e duas constantes de normalização (ganho 0 dB em 1 kHz):

Constantes (IEC 61672-1)
$$ f_1 = 20{,}598997 \quad f_2 = 107{,}65265 \quad f_3 = 737{,}86223 \quad f_4 = 12194{,}217 $$ $$ \text{norm}_A = 2{,}00\ \text{dB} \qquad \text{norm}_C = 0{,}062\ \text{dB} $$
Ponderação A
$$ A(f) = 20\log_{10}\!\left[\dfrac{f_4^{2}\, f^{4}}{(f^{2}+f_1^{2})\sqrt{(f^{2}+f_2^{2})(f^{2}+f_3^{2})}\,(f^{2}+f_4^{2})}\right] + \text{norm}_A $$
Ponderação C
$$ C(f) = 20\log_{10}\!\left[\dfrac{f_4^{2}\, f^{2}}{(f^{2}+f_1^{2})(f^{2}+f_4^{2})}\right] + \text{norm}_C $$

Ponderação Z: Z(f) = 0 para todo f — sem filtro algum.

Valores de referência

O pacote de testes do Spectra confere a curva calculada contra a Tabela 2 do IEC 61672-11 em frequências-chave:

FrequênciaA (dB)FrequênciaC (dB)
10 Hz−70,431,5 Hz−3,0
100 Hz−19,11000 Hz0,0
1000 Hz0,04000 Hz−0,8
4000 Hz+1,08000 Hz−3,0
10000 Hz−2,5

Aplicação por bin

Ponderar não é aplicar a curva ao número final em dB — é aplicar o ganho, convertido para multiplicador de potência linear, a cada bin da FFT antes de somar:

Ganho em potência linear
$$ m_A(f) = 10^{\,A(f)/10} \qquad P_{\text{ponderada}} = \sum_k m(f_k)\cdot P[k] $$

Fazer a média em dB direto (em vez de somar potências) não é fisicamente significativo — por isso todo o pipeline do Spectra, da ponderação ao Leq, opera em potência linear e só converte para dB no último passo.

Por que uma tabela pré-computada (BinWeighting)

Calcular A(f)/C(f) — que envolve raízes quadradas e logaritmos — para cada bin a cada quadro custaria caro: uma FFT de 2048 pontos a 30 quadros por segundo passa de 100 mil avaliações transcendentais por segundo. O BinWeighting pré-computa, uma vez por configuração de FFT, uma tabela de multiplicadores lineares por bin dentro da faixa audível (20 Hz–20 kHz — bins fora dela são excluídos da soma, não apenas atenuados), e resolve a soma ponderada com uma única chamada vetorizada (vDSP_dotpr para A/C, vDSP_sve para Z). Um teste dedicado confirma que essa versão otimizada bate, bin a bin, com o laço ingênuo que chama a fórmula transcendental diretamente.