Po pierwsze, jestem nowy w DSP i nie mam w tym prawdziwego wykształcenia, ale rozwijam program do wizualizacji dźwięku i reprezentuję tablicę FFT jako pionowe paski jak w typowej wizualizacji widma częstotliwości.
Problem, który miałem, polegał na tym, że wartości sygnału audio zmieniały się zbyt szybko, aby uzyskać przyjemny efekt wizualny, jeśli bezpośrednio zmapowałem wartości FFT:
Dlatego stosuję prostą funkcję do wartości, aby „wygładzić” wynik:
// pseudo-code
delta = fftValue - smoothedFftValue;
smoothedFftValue += delta * 0.2;
// 0.2 is arbitrary - the lower the number, the more "smoothing"
Innymi słowy, pobieram bieżącą wartość i porównuję ją z ostatnią, a następnie dodam ułamek tej delty do ostatniej wartości. Wynik wygląda następująco:
Więc moje pytanie brzmi:
Czy jest to ugruntowany wzorzec lub funkcja, dla której termin już istnieje? Czy tak, jaki jest termin? Używam „wygładzania” powyżej, ale mam świadomość, że oznacza to coś bardzo specyficznego w DSP i może nie być poprawne. Poza tym wydawało się, że może być związane z kopertą objętości, ale też nie do końca tym samym.
Czy istnieją lepsze podejścia lub dalsze badania nad rozwiązaniami tego, na które powinienem spojrzeć?
Dziękuję za poświęcony czas i przeprosiny, jeśli jest to głupie pytanie (czytając inne dyskusje tutaj, zdaję sobie sprawę, że moja wiedza jest znacznie niższa niż wydaje się średnia).
źródło
Odpowiedzi:
Zaimplementowałeś jednobiegunowy filtr dolnoprzepustowy, czasami nazywany nieszczelnym integratorem . Twój sygnał ma równanie różnicy:
źródło
Ostrzeżenie: dołącz trochę historii, stare gazety (uwielbiam je) i karty dziurkowania!
Pierwsza powyższa wersja jest mniej naturalna, ale unika jednego pomnożenia i jest w jakiś sposób bardziej wydajna. Oba wzory dają liniowy , przyczynowy i nieskończony filtr odpowiedzi impulsowej . Historia wraca do i przez Poissona, Kolmogorov-Zurbenko Adaptive Filters , Brown (Prognozy statystyczne dla kontroli zapasów. McGraw-Hill, 1959), Holt (1957) i Winters (1960). Jest zaimplementowany jako rekurencyjny schemat filtrowania znany pod różnymi nazwami w literaturze:
„Wykładniczy” w nazwie jest związany z odpowiedzią impulsową z postępem geometrycznym, który próbkuje rozkład wykładniczy: .h [ n ] = ( 1 - a ) u [ n ] an
Dla przypomnienia historycznego Robert G. Brown i Arthur D. Little zastosowali tę metodę w 1956 r. W wygładzaniu wykładniczym do przewidywania popytu , najwyraźniej dla przemysłu tytoniowego. Nieco historii i wyjaśnienia można znaleźć w Holt-Winters Forecasting for Dummies (lub deweloperów) - Część I . Peter Zehna przedstawia krytyczną recenzję w kilku uwagach na temat wygładzania wykładniczego , 1966. Rozdział R. Browna w Encyklopedii badań operacyjnych i nauk o zarządzaniu (książki Google) pochodzi z 1944 r., Czytelne strony zostały odtworzone tutaj:
Wiele metod rozszerza to wygładzanie, które nie jest ważne, gdy dane mają tendencję lub sezonowość. Niektóre z nich znane są jako podwójne lub potrójne wygładzanie wykładnicze oraz filtry Holta-Wintersa .
Możesz także sprawdzić: Jak działa ten „prosty filtr”?
źródło
Normalnym podejściem dla mierników audio jest „detektor strat szczytowych”.
Reaguje natychmiast na każdy nowy, szczytowy lub przejściowy sygnał, ale utrzymuje się przez chwilę, dzięki czemu tworzy znacznie mniej gorączkowy obraz. Rozpad powinien być stałą między 0 a 1. Kontroluje on, jak szybko skończą się słupki, przy czym 0 oznacza natychmiastowe, a 1 nigdy.
źródło
new_value
jeśli jest większy niżcurrent_value * decay
Wokół kręgów wykonawców DoD w USA ten konkretny filtr jest często nazywany „filtrem alfa”, ponieważ można go scharakteryzować za pomocą jednego parametru, który tradycyjnie nazywa się „alfa”.
Jest on bezpośrednio analogiczny do analogowego filtra dolnoprzepustowego RC.
Są niezwykle proste, mają poważne ograniczenia, ale mają niezaprzeczalną przewagę nad bardziej złożonymi (i skomplikowanymi!) Filtrami, które, jeśli unikniesz obszarów problemowych, wykonają zadanie.
źródło
Jak wspomniano w innych odpowiedziach, jest to filtr rekurencyjny jednobiegunowy, rodzaj filtra o nieskończonej odpowiedzi impulsowej (IIR).
Świetnym źródłem informacji na temat tej i innych funkcji DSP jest Steven W. Smith's The Scientist and Engineer Guide to Digital Signal Processing :
źródło