Chaohuang hat eine gute Antwort, aber ich möchte auch hinzufügen, dass eine andere Methode, die Sie verwenden können, die Haar-Wavelet-Transformation, gefolgt von einer koeffizienten Wavelet-Schrumpfung und einer inversen Haar-Transformation zurück in den Zeitbereich ist.
Die Haar-Wavelet-Transformation zerlegt Ihr Signal in Koeffizienten von Quadrat- und Differenzfunktionen, wenn auch in unterschiedlichen Maßstäben. Die Idee dabei ist, dass Sie die neue quadratische Signaldarstellung so erzwingen, dass sie am besten zu Ihrem ursprünglichen Signal passt, und somit am besten darstellt, wo Ihre Kanten liegen.
Wenn Sie eine koeffiziente Schrumpfung durchführen, bedeutet dies lediglich, dass Sie bestimmte Koeffizienten der Haar-transformierten Funktion auf Null setzen. (Es gibt andere, komplexere Methoden, aber das ist die einfachste). Die Haar-transformierten Wavelet-Koeffizienten sind Scores, die mit verschiedenen Quadrat- / Differenzfunktionen in verschiedenen Maßstäben assoziiert sind. Die RHS des Haar-transformierten Signals stellt Quadrat / Differenz-Basen auf der niedrigsten Skala dar und kann daher auf der 'höchsten Frequenz' interpretiert werden. Der größte Teil der Rauschenergie wird also hier liegen, und der größte Teil der Signalenergie würde auf der LHS liegen. Is sind die Basiskoeffizienten, die auf Null gesetzt und das Ergebnis dann invers in den Zeitbereich zurücktransformiert werden.
Anbei ein Beispiel für eine Sinuskurve, die durch starkes AWGN-Rauschen verfälscht wird. Das Ziel besteht darin, herauszufinden, wo der „Start“ und der „Stopp“ des Pulses liegen. Bei der herkömmlichen Filterung werden die hochfrequenten (und zeitlich stark lokalisierten) Kanten verwischt, da die Filterung im Kern eine L-2-Technik ist. Im Gegensatz dazu wird der folgende iterative Prozess Kanten entstören und beibehalten:
(Ich dachte, man könnte hier Filme anhängen, aber ich scheine nicht dazu in der Lage zu sein. Sie können den Film, den ich von diesem Prozess gemacht habe, hier herunterladen .) (Rechtsklick und 'Verknüpfung speichern unter').
Ich habe den Prozess 'von Hand' in MATLAB geschrieben und es geht so:
- Erzeugen Sie einen sinusförmigen Impuls, der durch starkes AWGN verfälscht wird.
- Berechnen Sie den Umschlag von oben. (Das Signal').
- Berechnen Sie die Haar-Wavelet-Transformation Ihres Signals auf allen Skalen.
- Entstören durch iteratives koeffizientes Schwellenwertverfahren.
- Inverse Haar Transformation des geschrumpften Koeffizientenvektors.
Sie können deutlich sehen, wie die Koeffizienten geschrumpft werden und die daraus resultierende inverse Haartransformation.
Ein Nachteil dieser Methode ist jedoch, dass die Kanten in einem bestimmten Maßstab in oder um die Quadrat- / Differenzbasis liegen müssen. Wenn nicht, wird die Transformation gezwungen, zur nächsthöheren Ebene zu springen, und somit verliert man eine genaue Platzierung für die Kante. Um dem entgegenzuwirken, gibt es Mehrfachauflösungsmethoden, die jedoch aufwändiger sind.