Resultado de fudio do NA dá intensidade em todas as freqüências C #

Eu tenho uma implementação funcional da gravação de loopback de wasapi do NAudio e a FFT dos dados. A maioria dos dados que recebo é exatamente como deveria ser, mas de vez em quando (intervalos de 10 segundos a alguns minutos) ele mostra a amplitude em quase todas as freqüências.

Basicamente, a imagem está rolando da direita para a esquerda com o tempo e as freqüências indo em escala logarítmica das freqüências mais baixas na parte inferior. As linhas são os erros. Tanto quanto eu posso dizer que eles não deveriam estar lá.

Eu recebo o buffer de áudio e envio as amostras para um agregador (aplica a janela de Hamming), que implementa o NAudio FFT. Eu verifiquei os dados (resultado FFT) antes de modificá-los de qualquer forma (a imagem não é da saída FFT bruta, mas com escala de desibel) confirmando que o resultado da FFT está fornecendo essas linhas. Eu também poderia apontar que a imagem foi modificada com LockBits, então achei que tinha algo errado com a lógica, mas é por isso que verifiquei os dados de saída da FFT que mostram o mesmo problema.

Bem, eu poderia estar errado eo problema pode estar em algum lugar que eu disse que não é, mas realmente parece que se origina da FFT ou os dados do buffer (dados em si ou a agregação de amostras). De alguma forma, duvido que o buffer esteja corrompido assim.

Se alguém tem alguma idéia do que poderia causar isso eu agradeceria muito!

ATUALIZAR

Então eu decidi desenhar toda a gama de resultados da FFT ao invés de metade dela. Isso mostrou algo estranho. Eu não tenho certeza de FFT, mas eu pensei que a transformação de Fourier deveria dar um resultado que é espelhado em torno do meio. Este certamente não é o caso aqui.

A imagem está em escala linear, de modo que o meio exato da imagem é o ponto central do resultado da FFT. O fundo é o primeiro e o topo é o último.

Eu estava tocando uma onda senoidal de 10kHz que dá as duas linhas horizontais lá, mas a parte de cima está além de mim. Também parece que as linhas são espelhadas em torno do quarto inferior da imagem, o que também parece estranho para mim.

ATUALIZAÇÃO 2

Então eu aumentei o tamanho da FFT de 4096 para 8192 e tentei novamente. Esta é a saída comigo mexendo com a freqüência do seno.

Parece que o resultado é espelhado duas vezes. Uma vez no meio e depois novamente nas metades superior e inferior. E as enormes linhas agora se foram ... E parece que as linhas só aparecem na metade inferior agora.

Após alguns testes adicionais com diferentes comprimentos de FFT, parece que as linhas são completamente aleatórias nessa conta.

ATUALIZAÇÃO 3

Eu fiz alguns testes com muitas coisas. A última coisa que adicionei foi a sobreposição de amostras para que eu reutilize a última metade da matriz de amostra no início da próxima FFT. Nas janelas de Hamming e Hann, isso me dá intensidades imensas (como na segunda foto que postei), mas não com Blackmann Harris. Desativar a sobreposição remove os maiores erros em todas as funções da janela. Os erros menores, como na imagem superior, ainda permanecem mesmo com a janela BH. Eu ainda não tenho ideia de por que essas linhas aparecem.

Minha forma atual permite controlar qual função de janela usar (das três mencionadas anteriormente), sobreposição (on / off) e várias opções de desenho diferentes. Isso me permite comparar todos os efeitos das partes afetadas quando alteradas.

Vou investigar mais (tenho certeza que cometi um erro em algum momento), mas boas sugestões são mais que bem-vindas!

questionAnswers(1)

yourAnswerToTheQuestion