Was sind gute Möglichkeiten, um Signalbeschneidungen in einer Aufnahme zu erkennen?


32

Bei einer Aufnahme muss ich feststellen, ob ein Ausschnitt aufgetreten ist.

Kann ich sicher schließen, dass es zu einer Übersteuerung gekommen ist, wenn eine (eine) Probe den maximalen Probenwert erreicht hat, oder sollte ich nach einer Reihe nachfolgender Proben mit maximalem Pegel suchen?

Die Aufzeichnung kann von 16- oder 24-Bit-A / D-Wandlern stammen und in Gleitkommawerte zwischen konvertiert werden . Wenn diese Umwandlung die Form einer Division durch oder , können die negativen Peaks vermutlich etwas niedriger als -1 sein, und Samples mit dem Wert -1 werden nicht abgeschnitten.2 15 - 1 2 23 - 11...121512231

Natürlich kann man immer ein spezielles Signal erzeugen, um den Algorithmus zur Übersteuerungserkennung zu umgehen, aber ich schaue mir Aufzeichnungen von Sprache, Musik, Sinuswellen oder rosa / weißem Rauschen an.


8
Beachten Sie, dass der Clipping-Pegel nicht immer das digitale Maximum ist. Wenn der analoge Schaltkreis (oder sogar die analoge Seite des ADC) einen geringfügig niedrigeren Übersteuerungspegel als Digital Max aufweist, wird er vorzeitig übersteuert. Wenn es analog abschneidet und dann eine Filterung durchläuft, ist es nicht einmal eine gerade Linie. Welche Szenarien müssen Sie erkennen?
Endolith

1
Die Aufnahmen werden mit einem PC-Soundgerät (normalerweise über USB verbunden) gemacht. Meist handelt es sich um Reaktionen auf einen Sweep- oder MLS-Stimulus, mit denen eine Raumimpulsantwort berechnet wird. Ich kontrolliere die Hardware nicht, daher kann das Clipping sogar am Stimulus-Ausgang auftreten. Ich habe früher nicht daran gedacht, aber ich bin froh, dass Sie daran gedacht haben.
Han

Antworten:


30

Ich war gerade dabei, eine Antwort genau wie die von Yoda zu schreiben . Er ist wahrscheinlich der zuverlässigste, aber ich werde eine andere Lösung vorschlagen, damit Sie einige Optionen haben.


Wenn Sie ein Histogramm Ihres Signals erstellen, werden Sie höchstwahrscheinlich je nach Signaltyp eine glocken- oder dreieckartige Form haben. Saubere Signale tendieren dazu, diesem Muster zu folgen. Viele Aufnahmestudios fügen einen "Loudness" -Effekt hinzu, der in der Nähe der Oberseite eine kleine Beule hervorruft, aber dennoch ein wenig weich wirkt. Hier ist ein Beispiel aus einem echten Lied eines bedeutenden Musikers:

Histogramm

Hier ist das Histogramm des Signals, das Yoda in seiner Antwort gibt:

Histogramm ohne Übersteuerung

Und jetzt der Fall, dass sie beschneiden:

Histogramm mit Ausschnitt

Diese Methode kann manchmal getäuscht werden, aber es ist zumindest etwas, das Sie in Ihre Werkzeugtasche werfen sollten, wenn die FFT-Methode für Sie nicht geeignet zu sein scheint oder wenn für Ihre Umgebung zu viele Berechnungen erforderlich sind.


2
Das ist ein verrückter, großartiger Affekt. Sehr interessant.
Kortuk

Ich bin froh, dass Sie diese Methode vorgeschlagen haben. Ich hätte es selbst aufnehmen sollen ...
PearsonArtPhoto

Ich sage das speziell, weil dies die am besten umsetzbare Methode zu sein scheint. Es ist eine angewandte Form der anderen angegebenen Optionen, aber dies sieht so aus, als ob das "Fehler" -Signal viel deutlicher ist.
Kortuk

1
Könnte auch den absoluten Wert des Signals zuerst nehmen und ein glatteres einseitiges Histogramm erhalten
Endolith

Meine Finger jucken es, das an meinen Signalen auszuprobieren. Vielen Dank.
Han

20

Die einfachste Antwort, wenn Sie mit kurzen Aufnahmen zu tun haben, besteht darin, sie anzuhören und "Pops" (kurze Tonspitzen) in der Wiedergabe zu erkennen. Eine robustere Lösung besteht jedoch darin, das Frequenzspektrum der Aufzeichnung zu analysieren.

Denken Sie daran, dass ein Signal, wenn es an einer bestimmten Schwelle abgeschnitten wird, lokal einer Rechteckwelle in den abgeschnittenen Regionen ähnelt. Dies führt zu höheren Harmonischen im Frequenzspektrum, die ursprünglich nicht vorhanden gewesen wären. Wenn Ihr Signal bandbegrenzt ist (die meisten Signale aus der realen Welt sind) und Sie weit über der Nyquist-Rate abtasten, fällt dies als Tag deutlich auf.

Hier ist ein kurzes Beispiel in MATLAB, das dies demonstriert. Hier erstelle ich ein bandbegrenztes Signal mit einer Dauer von 1s, das bei 1000 Hz abgetastet wird, und schneide es dann dazwischen ab ±0.8(siehe die obere Darstellung in der Abbildung unten).

