Warum die schnelle Fourier-Transformation zur Rauschunterdrückung anstelle eines klassischen elektronischen Filters verwenden?

17

Ich möchte wissen, wie man Umgebungsgeräusche aus einer Sprachaufnahme entfernt.

Ich habe einige Nachforschungen angestellt und festgestellt, dass die meisten vorgeschlagenen Methoden die schnelle Fourier-Transformation verwenden. Aber warum können Sie keine klassischen elektronischen Filter verwenden, um die Störfrequenzen zu entfernen? Warum sich die Mühe machen, eine FFT zu machen?

Jazis
quelle
Gibt denn fft eine bessere Ausgabequalität ???
Solar Mike
4
Vergleichen Sie den Preis eines 5GS / s DSP-Systems mit dem einer Reihe von Indikatoren und Kappen ...
PlasmaHH
1
Vielleicht können Sie mit einem FFT komplexere Filterungen durchführen. "Klassische elektronische Filter" entfernen einfach alle Frequenzen in einem bestimmten Bereich. Hier ist auch Ihr Studentenausweis, ein Geschenk von mir an Sie.
Andrew Pikul
1
Ich habe 2 Probleme mit Ihrer Frage: (1) Was meinen Sie mit "klassischer elektronischer Filter"? (2) Die Tatsache, dass etwas auf eine Art und Weise (FFT) gemacht wird, bedeutet NICHT, dass es NICHT auf eine andere Art und Weise gemacht werden kann (Filter); Es kann nur einige Nachteile geben, es andersherum zu machen. Sie gehen jedoch davon aus, dass es nicht möglich ist, mit einem klassischen elektronischen Filter (was auch immer Sie damit meinen) zu arbeiten, was wahrscheinlich falsch ist.
Curd
Was ist das Format Ihrer Sprachaufzeichnung (analog oder digital)? Ist Latenz ein Problem (live oder nachträglich)? Wie lange dauert die Aufnahme (ein Song vs. Tage der Aufnahme)?
copper.hat

Antworten:

25

Ich möchte wissen, wie man Umgebungsgeräusche aus einer Sprachaufnahme entfernt.

Nun, es ist jetzt digital gespeichert, oder? Haben Sie vor, Ihr Mikrofon nach einem analogen Filter neben den Lautsprecher zu stellen, um es neu aufzunehmen?

Genug rumgespielt, ich meine es ernst.


Damit ein Filter in einem kleineren Frequenzbereich stärker gedämpft wird, dh die Frequenzgangkurve vertikaler wird, müssen Sie nur die Filterreihenfolge erhöhen.

Das ist in Matlab einigermaßen einfach. Es ist auch etwas, was machbar ist, um eine Nachbearbeitung durchzuführen. Es geht auch um die Wiederholbarkeit: Wenn Sie den Filter heute an einem sonnigen Tag anwenden, erwarten Sie, dass er bei Regen genauso funktioniert wie morgen. Sie erwarten, dass es genauso funktioniert , oder?

In analogen Schaltungen haben Sie all diese "5% Widerstand", "1% Kondensator" und alle anderen Dinge. Wenn Sie also etwas genau machen möchten, müssen Sie die Schaltung auf jeden Fall danach so trimmen, dass sie perfekt zu Ihrem gewünschten Filter passt. Wenn Sie die Filterreihenfolge erhöhen möchten ... dann leider ... wird der Filter physikalisch so viel größer. Anstatt die Größe einer Kreditkarte in Anspruch zu nehmen, nimmt sie die Größe von ein, ich weiß nicht, hängt von der Filterreihenfolge ab und davon, womit Sie einverstanden sind.

In Bezug auf die Wiederholbarkeit, heute etwas tun ... warm ... morgen ... kälter ... die Widerstände werden sich so geringfügig ändern, der Frequenzgang wird sich ändern, ein paar Hz dort, einige dort, je mehr Komponenten Sie in Ihren Schaltkreisen haben ist es wahrscheinlicher, dass Ihre Komponenten ihre Werte ändern. Und dann haben Sie Feuchtigkeit, oxidierend ...

Und hier ist die Pointe, die ich als erstes hätte sagen sollen: Du kannst sie nicht wirklich nachbearbeiten, es sei denn, du hast Kassetten. Ich bin mir nicht 100% sicher, welches analoge Musikmedium zum einfachen Aufnehmen / Löschen verwendet wird. LP-Discs wären ein Albtraum ...

Und vergessen wir nicht den Preis. Eines ist Software, wenn Sie es selbst schreiben, ist es im Wesentlichen kostenlos, das andere erfordert Komponenten, physikalische Teile.

