Dauer eines unbekannten Rechteckimpulses mit additivem weißen Gaußschen Rauschen

8

Problem.

Es gibt ein diskretes Signalf[i] (Beispiel unten).
Beispiel eines Signals
Es ist bekannt, dass eine Form eines Rechteckimpulses mit additivem weißen Gaußschen Rauschen hat.f[i]

f[i]=s[i]+n[i] , , ,
s[i]=α(θ[ii1]θ[ii2])+c
i2>i1
i1>N

Wobei eine Heaviside-Schrittfunktion ist, ein additives weißes Gaußsches Rauschen ist, eine Höhe eines Rechteckimpulses ist, ein Index der ersten Probe eines Rechteckimpulses ist, ist ein Index der letzten Abtastung des Rechteckimpulses, ist ein konstanter Signalpegel, ist ein einstellbarer Parameter.
n [ i ] α i 1 i 2 c N.θ[i]
n[i]
α
i1
i2
c
N

Alle Parameter können einen großen Wertebereich haben.
Es ist erforderlich, den Wert von(i2i1) (Dauer des Rechteckimpulses in Abtastwerten) zu ermitteln.

Mögliche Lösungen.

Im Moment habe ich zwei Möglichkeiten ausprobiert, um dieses Problem zu lösen.

Tiefpassfilter mit Schwelle.

Als ersten Versuch habe ich ein einfaches Schema mit Tiefpassfilter und Schwelle verwendet.
1. Wenden Sie den FIR-Tiefpassfilter mit einer Grenzfrequenz von . 2. Schätzen Sie den Mittelwert und die Dispersion des gefilterten Rauschens aus den ersten Abtastwerten des Signals. 3. Stellen Sie den Schwellenwert . 4. Schätzen Sie . 5. Schätzen Sie .0.05fsampling
mσ2N
t=m+3σ
i 2 = max i ( f [ i ] > t )i1=mini(f[i]>t)
i2=maxi(f[i]>t)

Geben Sie hier die Bildbeschreibung ein

Vorteile:
1. Dieser Algorithmus ist einfach.
2. Es ist einfach, eine schnelle Implementierung zu schreiben.

Nachteile:
1. Es ist schwierig, den effizienten Wert der Grenzfrequenz des Filters abzuschätzen. Ein niedriger Wert kann einerseits die Form kurzer Impulse verfälschen. Andererseits verringert ein großer Wert die Wirkung der Filtration.
2. Der Algorithmus verwendet nicht alle Informationen, wir haben über das Signal.

Regressionsanalyse

Als zweiten Versuch habe ich versucht, die Eingabesequenz von Samples mit der Funktion zu approximieren .s[i]

s[i]=α(θ[ii1]θ[ii2])+c , , wobei ein kleiner Parameter ist.
θ[i]=11+eiββ

Zur Annäherung habe ich die Methode der kleinsten Quadrate mit Gradientenabstieg verwendet, um die Kostenfunktion zu minimieren.
1. Legen Sie die Anfangswerte für , , , . 2. Gradientenabstieg durchführen. 3. Stellen Sie den Schwellenwert . 4. Schätzen Sie . 5. Schätzen Sie .c i 1 i 2 t = c + 0,5 α i 1 = min i ( f [ i ] > t ) i 2 = max i ( f [ i ] > t )αci1i2

t=c+0.5α
i1=mini(f[i]>t)
i2=maxi(f[i]>t)

Geben Sie hier die Bildbeschreibung ein

Vorteile:
1. Dieser Algorithmus liefert Ergebnisse mit guter Präzision.
2. Es funktioniert für einen weiten Bereich von Dauern.

Nachteile:
1. Es ist sehr langsam.

Frage.

Schließlich bin ich mit der Genauigkeit des ersten Algorithmus und der Geschwindigkeit des zweiten nicht zufrieden. Wie würden Sie dieses Problem lösen?
Gibt es eine klassische Lösung, die ich nicht gefunden habe?
Ideen, Links, Feedback wird sehr geschätzt.
Vielen Dank.

