Loudness do fluxo PCM

7

Estou recebendo amostras de PCM por fluxo, que é um canal, 8000 amostras por segundo. Eu descobri uma maneira de descobrir a sonoridade calculando a 'força' do sinal adicionando valor abs a cada 1000 amostras seguintes e depois dividindo pela contagem de amostras que é 1000. Funciona um pouco bem, mas às vezes meus cálculos estão ficando loucos, minha soma do absoluto os valores das amostras parecem aumentar constantemente e atingir valores ridículos ... então acho que estou fazendo algo errado lá. O engraçado é que, quando os cálculos estão ficando loucos, tudo volta ao normal quando eu pressiono 'dispositivo de entrada de som' com a mão;)

De qualquer forma. Minha pergunta é: como calcular corretamente o volume do conjunto de amostras PCM?

solgar
fonte
Que formato numérico você está usando ao calcular a soma? Parece que você pode estar passando por um estouro.
Jason R
11
Estou usando 2 bytes, número assinado. Eu não tenho excesso. Fiz impressão de todas as minhas amostras para arquivar no formato txt e essas amostras, apesar do silêncio, foram cada vez mais altas. O que é valores ainda mais estranhos não caiu abaixo de zero quando começou a "acumular".
Solgar 26/07

Respostas:

9

Para medir a energia (que está intimamente relacionada, mas não é a mesma que "volume"), calcule o RMS (Root-Mean-Square).

E=n=0 0N-1 1s[n]2N

N é o número de amostras é a amostra no tempo .s[n]n

Você pode fazer isso em qualquer tamanho de bloco de amostras. Você pode fazer isso em todas as amostras de uma só vez para obter uma energia média ou dividir o conjunto de amostras em pedaços para ver como a energia muda com o tempo.

Existem também métodos mais sofisticados que levam em conta as peculiaridades do corpo e do cérebro. Você pode encontrar mais informações sobre isso aqui .

Jim Clay
fonte
11
Aqui está o código em vários idiomas para encontrar o quadrado médio da raiz .
Xeoncross
1

Não sou especialista e não tenho certeza do que você está tentando alcançar, mas parece que você cometeu um erro de programação em algum lugar. Você poderia nos mostrar o código?

Quando você diz volume, significa como definido aqui ? Nesse caso, você precisa prestar contas ao ouvinte.

Se você está interessado apenas em energia, talvez o RMS seja uma escolha melhor ou quadrados médios.

Thor
fonte