Aber denken Sie nicht, dass analoge Filter schlecht sind, sie haben ihre Verwendung gefunden, wie zum Beispiel das Entfernen von unangenehmen Oberschwingungen in großen Gleichstrommotoren oder die Herstellung von ultra-leisen Schrittmotoren für 3D-Drucker, indem der Strom geglättet wird. Und Tonnen von anderen Verwendungen. - Auch wenn Sie es mit einem analogen Filter lösen würden, würde niemand denken, dass es eine schlechte Lösung wäre.

Ich glaube, ich antworte indirekt, warum FFT ein besserer Weg ist, um es nachträglich zu bearbeiten. Das Fazit ist, dass es viel billiger ist. Sie können auch einfach einen Sperrfilter anwenden, wenn Sie wissen, bei welcher Frequenz das Rauschen auftritt. Oder ein breiterer, alias Bandsperrfilter.

Und als letztes möchte ich hinzufügen ... woaw, diese Antwort ist so lang, es tut mir leid. Aber wenn Sie einen analogen Filter verwenden und ... Ihre Berechnungen durcheinander bringen und dann denken, dass alles in Ordnung und in Ordnung ist, und ihn in einem schwerwiegenden Fall einsetzen, beispielsweise bei einem Interview mit dem schwedischen König (Knugen). Und Sie haben die Dimensionierung eines Kondensators durcheinander gebracht, anstatt 16-kHz-Rauschen zu filtern, filtern Sie 4-kHz- "Rauschen" heraus. Wenn Sie stattdessen digital damit umgehen, müssen Sie nur einige Variablen ändern. Sie müssen keine weiteren Komponenten auslöten -> löten. Auch das Interview ist ruiniert.

Harry Svensson
quelle
4
Hans Majonnäs Honung Carl XVI Gustaf
Rohr
@pipe Tackar, det behövdes. (Danke, ich brauchte das.)
Harry Svensson
Folgefrage (da diese Antwort zu stark von einer wörtlichen Definition von Analog abhängt). Warum sollten Sie FFT wählen, um Rauschen anstelle von klassischen Polynomfiltern zu filtern?
Slebetman
@slebetman erwarte nicht, dass ich darauf antworte.
Harry Svensson
Das war eine ziemlich solide Antwort! Danke Bruder, und danke allen anderen, die geantwortet haben, ich hatte nicht so viel Hilfe erwartet! Ich werde in diesem Forum sicherlich weitere Fragen stellen. Danke nochmal!
Jazis
7

Aber warum können Sie keine klassischen elektronischen Filter verwenden, um die Störfrequenzen zu entfernen?

Wer sagt, dass Sie nicht können? So wurde das in den Tagen vor der digitalen Signalverarbeitung gemacht. Das Problem ist, dass das Filtern von Rauschen immer ein Kompromiss ist, wenn Sie Ihr gewünschtes Signal (Sprache, Musik) unangetastet lassen und gleichzeitig das Rauschen verringern.

Für Kassetten und andere analoge Tonbandaufzeichnungssysteme wie DNL und Dolby wurden Filter verwendet, die nur dann filtern, wenn das Signal schwach ist, was bedeutet, dass das Rauschen hörbarer ist. Wenn das Signal dann stärker ist, wird der Filter ausgeblendet. Siehe: Wikipedia-Artikel zur Lärmminderung

Die Sprache kann auf ein schmales Frequenzband wie 300 Hz bis 3 kHz begrenzt werden, während sie immer noch vollkommen verständlich ist. Sie könnten ein einfaches analoges Filter für dieses Band erstellen, dies würde jedoch die Unterdrückung des Rauschens begrenzen. Um Frequenzen außerhalb dieses Bandes effektiver herauszufiltern, wäre ein komplexes analoges Filter erforderlich. Solche Filter sind schwierig zu konstruieren, zu bauen und herzustellen.

Hier kommt die digitale Signalverarbeitung ins Spiel. Im digitalen Bereich ist es viel einfacher, komplexe Filter mit vielen Polen und Nullen zu implementieren. Da der Ort (im Frequenzbereich) dieser Pole und Nullen mit dem Takt des DSP (Digital Signal Processor) verknüpft ist, der ein genauer (Quarz-) Takt ist, ist das Filter im Vergleich zu einer analogen Implementierung viel genauer .