Nikolai Popov
quelle
Müssen Sie auch die Wahrscheinlichkeit kennen, dass nur das zufällige Gaußsche Rauschen dazu führt, dass Ihr Algorithmus eine Impulsdauer erzeugt, insbesondere in der Nähe der zulässigen Mindestimpulsbreite und -höhe? Oder ist bekannt, dass der Puls a priori vorhanden ist und innerhalb der zulässigen Parameter liegt?
hotpaw2
@ hotpaw2 Der Impuls ist a priori bekanntermaßen vorhanden und liegt innerhalb der zulässigen Parameter. Wenn das Signal den Impuls nicht enthält, ist das Verhalten des Algorithmus möglicherweise undefiniert.
Nikolai Popov

Antworten:

5

Sie möchten eine Methode, die Rauschen entfernt und gleichzeitig die Kanten beibehält. Dies kann durch lineare Filterung nicht gut erreicht werden, wie Sie selbst bemerkt haben. Ich kenne zwei Ansätze, die für Ihr Problem gut funktionieren könnten. Die erste ist die Medianfilterung , bei der Stichproben in einem Fenster durch ihren Median ersetzt werden. Das folgende Diagramm zeigt das Ergebnis der Medianfilterung mit einer Fensterlänge von 25 Stichproben (in rot):

Geben Sie hier die Bildbeschreibung ein

Der andere, komplexere Ansatz ist das Total Variation Denoising , das für stückweise konstante Signale sehr gut funktioniert. Es gibt eine sehr gute Beschreibung der gesamten Variationsentrauschung einschließlich des verfügbaren Matlab-Codes: Link .

Matt L.
quelle
Es war sehr hilfreich. Und ich hatte eine gute Zeit, den Artikel zu lesen und mit dem TV-Entrauschen zu spielen. Vielen Dank.
Nikolai Popov
1

Ich weiß, dass dies sehr alt ist , und @Matt L. gab längst eine ausgezeichnete und informative Antwort. Ich hatte keine Ahnung, dass es eine totale Variationsentrauschung gibt, also habe ich etwas sehr Nützliches gelernt. Dementsprechend habe ich sowohl die Frage als auch die Antwort positiv bewertet und möchte der Site etwas zurückgeben, so wie es ist. Die Grundidee besteht darin, eine einfache digitale Version des alten RC LPF zu verwenden und die Zeitkonstante bei Auftreten eines Schritts erheblich zu reduzieren. Erhöhen Sie dann nach dem Schritt die 'Zeitkonstante' erheblich. NB Die 'Zeitkonstante' wird nicht wirklich konstant sein, wie weiter unten zu sehen sein wird.

Die folgende Abbildung zeigt meinen Versuch, das generische Beispiel für verrauschte Rechteckimpulse des OP zu replizieren, und wie ein Tiefpassfilter mit reziproker Ableitung (im Folgenden als RD-LPF bezeichnet) funktioniert:

Reziproke Ableitung LPF

Der RD-LPF ist einfach , wobei und Ich habe . Der saubere Rechteckimpuls hatte eine Einheitsamplitude, die bei t = 3 begann und eine Impulsbreite von 3. Das additive weiße Gaußsche Rauschen hatte und .y[i]=Ay[i1]+(1A)x[i]A=exp(K|y[i1]x[i]|)K=0.2μ=0σ=0.3

Die nächste Abbildung vergleicht die RD-LPF-Ausgabe (rote Kurve) mit der Ausgabe eines 25-Punkte-Medianfilters (blaue Kurve) (gemäß der Antwort von Matt L.):

RD-LPF gegen Mov Med 25 pt

Ich sage nicht, dass ich das RD-LPF jemals für irgendetwas Ernstes verwenden würde, aber ich war neugierig zu sehen, ob es in diesem kleinen Vergleich zerstört werden würde. Offensichtlich ist das nicht der Fall.

Ed V.
quelle