Wynik NAudio fft daje intensywność na wszystkich częstotliwościach C #

Mam działającą implementację nagrywania pętli zwrotnej wasapi NAudio i FFT danych. Większość danych, które otrzymuję, jest taka, jaka powinna być, ale co jakiś czas (odstępy od 10 sekund do minut) pokazuje amplitudę na prawie wszystkich częstotliwościach.

Zasadniczo obraz toczy się od prawej do lewej z czasem i częstotliwościami w skali logarytmicznej od najniższych częstotliwości na dole. Linie są błędami. O ile wiem, nie powinno ich tam być.

Dostaję bufor audio i wysyłam próbki do agregatora (stosuje okno Hamminga), które implementuje NAudio FFT. Sprawdziłem dane (wynik FFT) zanim zmodyfikuję je w jakikolwiek sposób (obraz nie pochodzi z surowego wyjścia FFT, ale jest skalowany desibel) potwierdzając, że wynik FFT daje te linie. Mógłbym również wskazać, że obraz jest modyfikowany za pomocą LockBits, więc pomyślałem, że mam coś złego w logice, ale dlatego sprawdziłem dane wyjściowe FFT, które pokazują ten sam problem.

Cóż, mogę się mylić, a problem może być gdzieś, co powiedziałem, że nie jest, ale tak naprawdę wydaje się, że pochodzi on z danych bufora FFT OR (dane lub agregacja próbek). W jakiś sposób wątpię, aby sam bufor był uszkodzony w ten sposób.

Gdyby ktoś miał jakiś pomysł, co mogłoby to spowodować, byłbym bardzo wdzięczny!

AKTUALIZACJA

Postanowiłem więc narysować cały zakres wyników FFT, a nie połowę. To pokazało coś dziwnego. Nie jestem pewien FFT, ale sądziłem, że transformacja Fouriera powinna dać wynik, który jest odzwierciedlony w środku. Z pewnością tak nie jest.

Obraz jest w skali liniowej, więc dokładny środek obrazu stanowi środkowy punkt wyniku FFT. Dół jest pierwszy, a górny ostatni.

Grałem sinusoidę 10 kHz, która daje dwie poziome linie, ale górna część jest poza mną. Wydaje się również, że linie są odzwierciedlone wokół dolnej ćwiartki obrazu, więc wydaje mi się to dziwne.

AKTUALIZACJA 2

Zwiększyłem więc rozmiar FFT z 4096 do 8192 i spróbowałem ponownie. To jest wyjście, w którym bawię się częstotliwością sinusoidalną.

Wydawałoby się, że wynik jest odzwierciedlany dwukrotnie. Raz w środku, a następnie ponownie w górnej i dolnej połowie. Ogromne linie zniknęły… I wydaje się, że linie pojawiają się teraz tylko na dolnej połowie.

Po dalszych testach z różnymi długościami FFT wydaje się, że linie są całkowicie losowe na tym koncie.

AKTUALIZACJA 3

Zrobiłem kilka testów z wieloma rzeczami. Ostatnią rzeczą, jaką dodałem, było nakładanie się próbek, dzięki czemu ponownie wykorzystałem ostatnią połowę tablicy próbek na początku następnej FFT. Na oknach Hamminga i Hanna daje mi to ogromną intensywność (podobnie jak na drugim zdjęciu, które zamieściłem), ale nie w BlackmannHarris. Wyłączenie nakładania usuwa największe błędy na każdej funkcji okna. Mniejsze błędy, takie jak na górnym zdjęciu, pozostają nawet przy oknie BH. Nadal nie mam pojęcia, dlaczego pojawiają się te linie.

Moja aktualna forma pozwala kontrolować, która funkcja okna ma być używana (z trzech wcześniej wymienionych), nakładanie się (włączanie / wyłączanie) i wiele różnych opcji rysowania. Dzięki temu mogę porównać wszystkie efekty, które wpływają na zmianę stron.

Zbadam dalej (jestem pewien, że w pewnym momencie popełniłem błąd), ale dobre sugestie są więcej niż mile widziane!

questionAnswers(1)

yourAnswerToTheQuestion