Entfernen von Knistern und Rauschen

Funktionsweise des Wavepurity Declick-Filters

Das hier vorgestellte Verfahren ist durch das Trademark WavePurityT geschützt
und wurde von Ulf Schönherr speziell für die Software WavePurity entwickelt.

Das im folgenden beschriebene Verfahren ist ab Version WavePurity 3.00 realisiert.

So schön unsere alten heißgeliebten Schallplatten auch sein mögen, Nostalgie mag hier sicher auch eine Rolle spielen, eines nervt sicherlich jedermann: Im Laufe der Jahre ist man das eine oder andere mal beim Auflegen des Tonabnehmers abgerutscht und die Nadel hat Ihre unverwechselbaren Spuren hinterlassen. Unser menschliches Ohr ist sehr sensibel gegen Störgeräusche. Während die neuen Kompressionsverfahren wie MP3 die Schwächen des menschlichen Ohres durch Psycho-Akustische Modelle ausnutzen, zeichnet sich unser Ohr bei der Wahrnehmung von Knistern und Knacken durch äußerste Präzision aus. Auch dumpfes Knacken und Rumpeln nehmen wir ganz gut wahr. Besonders an leisen Musikstellen hat die Abtastnadel des Plattenspielers ganze Arbeit geleistet.

WavePurity hat nun - wie viele andere Programme auch - den Kampf gegen Clicks und Knackgeräusche aufgenommen. Was sich so leicht daher sagt, ist in Wirklichkeit eine der kompliziertesten Aufgaben der digitalen Audio-Signalverarbeitung. Besonders an Stellen mit mittlerer Lautstärke ist es extrem schwierig, Clicks innerhalb der normalen Signalanteile zu erkennen. Und genauso schwierig ist es dann, diese zu eliminieren, ohne daß man jetzt die Seiteneffekte dieser Reparatur anstelle des nicht mehr vorhandenen Clicks hört. Sie sind im Irrtum, wenn Sie glauben, man könnte einfach eine Linie von A nach B ziehen (A und B sind Start und Stop des Clicks) und so den Click entfernen. Das geht zwar, aber das klingt hinterher meistens schlimmer - von den fehlenden Signalanteilen mal ganz abgesehen.

Da unser Ohr "spektral" hört, also Tiefen, mittlere Töne und Höhen gut voneinander unterscheiden kann, reagiert es besonders empfindlich auf eine kurzzeitige Störung im gesamten Frequenzbereich. Und genau dieser bösartige Effekt wird von Clicks erzeugt. Diejenigen Leser, die sich mit Signaltheorie auskennen, werden wissen, daß ein kurzer Impuls (nichts anderes ist ein Click) eine nahezu gleichmäßig auf den gesamten Frequenzbereich verteilte Störung erzeugt. Man spricht dabei von einem sogenannten Dirac-Stoß. Dieser erzeugt idealerweise eine horizontale Linie im Frequenzspektrum, d.h. alle Frequenzanteile erhalten kurzzeitig die gleichen Energieanteile. Das dadurch erzeugte Geräusch empfinden wir meistens als unangenehm. Wenn Sie z.B. gerade Radio hören und jemand in der Nähe den Staubsauger abschaltet, dann erzeugt, z.B. die schlagartige Änderung des Magnetfeldes im Motor des Staubsaugers einen kurzen Impuls, der (bei schlechtem Radioempfang) einen "Knackser" in Ihrem Radio erzeugt. Das ist vom Prinzip das gleiche Phänomen.

Schritt 1: Die Erkennung von Clicks
Die Tatsache, daß wir wissen, wie ein Impuls "spektral" aussieht, können wir nun zu seiner Erkennung nutzen. Genau das macht auch WavePurity. Es analysiert in kleinen Schritten das Signal des Musikstücks im Spektralbereich (Frequenzen). Stellt sich kurzzeitig eine Überhöhung gegenüber dem normalen Verlauf bei der Mehrzahl aller Frequenzen (Wellenlängen) ein, dann ist ein Click gefunden.

Schritt 2: Die Reparatur von Clicks
Hat der Algorithmus zur Erkennung von Clicks eine Stelle gefunden, dann grenzt er die Position des Clicks ein. Die Start- und Stopposition übergibt er an den Reparatur-Algorithmus. Dieser hat jetzt die schwierige Aufgabe, das Click-Signal vom normalen Signal zu trennen und dann die Störung zu entfernen. Das ist leichter gesagt als getan. WavePurity geht dabei wie folgt vor:

  • Die Störstelle wird zentral in einem Signalpuffer angeordnet. Dieser Signalpuffer hat 2N Samples. Damit kann er direkt an einen FFT-Algorithmus übergeben werden.
  • Es wird jetzt eine FFT (Fast-Fourier-Transformation) gerechnet. Dabei entsteht ein erstes Frequenzspektrum, welches beides, das Signal und die Störung als Überlagerung enthält. Der Algorithmus merkt sich Spektrum.
  • Jetzt werden alle Signalanteile links und rechts der Störstelle ausgeblendet und erneut eine FFT gerechnet. Ergebnis ist ein Frequenzspektrum, welches nur die Störung enthält.
  • Nun zieht man das Störspektrum vom Gesamtspektrum ab
  • Das Ergebnis wird über inverse FFT zurück in den Zeitbereich (Samples) transformiert. Das dabei entstandene Signal ist vom Click befreit.