time = 0:0.001:1;
cleanSignal = sin(2*pi*75*time).*chirp(time,50,1,200);
clippedSignal = min(abs(cleanSignal),0.8).*sign(cleanSignal);

Bildbeschreibung hier eingeben

Sie können deutlich sehen, dass das Frequenzspektrum der ursprünglichen, nicht abgeschnittenen Wellenform sauber ist und außerhalb der Bandbreite (unten links) auf Null geht, während im abgeschnittenen Signal eine allgemeine geringfügige Verzerrung des Spektrums (erwartet, wenn abgeschnitten) und der meisten vorliegt Wichtig: höhere Oberwellen / Spitzen / Nicht-Null-Beiträge im Spektrum außerhalb der Bandbreite des Signals (unten rechts).

Dies kann im Allgemeinen eine bessere Vorgehensweise sein, da das Erkennen von Übersteuerungen durch Betrachten der Werte im Allgemeinen nicht genau ist, es sei denn, Sie haben das Gerät selbst entworfen und kennen den Wert des Schwellenwerts genau.


1
Einige meiner Signale (insbesondere die MLS) reichen bis zur Nyquist-Frequenz. Daher ist diese Methode bei mir wahrscheinlich nicht immer anwendbar.
Han

@yoda Wie sagt man dann mit den vorliegenden Spektren, dass ein Spektrum 'schmutzig' ist, wie Sie angegeben haben? Welchen Test kann man durchführen?
Spacey

9

Ein bisschen davon hängt von der Aufnahmemethode ab. Es hört sich so an, als ob Sie nur 1 Konverter verwenden, was die Sache etwas vereinfacht.

Sie sollten nach etwas suchen, das über einer bestimmten Schwelle liegt, und insbesondere nach mehr als einem Punkt neben dem anderen. Normalerweise lesen A / D-Wandler nur dann ihren Maximalwert, wenn Sie ihn sehr genau testen. Beachten Sie daher, dass der Maximalwert möglicherweise niedriger ist, als dies möglich erscheint.

Angesichts Ihrer Parameter würde ich nach aufeinanderfolgenden Signalen oberhalb von .98 oder unterhalb von -.98 suchen, mit einigen Optimierungen, um den optimalen Schwellenwert zu bestimmen (ich würde ihn nicht unterhalb von .9 bringen). Es könnte ratsam sein, einen maximal zu erkennen und einen anderen in der Nähe über so etwas wie .8.

Der Grund, eine bestimmte Messung zu ignorieren, ist, dass es häufig zu Spitzen kommt, die überhaupt nichts mit dem Signal zu tun haben. Dies wird reduziert, wenn Sie einen bekannten guten A / D-Wandler verwenden. Wenn Sie eine Reihe von Detektoren oder ein Bild verwenden, ist es wahrscheinlich, dass einige der Detektoren fehlerhaft sind und möglicherweise häufig abgeschnitten werden.


Sehr praktische Ratschläge hier. Zusammen mit dem Ansatz von @ Kellenjb sollte dies ausreichen, um an einer Implementierung zu arbeiten.
Han

3

MLS (Maximum Length Sequences) sind besonders schwierig auf Clipping zu analysieren. Ihr Scheitelfaktor (= peak / rms) liegt sehr nahe bei 1, was sogar drei dB unter dem einer Sinuswelle liegt. Viele D / A-Wandler sind so ausgelegt, dass sie im schlimmsten Fall eine Sinuswelle annehmen, und ein MLS, der mit voller Amplitude wiedergegeben wird, kann die Ausgangsinterpolationsschaltung eines D / A-Wandlers leicht übersteuern.

Das nächste Problem ist, dass ein abgeschnittener MLS fast identisch mit einem nicht abgeschnittenen MLS aussieht, da die Amplituden in erster Linie fast alle + -Spitzen sind. Auch die PDF-Analyse funktioniert nicht, da das PDF eines MLS lediglich zwei große Spitzen an den Rändern enthält.

Bei einer typischen Messung der Raumimpulsantwort ist der wahrscheinlichste Clipping-Punkt tatsächlich der D / A, der Verstärker oder der Lautsprecher. Sobald es durch den Raum gekommen ist, sieht es viel weniger aus wie ein MLS und daher ist es einfacher, das Abschneiden mit den oben beschriebenen Methoden zu bewerten.

Bei fast allen akustischen Messungen wird das Grundrauschen durch das Eigenrauschen des Mikrofons oder durch Hintergrundgeräusche und nicht durch den A / D bestimmt. Daher ist es nicht sehr wichtig, die Eingangsverstärkung für den A / D-Bereich zu optimieren, und es ist vollkommen in Ordnung, vor dem Abschneiden genügend Headroom zu lassen (etwa 10 dB).

Es ist in der Regel eine gute Idee, mit einer Reihe verschiedener Anregungspegel zu messen und das SNR der Messung zu betrachten. Bei niedrigen Pegeln dominiert das akustische Hintergrundgeräusch und bei hohen Pegeln wird etwas begrenzt, komprimiert oder abgeschnitten. Der Trick, um eine gute Messung durchzuführen, besteht darin, einen guten Punkt dazwischen zu finden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.