Eu tenho microfones medindo o som ao longo do tempo em muitas posições diferentes no espaço. Todos os sons gravados são originários da mesma posição no espaço, mas devido aos diferentes caminhos do ponto de origem para cada microfone; o sinal será (tempo) alterado e distorcido. Um conhecimento a priori tem sido usado para compensar as mudanças de tempo da melhor maneira possível, mas ainda existe alguma mudança de tempo nos dados. Quanto mais próximas as posições de medição, mais semelhantes os sinais.
Estou interessado em classificar automaticamente os picos. Com isso, quero dizer que estou procurando um algoritmo que "observe" os dois sinais de microfone no gráfico abaixo e "reconheça" da posição e da forma de onda que existem dois sons principais e relate suas posições de tempo:
sound 1: sample 17 upper plot, sample 19 lower plot,
sound 2: sample 40 upper plot, sample 38 lower plot
Para fazer isso, planejava fazer uma expansão de Chebyshev em torno de cada pico e usar o vetor dos coeficientes de Chebyshev como entrada para um algoritmo de cluster (k-means?).
Como exemplo, aqui estão partes dos sinais de tempo medidos em duas posições próximas (azul) aproximadas pela série Chebyshev de 5 termos em 9 amostras (vermelhas) em torno de dois picos (círculos azuis):
As aproximações são bastante boas :-).
Contudo; os coeficientes de Chebyshev para o gráfico superior são:
Clu = -1.1834 85.4318 -39.1155 -33.6420 31.0028
Cru =-43.0547 -22.7024 -143.3113 11.1709 0.5416
E os coeficientes de Chebyshev para o gráfico inferior são:
Cll = 13.0926 16.6208 -75.6980 -28.9003 0.0337
Crl =-12.7664 59.0644 -73.2201 -50.2910 11.6775
Eu gostaria de ter visto Clu ~ = Cll e Cru ~ = Crl, mas este não parece ser o caso :-(.
Talvez haja outra base ortogonal mais adequada neste caso?
Algum conselho sobre como proceder (estou usando o Matlab)?
Agradeço antecipadamente por todas as respostas!
Respostas:
Se você puder medir as funções de transferência, poderá filtrar cada sinal de microfone com o inverso dessa função de transferência. Isso deve tornar os sinais do microfone muito mais semelhantes e reduzir o efeito da filtragem.
Uma alternativa seria combinar todos os sinais de microfone em um formador de feixe que otimiza a captação da fonte, mas rejeita todo o resto. Isso também deve fornecer uma versão bastante "limpa" do sinal da fonte.
fonte