El resultado de NAudio fft da intensidad en todas las frecuencias C #

Tengo una implementación de trabajo de la grabación wasapi loopback de NAudio y la FFT de los datos. La mayoría de los datos que obtengo son como deberían ser, pero de vez en cuando (intervalos de 10 segundos a minutos) muestran amplitud en casi todas las frecuencias.

Básicamente, la imagen se desplaza de derecha a izquierda con el tiempo y las frecuencias en escala logarítmica desde las frecuencias más bajas en la parte inferior. Las líneas son los errores. Por lo que puedo decir, no se supone que estén allí.

Obtengo el búfer de audio y envío las muestras a un agregador (se aplica la ventana de Hamming) que implementa la NAudio FFT. He comprobado los datos (resultado de FFT) antes de modificarlos de alguna manera (la imagen no proviene de la salida de FFT sin procesar, sino de un desibel escalado) confirmando que el resultado de FFT está dando esas líneas. También podría señalar que la imagen se modificó con LockBits, así que pensé que tenía algo de malo con la lógica allí, pero es por eso que verifiqué los datos de salida de FFT que muestran el mismo problema.

Bueno, podría estar equivocado y el problema podría estar en algún lugar donde dije que no, pero realmente parece que se origina a partir de la FFT O los datos del búfer (los datos en sí o la agregación de muestras). De alguna manera dudo que el búfer se corrompa de esta manera.

Si alguien tiene alguna idea de lo que podría causar esto, se lo agradecería enormemente.

ACTUALIZAR

Así que decidí dibujar todo el rango de resultados FFT en lugar de la mitad. Mostró algo extraño. No estoy seguro de FFT pero pensé que la transformación de Fourier debería dar un resultado que se refleje alrededor del medio. Este ciertamente no es el caso aquí.

La imagen está en escala lineal, por lo que la mitad exacta de la imagen es el punto medio del resultado de la FFT. Abajo es el primero y arriba es el último.

Estaba tocando una onda sinusoidal de 10 kHz que da las dos líneas horizontales allí, pero la parte superior está más allá de mí. También parece que las líneas se reflejan alrededor de la parte inferior de la imagen, lo que también me parece extraño.

ACTUALIZACIÓN 2

Así que aumenté el tamaño de FFT de 4096 a 8192 y lo intenté de nuevo. Esta es la salida en la que me metí con la frecuencia sinusoidal.

Parece que el resultado se refleja dos veces. Una vez en el medio y luego otra vez en las mitades superior e inferior. Y las enormes líneas ahora se han ido ... Y parece que las líneas solo aparecen en la mitad inferior ahora.

Después de algunas pruebas adicionales con diferentes longitudes de FFT, parece que las líneas son completamente aleatorias en esa cuenta.

ACTUALIZACIÓN 3

He hecho algunas pruebas con muchas cosas. Lo último que agregué fue la superposición de muestras, de modo que reutilice la última mitad de la matriz de muestras al comienzo de la próxima FFT. En las ventanas de Hamming y Hann, me ofrece intensidades masivas (como en la segunda imagen que publiqué) pero no con BlackmannHarris. Al deshabilitar la superposición, se eliminan los errores más grandes en cada función de la ventana. Los errores más pequeños, como en la imagen superior, aún permanecen en la ventana BH. Todavía no tengo idea de por qué aparecen esas líneas.

Mi formulario actual permite controlar qué función de ventana usar (de las tres mencionadas anteriormente), superposición (activar / desactivar) y múltiples opciones de dibujo diferentes. Esto me permite comparar todos los efectos de las partes afectadas cuando se cambia.

Seguiré investigando (estoy bastante seguro de que he cometido un error en algún momento), ¡pero las buenas sugerencias son más que bienvenidas!

Respuestas a la pregunta(1)

Su respuesta a la pregunta