Problem.
Es gibt ein diskretes Signal (Beispiel unten).
Es ist bekannt, dass eine Form eines Rechteckimpulses mit additivem weißen Gaußschen Rauschen hat.
, , ,
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.
Alle Parameter können einen großen Wertebereich haben.
Es ist erforderlich, den Wert von (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 .
i 2 = max i ( f [ i ] > t )
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 .
, , wobei ein kleiner Parameter ist.
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 )
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.