Em primeiro lugar, sou novo no DSP e não tenho nenhuma educação real, mas estou desenvolvendo um programa de visualização de áudio e estou representando uma matriz FFT como barras verticais como em uma visualização típica do espectro de frequências.
O problema que tive foi que os valores do sinal de áudio mudavam muito rapidamente para produzir uma saída visual agradável se eu apenas mapeasse os valores da FFT diretamente:
Portanto, aplico uma função simples aos valores para "suavizar" o resultado:
// pseudo-code
delta = fftValue - smoothedFftValue;
smoothedFftValue += delta * 0.2;
// 0.2 is arbitrary - the lower the number, the more "smoothing"
Em outras palavras, estou pegando o valor atual e comparando-o com o último e adicionando uma fração desse delta ao último valor. O resultado fica assim:
Então, minha pergunta é:
Esse é um padrão ou função bem estabelecido para o qual já existe um termo? É assim, qual é o termo? Eu uso o "suavização" acima, mas sei que isso significa algo muito específico no DSP e pode não estar correto. Fora isso, parecia estar relacionado a um envelope de volume, mas também não era exatamente a mesma coisa.
Existem abordagens melhores ou um estudo mais aprofundado sobre soluções para isso que eu deveria examinar?
Obrigado pelo seu tempo e desculpas se esta for uma pergunta estúpida (lendo outras discussões aqui, estou ciente de que meu conhecimento é muito inferior à média que parece).