Ein äußerst angenehmer Seiteneffekt dieser FFT-Rücktransformation ist, daß in der mittleren eliminierten Click-Stelle die ursprünglichen Signalanteile durch die Sinus- und Kosinuswerte der FFT nachgebildet werden. Sprich, liegt links und rechts von der Reparaturstelle gerade ein bestimmter Ton (Frequenz) an, dann wird dieser im reparierten Mittelbereich nachgebildet. So entstehen keine "Aussetzer" durch das Reparieren.

Ganz so einfach, wie die Schritte hier beschrieben sind, ist es in Wirklichkeit natürlich nicht. Zum Beispiel sind eine Menge Software-Tricks, wie ein sanftes Überblenden zwischen Original und Reparatursignal, notwendig. Außerdem hat es sich als vorteilhaft erwiesen, vorher das Spektrum durch eine Slope-Offset-Korrektur in die waagerechte Position zu kippen, bevor die Reparatur erfolgt. Dadurch werden Gleichspannungssignalanteile des aktuellen Ausschnittes kompensiert. Drittens ist es immens wichtig, die unteren tiefen Frequenzen bei der Reparatur etwas gesondert zu behandeln. Dadurch bleibt die grundlegende niederfrequente Signalform bei der Reparatur exakt erhalten.

Getrennte Behandlung von Clicks und großen dumpfen Knackern (Pops)
Alle Audio-Programme - auch WavePurity - haben große Schwierigkeiten bei der Erkennung von großen dumpfen Knackgeräuschen, die z.B. entstehen, wenn die Nadel einen "Grand Canyon" beim Abrutschen auf der Schallplatte hinterlassen hat. Beim Abspielen der Platte macht dann die Nadel einen regelrechten Luftsprung, wobei es sogar vorkommen kann, jeder kennt das, daß sie in einer ganz anderen Rille wieder landet. Solche langen niederfrequenten Störungen können nur mit einem anderen Algorithmus erkannt werden. Zur späteren Reparatur setzt WavePurity dann das gleiche Reparatur-Modul (allerdings mit anderer Puffergröße) ein.

Prinzipiell gilt, daß die Algorithmen zur Erkennung dumpfer Knackgeräusche sich sehr oft "täuschen", sprich sie erkennen ausversehen normale Musikanteile wie Bass-Schläge als Knackgeräusche. Beim Reparaieren wird natürlich dann der Bass-Schlag eliminiert. Sie sollten deshalb den Knack-Filter nur dann einsetzen, wenn Sie sich sicher sind, daß Ihre Schallplatte wirklich dumpfe Knackgeräusche hat. Knistern und Klicken dagegen sollten Sie stets eliminieren lassen. Das Clickfilter erkennt teilweise auch kleinste Unregelmäßigkeiten und korrigiert diese Stellen.

Wie stellt man die Click-Filter und Knack-Filter ein?
Es gibt eigentlich nur einen Parameter, nämlich einen Schwellwert für die Erkennungsgrenze. Wenn Sie das Gefühl haben, das die Knack- und Clickfilter zu viele Stellen erkennen, sollten Sie den Schwellwert erhöhen. Leider gibt es kein Universalkonzept für die Schwellwerte. Sie sind stark von der Musik und der Qualität der Platten abhängig und müssen für jede Schallplatte angepaßt werden. Mit einem Wert 10 erzielen Sie dabei meistens akzeptable Ergebnisse.

Bitte etwas Geduld!
Signalanalyse im Frequenzbereich ist eine sehr zeitaufwendige Sache und bringt Ihre CPU wirklich zum Kochen. Aber man kann nun mal nicht zaubern. Entweder man analysiert gründlich, und dann dauert's halt etwas, oder man läßt es lieber. WavePurity versucht gründlich zu sein. Das bedeutet aber auch, daß Sie Rechenzeiten, die bis zum 5-10 fachen der Dauer eines Musiktitels (je nach CPU) einkalkulieren müssen. Aber bedenken Sie, diesen Aufwand betreiben Sie einmal in Ihrem Leben für eine Schallplatte - und Qualität sollte das wichtigere Kriterium sein. Schließlich kann WavePurity die Arbeit ja auch alleine über Nacht erledigen.

Dieser Artikel wurde verfasst von Ulf Schönherr

« zurück zur Übersicht