Aplicando ponderação A


11

Quero calcular a intensidade de um determinado sinal e me deparei com esse segmento . Estou um pouco confuso sobre o aspecto A-Weighting. Não consigo postar imagens, mas acho que este site tem a fórmula de que preciso. (Wa = 10log ...)

O que não entendo é como realmente usá-lo no meu programa. Se isso fsignifica frequência, presumivelmente eu posso codificar os valores, pois eles permanecerão constantes. Se for esse o caso, como posso aplicar Wameus valores de amostra e quais valores eu uso? Calculo o espectro de potência para obter WINDOW_SIZE/2valores e multiplicar cada valor na faixa de frequências por um Wavalor pré-calculado relevante ou é esse o caminho errado? Agradeço antecipadamente.

Respostas:


8

Sim, você pode codificar os valores, realizar uma FFT do seu sinal e multiplicar pelos valores codificados, em seguida, obter a amplitude no domínio da frequência do teorema de Parseval ( exemplo ).

Você também pode implementar um filtro digital e fazê-lo no domínio do tempo. Aqui está o código Matlab e minha tradução para Python .

Observe que a transformação bilinear faz com que o filtro digital saia mais rapidamente do que o filtro analógico, introduzindo erros de medição em taxas de amostra comuns. Uma correção simples é fazer uma amostra inicial dos dados primeiro, para que a discrepância seja minimizada. Outras abordagens de design de filtro aqui: http://dsp.stackexchange.com/q/36077/29


Obrigado, estou entendendo um pouco melhor. No seu exemplo Parseval, rms_flat é a equação RMS (SQRT(x1^2 + x2^2...xn^2/n))e qual a diferença entre rms_flat do sinal e rms_flat da FFT?
TryNCode

@ExpAns: Sim, rms_flat()é justo sqrt(mean(absolute(a)**2)). O /nestá do lado de fora. O valor RMS do sinal e da FFT são os mesmos, exceto por um fator de escala.
Endolith
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.