Bimpelrekkie
quelle
+1 für die Erwähnung des Kompromisses zwischen dem Beibehalten von Nutzsignalen und dem Entfernen unerwünschter Signale. Das Problem ist, dass Sprache und Rauschen die gleichen Frequenzen belegen, sodass ein FFT-Filter das Grundrauschen entfernen kann, dh nach Analyse der Rauschamplitude bei jeder Frequenz ohne Sprache , das entfernt werden kann, wo Sprache vorhanden ist. So funktionieren FFT-Rauschfilter in Audacity usw. usw.
Reverse Engineer
Ich bin nicht sicher, was es besonders schwierig macht, analoge Filter zu entwerfen und zu bauen. Grundsätzlich benötigen Sie nur ein oder zwei Operationsverstärker und einige Widerstände und Kondensatoren. Und da Opamps normalerweise in doppelten Paketen geliefert werden, benötigen Sie nur einen Chip. Normalerweise verwende ich analoge Filter, um Tiefpassfilterung durchzuführen und sicherzustellen, dass das Signal nur ein geringes Alias-Hochfrequenzsignal enthält. Sie können nicht davon mit FFT danach loszuwerden. Andererseits ist es kein Problem, FFT-Bandpassfilter zu verwenden, wenn Sie eine saubere "Aufnahme" haben, die verarbeitet werden soll.
Barleyman
@Barleyman Ich bin nicht sicher, was es besonders schwierig macht, analoge Filter zu entwerfen und zu bauen. Ich bezog mich auf Filter höherer Ordnung wie 4. Ordnung und höher. Ich bin damit einverstanden, dass ein paar Opamps. Widerstände und Kondensatoren können einen Filter nahezu beliebiger Ordnung erzeugen, aber haben Sie schon versucht, einen zu entwerfen? Ich habe, OK, einen Simulator, aber dann stoßen Sie bereits auf handelsübliche Kondensatoren, die nicht genau genug sind. Bei höheren Aufträgen wird der genaue Wert der Komponenten immer wichtiger.
Bimpelrekkie
Auch Aliasing ist kein Problem mehr, da wir jetzt Sigma-Delta-ADCs und -DACs mit sehr hohen Abtastfrequenzen haben, sodass nur ein einfacher RC erforderlich ist.
Bimpelrekkie
@Bimpelrekkie Ich habe mehrere entworfen, nichts dagegen in diesen Tagen. Früher verwendeten Sie ein Buch mit einigen vorberechneten Parameteroptionen, mit denen Sie einige Zeit verbringen würden, um vernünftige Komponentenwerte zu erhalten. Genauigkeit ist kein großes Problem, wenn Sie nicht versuchen, zu selektiv zu sein. RC erledigt den Job nicht wirklich, wenn Sie beispielsweise Audioaufnahmen machen möchten. Bei -20 dB / Dekade müsste der Filter auf 2,2 kHz eingestellt werden, um eine Art Filter bei der Nyquist-Frequenz zu erhalten. Cherbychew 3. Ordnung würde bei 12kHz fc besser abschneiden. 5. Ordnung würde Sie auf -46dB bringen, was "gut genug" ist
Barleyman
5

Nun, der erste Schritt, um zu verstehen, warum wir FFT brauchen, ist zu verstehen, wie digitale Filterung funktioniert.

Sie haben also im Grunde eine Struktur wie ein Schieberegister mit einer Anzahl von Speicherelementen, einem Eingang und einem Ausgang. Ein Abtastwert wird in den Eingang eingegeben, durch das Register verschoben und zum Ausgang verschoben. In jeder Stufe des Registers wird es mit einer Zahl multipliziert, die als Filterkoeffizient bezeichnet wird.

Diese Idee funktioniert in Ordnung, wenn Sie ein schnelles Register haben, das schnelle Multiplikationen ausführt, und wenn die Samples langsam nacheinander eingehen.

Im wirklichen Leben erhalten Sie stattdessen höchstwahrscheinlich einen Frame, der aus mehreren Samples besteht. Wenn Sie das filtern möchten, falten Sie die Samples mit den Filterkoeffizienten. Das ist dasselbe wie beim vorherigen Ansatz, sieht aber ein bisschen anders aus.

Nun kommt der FFT-Teil. Es stellt sich heraus, dass die numerische Komplexität der Faltung mit der Anzahl der Abtastungen sehr schnell zunimmt. Andererseits ist die FFT am Anfang numerisch kompliziert, aber die Anzahl der erforderlichen Operationen wächst mit der Zunahme der Filterkoeffizienten im Vergleich zur Faltung viel langsamer.

Dies bedeutet, dass es ab einer bestimmten Anzahl von Abtastwerten viel schneller ist, ein Signal mit einer FFT in den Frequenzbereich zu konvertieren, das Signal im Frequenzbereich zu filtern und es dann mit einer IFFT zurück zu konvertieren. Der Trick, den wir verwenden, ist eine der Eigenschaften der Faltung, nämlich, dass die Faltung im Zeitbereich unter bestimmten Umständen als Multiplikation im Frequenzbereich modelliert werden kann.

