Erstens bin ich neu in DSP und habe keine wirkliche Ausbildung darin, aber ich entwickle ein Audiovisualisierungsprogramm und repräsentiere ein FFT-Array als vertikale Balken wie in einer typischen Frequenzspektrumsvisualisierung.
Das Problem, das ich hatte, war, dass sich die Audiosignalwerte zu schnell änderten, um eine ansprechende visuelle Ausgabe zu erzielen, wenn ich nur die FFT-Werte direkt abbildete:
Deshalb wende ich eine einfache Funktion auf die Werte an, um das Ergebnis zu "glätten":
// pseudo-code
delta = fftValue - smoothedFftValue;
smoothedFftValue += delta * 0.2;
// 0.2 is arbitrary - the lower the number, the more "smoothing"
Mit anderen Worten, ich nehme den aktuellen Wert und vergleiche ihn mit dem letzten und addiere dann einen Bruchteil dieses Deltas zum letzten Wert. Das Ergebnis sieht so aus:
Meine Frage lautet also:
Ist dies ein etabliertes Muster oder eine Funktion, für die ein Begriff bereits existiert? Ist das so, was ist der Begriff? Ich verwende oben "Glätten", aber mir ist bewusst, dass dies etwas sehr Spezifisches in DSP bedeutet und möglicherweise nicht korrekt ist. Davon abgesehen schien es vielleicht mit einer Volumenhülle zu tun zu haben, aber auch nicht ganz dasselbe.
Gibt es bessere Ansätze oder weiterführende Untersuchungen zu Lösungen, die ich prüfen sollte?
Vielen Dank für Ihre Zeit und Ihre Entschuldigung, falls dies eine blöde Frage ist (ich bin mir bewusst, dass meine Kenntnisse viel geringer sind als der Durchschnitt, der zu sein scheint).
quelle
Antworten:
Was Sie implementiert haben, ist ein einpoliger Tiefpassfilter, manchmal auch als Leaky Integrator bezeichnet . Ihr Signal hat die Differenzgleichung:
quelle
Achtung: Dazu gehören Geschichte, alte Papiere (ich liebe sie) und Lochkarten!
Die erste obige Version ist weniger natürlich, vermeidet jedoch eine Multiplikation und ist irgendwie effizienter. Beide Formeln ergeben einen linearen , kausalen und unendlichen Impulsantwortfilter . Die Geschichte geht zurück auf Poisson, Kolmogorov-Zurbenko Adaptive Filter , Brown (Statistical Forecasting for Inventory Control, McGraw-Hill, 1959), Holt (1957) und Winters (1960). Es wird als rekursives Filterungsschema implementiert, das in der Literatur unter verschiedenen Namen bekannt ist:
Für eine historische Bemerkung verwendeten Robert G. Brown und Arthur D. Little diese Methode 1956 in Exponential Smoothing zur Vorhersage der Nachfrage , anscheinend für die Tabakindustrie. Eine wenig mehr Geschichte und Erklärungen finden Sie in Teil I - Holt-Winter Forecasting for Dummies (oder Entwickler) . Peter Zehna gibt einen kritischen Überblick in Einige Bemerkungen zur exponentiellen Glättung , 1966. Ein Kapitel von R. Brown in der Encyclopedia of Operations Research und Management Science (Google books) geht auf das Jahr 1944 zurück. Die lesbaren Seiten sind hier wiedergegeben:
Viele Methoden erweitern diese Glättung, die nicht gültig ist, wenn die Daten einen Trend oder eine Saisonalität aufweisen. Einige davon sind als doppelt oder dreifach exponentielle Glättung und Holt-Winters-Filter bekannt .
Sie können auch überprüfen: Wie funktioniert dieser "einfache Filter"?
quelle
Der normale Ansatz für Audiometer ist ein "verlustbehafteter Spitzenwertdetektor".
Dies reagiert sofort auf neue Signale, Spitzen oder Transienten im Signal, bleibt jedoch eine Weile bestehen, sodass ein viel weniger hektisches Bild entsteht. Der Zerfall sollte eine Konstante zwischen 0 und 1 sein. Er steuert, wie schnell die Balken fertig sind, wobei 0 augenblicklich und 1 niemals ist.
quelle
new_value
wenn es größer ist alscurrent_value * decay
Um US DoD-Auftragnehmerkreise herum wird dieser bestimmte Filter häufig als "Alpha-Filter" bezeichnet, da er mit einem Parameter charakterisiert werden kann, der traditionell als "Alpha" bezeichnet wird.
Es ist direkt analog zu einem einfachen analogen RC-Tiefpassfilter.
Sie sind extrem einfach, haben schwerwiegende Einschränkungen, aber sie haben den unbestreitbaren Vorteil gegenüber komplexeren (und komplizierteren!) Filtern, die, wenn Sie sich von ihren Problembereichen fernhalten, die Arbeit erledigen.
quelle
Wie bereits in anderen Antworten erwähnt, handelt es sich um ein einpoliges rekursives Filter, eine Art Filter mit unendlicher Impulsantwort (Infinite Impulse Response, IIR).
Eine großartige Informationsquelle zu dieser und anderen DSP-Funktionen ist Steven W. Smiths Handbuch für Wissenschaftler und Ingenieure zur digitalen Signalverarbeitung :
quelle