Saturday 7 January 2017

Moving Average As Faltung

Lodes Computergraphik Tutorial Bildfilterung Inhaltsverzeichnis Einleitung Die Bildfilterung erlaubt Ihnen, verschiedene Effekte auf Fotos anzuwenden. Die hier beschriebene Art der Bildfilterung verwendet ein 2D-Filter ähnlich dem, das in Paint Shop Pro als Benutzerdefinierter Filter und in Photoshop als Benutzerdefinierter Filter enthalten ist. Convolution Der Trick der Bildfilterung ist, dass Sie eine 2D-Filtermatrix und das 2D-Bild haben. Dann nehmen Sie für jedes Pixel des Bildes die Summe der Produkte. Jedes Produkt ist der Farbwert des aktuellen Bildpunktes oder eines Nachbarn davon mit dem entsprechenden Wert der Filtermatrix. Die Mitte der Filtermatrix muss mit dem aktuellen Pixel multipliziert werden, die anderen Elemente der Filtermatrix mit entsprechenden Nachbarpixeln. Diese Operation, bei der Sie die Summe der Produkte von Elementen aus zwei 2D-Funktionen nehmen, wobei Sie eine der beiden Funktionen über jedes Element der anderen Funktion bewegen, heißt Faltung oder Korrelation. Der Unterschied zwischen Faltung und Korrelation ist, dass für die Faltung müssen Sie die Filtermatrix spiegeln, aber in der Regel seine symmetrische sowieso so theres keinen Unterschied. Die Filter mit Faltung sind relativ einfach. Komplexere Filter, die mehr Phantasie-Funktionen verwenden können, sind ebenfalls vorhanden und können viel komplexere Dinge (zum Beispiel die Colored Pencil-Filter in Photoshop), aber solche Filter hier diskutiert werden. Der 2D-Faltungsvorgang erfordert eine 4-Doppel-Schleife, so dass es nicht extrem schnell ist, es sei denn, Sie verwenden kleine Filter. Hier in der Regel in der Regel mit 3x3 oder 5x5 Filter. Es gibt ein paar Regeln über den Filter: Seine Größe muss uneben sein, so dass es ein Zentrum hat, zum Beispiel 3x3, 5x5 und 7x7 sind ok. Es muss nicht, aber die Summe aller Elemente des Filters sollte 1 sein, wenn das resultierende Bild die gleiche Helligkeit wie das Original haben soll. Wenn die Summe der Elemente größer als 1 ist, wird das Ergebnis ein helleres Bild, und wenn es kleiner als 1 ist, ein dunkleres Bild. Wenn die Summe 0 ist, ist das resultierende Bild nicht unbedingt vollständig schwarz, aber es wird sehr dunkel. Das Bild hat endliche Dimensionen, und wenn Sie zum Beispiel ein Pixel auf der linken Seite berechnen, gibt es keine weiteren Pixel links davon, solange diese für die Faltung erforderlich sind. Sie können hier entweder den Wert 0 verwenden oder auf die andere Seite des Bildes wickeln. In diesem Tutorial wird die Umhüllung gewählt, da sie einfach mit einer Modulo-Division durchgeführt werden kann. Die resultierenden Pixelwerte nach dem Anlegen des Filters können negativ oder größer als 255 sein, wenn dies geschieht, können Sie sie abschneiden, so dass Werte kleiner als 0 sind 0 und Werte größer als 255 sind auf 255 gesetzt. Bei negativen Werten können Sie auch den absoluten Wert annehmen. In der Fourier Domain oder Frequency Domain wird die Faltungsoperation stattdessen zu einer Multiplikation, die schneller ist. In der Fourier-Domäne können viel leistungsfähigere und größere Filter schneller angewendet werden, besonders wenn Sie die Fast Fourier Transformation verwenden. Mehr dazu im Fourier Transform Artikel. In diesem Artikel, auch auf einige sehr typische kleine Filter, wie z. B. Unschärfe, Kanten-Erkennung und Prägung. Bild-Filter arent machbar für Echtzeit-Anwendungen und Spiele noch, aber theyre nützlich bei der Bildverarbeitung. Digitale Audio - und Elektronikfilter arbeiten auch mit Faltung, aber in 1D. Heres der Code thatll verwendet werden, um verschiedene Filter auszuprobieren. Neben der Verwendung einer Filtermatrix weist sie auch einen Multiplikatorfaktor und eine Vorspannung auf. Nach dem Anlegen des Filters wird der Faktor mit dem Ergebnis multipliziert und die Vorspannung addiert. Also, wenn Sie einen Filter mit einem Element 0,25 in sie haben, aber der Faktor ist auf 2 gesetzt, werden alle Elemente des Filters in der Theorie multipliziert mit zwei, so dass Element 0,25 tatsächlich 0,5 ist. Die Vorspannung kann verwendet werden, wenn Sie das resultierende Bild heller machen möchten. Das Ergebnis eines Pixels wird in Floats rot, grün und blau gespeichert, bevor es in den Integerwert im Ergebnispuffer konvertiert wird. Die Filterberechnung selbst ist eine 4-Doppelschleife, die durch jedes Pixel des Bildes und dann durch jedes Element der Filtermatrix gehen muss. Die Position imageX und imageY wird so berechnet, dass für das zentrale Element des Filters x, y, aber für die anderen Elemente ein Pixel vom Bild nach links, rechts, oben oder unten von x, y sein kann. Sein Modulo wird durch die Breite (w) oder die Höhe (h) des Bildes geteilt, so dass Pixel außerhalb des Bildes herumgewickelt werden. Bevor modulo dividing es, w oder h sind auch hinzugefügt, weil diese Modulo-Division funktioniert nicht richtig für negative Werte. Nun wird das Pixel (-1, -1) korrekt Pixel (w-1, h-1). Wenn Sie den Absolutwert von Werten kleiner als Null nehmen möchten, anstatt sie zu verkürzen, verwenden Sie stattdessen den folgenden Code: The Scientist and Engineers Guide to Digital Signal Processing Von Steven W. Smith, Ph. D. Kapitel 7: Eigenschaften der Konvolution Das Konzept der Korrelation kann am besten mit einem Beispiel dargestellt werden. Abbildung 7-13 zeigt die Schlüsselelemente eines Radarsystems. Eine speziell entwickelte Antenne überträgt eine kurze Welle von Funkwellenenergie in einer ausgewählten Richtung. Wenn die Ausbreitungswelle auf ein Objekt trifft, wie beispielsweise der Hubschrauber in dieser Darstellung, wird ein kleiner Bruchteil der Energie zu einem Radioempfänger reflektiert, der sich in der Nähe des Senders befindet. Der gesendete Impuls ist eine spezifische Form, die wir ausgewählt haben, wie das in diesem Beispiel dargestellte Dreieck. Das empfangene Signal besteht aus zwei Teilen: (1) einer verschobenen und skalierten Version des gesendeten Impulses und (2) zufälligem Rauschen, das durch interferierende Funkwellen, thermisches Rauschen in der Elektronik usw. verursacht wird Die Geschwindigkeit des Lichts, die Verschiebung zwischen dem gesendeten und dem empfangenen Impuls ein direktes Maß für den Abstand zu dem detektierten Objekt ist. Dies ist das Problem: Angesichts eines Signals von bekannter Form, was ist der beste Weg, um festzustellen, wo (oder wenn) das Signal in einem anderen Signal auftritt. Korrelation ist die Antwort. Korrelation ist eine mathematische Operation, die der Faltung sehr ähnlich ist. Wie bei der Faltung verwendet die Korrelation zwei Signale, um ein drittes Signal zu erzeugen. Dieses dritte Signal wird als Kreuzkorrelation der beiden Eingangssignale bezeichnet. Wenn ein Signal mit sich selbst korreliert. Wird das resultierende Signal stattdessen Autokorrelation genannt. Die Faltungsmaschine wurde im letzten Kapitel vorgestellt, um zu zeigen, wie Faltung durchgeführt wird. Abbildung 7-14 ist eine ähnliche Abbildung einer Korrelationsmaschine. Das empfangene Signal x n und das Kreuzkorrelationssignal y n sind auf der Seite festgelegt. Die Wellenform, die wir suchen, tn, die gemeinhin als Zielsignal bezeichnet wird, ist in der Korrelationsmaschine enthalten. Jede Probe in y n wird berechnet, indem die Korrelationsmaschine nach links oder rechts bewegt wird, bis sie auf die zu bearbeitende Probe zeigt. Als nächstes fallen die angezeigten Abtastwerte aus dem empfangenen Signal in die Korrelationsmaschine und werden mit den entsprechenden Punkten in dem Zielsignal multipliziert. Die Summe dieser Produkte bewegt sich dann im Kreuzkorrelationssignal in die richtige Probe. Die Amplitude jeder Abtastung in dem Kreuzkorrelationssignal ist ein Maß dafür, wie viel das empfangene Signal dem Zielsignal an dieser Stelle gleicht. Dies bedeutet, dass ein Peak in dem Kreuzkorrelationssignal für jedes Zielsignal auftritt, das in dem empfangenen Signal vorhanden ist. Mit anderen Worten, der Wert der Kreuzkorrelation wird maximiert, wenn das Zielsignal mit den gleichen Merkmalen in dem empfangenen Signal ausgerichtet ist. Was passiert, wenn das Zielsignal Proben mit einem negativen Wert enthält, ändert sich nichts. Man stelle sich vor, daß die Korrelationsmaschine so positioniert ist, daß das Zielsignal perfekt mit der übereinstimmenden Wellenform in dem empfangenen Signal übereinstimmt. Wenn Proben von dem empfangenen Signal in die Korrelationsmaschine fallen, werden sie mit ihren entsprechenden Abtastwerten in dem Zielsignal multipliziert. Beim Vernachlässigen von Rauschen wird eine positive Probe mit sich selbst multipliziert, was zu einer positiven Zahl führt. Ebenso wird eine negative Probe mit sich selbst multipliziert, was ebenfalls zu einer positiven Zahl führt. Selbst wenn das Zielsignal vollständig negativ ist, wird der Peak in der Kreuzkorrelation immer noch positiv sein. Wenn es Rauschen auf dem empfangenen Signal gibt, wird es auch ein Rauschen auf dem Kreuzkorrelationssignal geben. Es ist eine unvermeidliche Tatsache, dass zufällige Rauschen sieht eine bestimmte Menge wie jedes Ziel-Signal können Sie wählen. Das Rauschen am Kreuzkorrelationssignal misst einfach diese Ähnlichkeit. Abgesehen von diesem Rauschen ist der Peak, der in dem Kreuzkorrelationssignal erzeugt wird, symmetrisch zwischen seiner linken und seiner rechten Seite. Dies gilt auch dann, wenn das Zielsignal nicht symmetrisch ist. Außerdem ist die Breite des Peaks doppelt so groß wie die des Zielsignals. Denken Sie daran, die Kreuzkorrelation versucht, das Zielsignal zu erkennen, nicht neu zu erstellen. Es gibt keinen Grund zu erwarten, dass der Peak sogar wie das Zielsignal aussehen wird. Korrelation ist die optimale Technik zum Erfassen einer bekannten Wellenform in zufälligem Rauschen. Das heißt, der Peak ist höher als das Rauschen unter Verwendung von Korrelation, als durch irgendein anderes lineares System erzeugt werden kann. (Um vollkommen richtig zu sein, ist es nur optimal für zufälliges weißes Rauschen). Die Verwendung einer Korrelation zur Erfassung einer bekannten Wellenform wird häufig als angepaßte Filterung bezeichnet. Mehr dazu in Kapitel 17. Die Korrelationsmaschine und die Faltungsmaschine sind bis auf einen kleinen Unterschied identisch. Wie im letzten Kapitel erläutert, wird das Signal innerhalb der Faltungsmaschine von links nach rechts gedreht. Das bedeutet, dass die Probennummern: 1, 2, 3 8230 von rechts nach links laufen. In der Korrelationsmaschine findet dieser Flip nicht statt, und die Proben laufen in der normalen Richtung. Da diese Signalumkehr die einzige Differenz zwischen den beiden Operationen ist, ist es möglich, eine Korrelation unter Verwendung derselben Mathematik wie eine Faltung darzustellen. Dies erfordert, dass ein Vorflanken eines der beiden Signale korreliert wird, so dass der in der Faltung innewohnende Links-Rechts-Flip aufgehoben wird. Wenn zum Beispiel n und b n zur Erzeugung von c n gefaltet werden, wird die Gleichung geschrieben: a n b n c n. Im Vergleich dazu kann die Kreuzkorrelation von n und b n geschrieben werden: a n b - n c n. Das heißt, das Kippen b n von links nach rechts wird durch Umkehren des Vorzeichens des Indexes, d. H. B - n, erreicht. Dont let die mathematische Ähnlichkeit zwischen Faltung und Korrelation täuschen Sie stellen sie sehr unterschiedliche DSP-Verfahren. Faltung ist die Beziehung zwischen einem System-Eingangssignal, einem Ausgangssignal und einer Impulsantwort. Korrelation ist eine Möglichkeit, eine bekannte Wellenform in einem verrauschten Hintergrund zu erkennen. Die ähnliche Mathematik ist nur ein bequemer Zufall.


No comments:

Post a Comment