Wenn also die Anzahl der Filterkoeffizienten ausreichend groß ist, ist die FFT schneller. Das "große" könnte so klein sein wie einhundert oder so.

AndrejaKo
quelle
3
Ich denke, mit "klassischem elektronischen Filter" meinte er einen analogen Filter, keine Faltung.
Jalalipop
1
@jalalipop Könnte sein, aber ich wollte ausdrücklich den FFT-Teil erklären. Zu diesem Zeitpunkt haben wir bereits eine Antwort erhalten, in der erklärt wird, warum wir digitale Filter anstelle von analogen Filtern wünschen.
AndrejaKo
2

FFT-basierte Methoden (Sie müssen immer noch mit Fenster- und Überlappungsadditions- oder Überlappungsverschiebungsmodifikationen arbeiten) haben den Hauptvorteil, dass das Design fest im Frequenzbereich liegt und ein Wiener-Filter oder eine Spektralsubtraktion oder eine Anzahl von Andere Systeme, die sich auf Signalstatistiken und ein Modell stützen, arbeiten grundsätzlich im Frequenzbereich.

Im Gegensatz dazu beruhen die Echokompensation und verschiedene Varianten nicht auf einem Modell des Rauschens, sondern auf einer unvollständigen Aufzeichnung, die in hohem Maße mit dem Rauschen korreliert. Diese werden mit variierenden Filtern (normalerweise FIR) durchgeführt, um eine Rauschschätzung vom Signal zu subtrahieren und die Filter zu aktualisieren, um die Korrelation des verbleibenden Signals zum Rauschkanal minimal zu halten. Für diese Techniken ist FFT nicht allzu nützlich (wenn beträchtliche Verzögerungen des resultierenden Signals und der Filteraktualisierungen zulässig sind, können sie aus Leistungsgründen mit Verzögerung als Komponente in einer Blackbox-FIR verwendet werden, sind aber für sie nicht wirklich nützlich) Fähigkeit zur Darstellung von Frequenzbereichen).


quelle
fest im Frequenzbereich . Wäre kein besonderer Vorteil, wenn dies nicht der Fall wäre, weil Töne und Noten die Grundton- und Oberton-Eigenschaften haben.
Kathreadler
2

Analoge Filter sind leicht zu entwerfen, aber die Einschränkung besteht darin, dass Sie immer wieder physikalische Filterelemente hinzufügen müssen, um eine Bandsperrfilterung für bestimmte Frequenzen zu erzielen. Und Sie müssen die Komponentenwerte anpassen, wenn Sie die Kerben verschieben möchten. Ein einzelner Operationsverstärker kann eine Bandsperrstufe ausführen, sodass Sie für jede gewünschte Stufe einen weiteren Verstärker hinzufügen müssen. Für eine selektivere Kerbe benötigen Sie zwei Verstärker pro Kerbe.

Praktisch gesehen ist es wahrscheinlich am besten, wenn Sie einen Tiefpassfilter 3. Ordnung verwenden, den Sie mit einem einzelnen Operationsverstärker oder einem Tiefpassfilter 5. Ordnung, für den zwei erforderlich sind, verwenden. Verwenden Sie die Tiefpassfilter, um Frequenzen oberhalb der Nyquist-Frequenz (1/2 Abtastfrequenz) mit einem gewissen Spielraum zu dämpfen, und Sie erhalten ein hochwertiges digitales Sample, das Sie nachbearbeiten können. Mit einer solchen sauberen Aufnahme können Sie dann nach Bedarf FFT-Filter anwenden, um Hochpass-, Bandpass- und Bandsperrfilter zu erstellen.

Barleyman
quelle
1

Die lineare zeitinvariante Filterung, die ein "klassisches elektronisches Filter" ausführt, ist nur eine "blöde" Multiplikation im Fourier-Bereich. Die in einer FFT enthaltenen Informationen enthalten jedoch mehr Details als nur die Antwort eines Filters, bei dem es sich lediglich um eine lineare Kombination dieser Komponenten handelt. Mit diesen Informationen können Sie die Datenverarbeitung steuern und an die Daten anpassen. Rauschen hat einige Eigenschaften, die klare Vocals und Musiktöne nicht aufweisen. Beispielsweise ist die Korrelation zwischen Obertönen für Rauschen nicht annähernd gleich wie für Sprache oder Musik.

Wenn wir also Korrelationen zwischen Frequenzkomponenten identifizieren können - dh irgendwie einen "Grundton" finden, können wir die Filterung steuern und an die Daten anpassen.

mathreadler
quelle