Was ist Convolution?

Antworten
chriss0212

Was ist Convolution?

Beitrag von chriss0212 »

Hierzu kann ich leider noch kein Tutorial machen... warum? Ich habe es noch nicht wirklich verstanden ;)

Also wer kann mir als Nichtmathematiker erklären was sich dahinter verbirgt und wie und wo man es sinnvoll anwenden kann.

Meine eigenen Erklärungsversuche scheitern spätestens dann, wenn man aus dem Falten von 2 Rechtecksignalen ein Dreieck erhält ;)

https://www.dummies.com/education/scien ... to-forget/

Also sollte hier jemand quellen wissen die nicht über Formeln erklären was das ist wäre ich dafür sehr dankbar ;)
Ich bin zwar ganz gut in Logik, aber Mathe ist nicht meins... klingt komisch... ist aber so!

Viele Grüße

Christian
chriss0212

Beitrag von chriss0212 »

Das steht im WiKi
Convolution

Verwendung:
Dient dazu die Eigenschaften verschiedener Kurven miteinander zu multiplizieren, wodurch sich z.B. beliebig geformte Frequenzweichen erstellt werden können. Da sich durch die Faltung die Anzahl der Abtastpunkte im Filter verdoppelt, muss der Filter nach der Convolution mit Cut'n'Window wieder auf seine ursprüngliche Länge „zurechtgeschnitten“ werden.
So dachte ich es bisher auch verstanden zu haben... bis dann diese Geschichte mit den zwei Rechtecken kam...
Warum wird aus zwei identischen Rechtecken ein Dreieck? Oder ist das ein anderes Convolution?

Grüße

Christian
chriss0212

Beitrag von chriss0212 »

Hat es irgendeinen Nutzen, dass sich die Filterlänge verdoppelt? Würde irgend etwas dagegen sprechen, wenn beim falten die Filterlänge auch gleich automatisch mit angepasst würde?

Außer, dass es ein neues Feature wäre ;)

Viele Grüße

Christian
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Nehmen wir ein Rechtecksignal der Folge 0 1 1 1 0 und falten es mit sich selbst. Das Signal hat 5 Samples.

Im Prinzip ist die Faltung nichts anderes als wie eine Multiplikation. Nur dass bei der Multiplikation eben die Ziffern miteinander multipliziert werden, bei Überlauf über 9 wird dann aufgerundet. Bei der Faltung hat jedes Sample aber seinen eigenen Wertebereich, es wird nicht gerundet, das Ergebnis eines Samples kann also auch 127.3745 sein

Im Beispiel geht das so

Code: Alles auswählen

0 1 1 1 0   *   0 1 1 1 0 =
-----------------------------
0 0 0 0 0
  0 1 1 1 0
    0 1 1 1 0
      0 1 1 1 0
        0 0 0 0 0
-----------------
0 0 1 2 3 2 1 0 0
Das Ergebnis hat nun 2*5 -1 = 10 -1 = 9 Stellen. Bei einer Faltung von m Samples mit n Samples ist das Ausgangssignal m+n-1 Samples lang. Acourate verwendet nun üblicherweise Signale mit einer 2er-Potenz als Länge. Da fluppt die FFT so schön. Und damit eine weitere Rechnung ebenfalls schnell läuft, wird beim Ergebnis noch ein Nullsample angehängt. Mit 65536 * 65536 ergibt sich so 131072, was wiederum eine 2er Potenz ist.
Das Kürzen auf die Ausgangslänge mit CutNWindow klappt eigentlich nur deswegen, weil häufig die Signale bzw. Filter am Anfang und Ende Samples nahe Null aufweisen. Dann macht sich der dadurch ergebende Fehler kaum bemerkbar. Im Beispiel wäre das also das Wegschneiden am Anfang und am Ende, also peaksymmetrisch.

Was das Beispiel aber auch klar zeigt: aus dem Rechteck ist nun ein Dreieck geworden:
die enthaltene Folge ist dabei 1 2 3 2 1.

Grüsse
Uli
Bild
chriss0212

Beitrag von chriss0212 »

Hallo Uli

VIELEN DANK für das Beispiel! Das verstehe ich auch als NICHT MATHEMATIKER ;) Obwohl ich zugegebenermaßen noch mal in mich gehen musste, wie man zu Fuß multipliziert :mrgreen:

Jetzt fehlt nur noch eine Auflösung hierzu:
Hat es irgendeinen Nutzen, dass sich die Filterlänge verdoppelt? Würde irgend etwas dagegen sprechen, wenn beim falten die Filterlänge auch gleich automatisch mit angepasst würde?

Außer, dass es ein neues Feature wäre ;)
Wie Du so schön sagst: Wünsche machen keine Arbeit :cheers:

Viele Grüße

Christian
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Es ist eine Eigenschaft der Convolution, dass sich die Länge des Ergebnisses ändert mit Anzahl Samples Signal + Anzahl Filtertaps minus 1. Das Signal kann dabei auch ein Musikstück sein.
Das korrekte Ergebnis umfasst die gesamte Länge. Das Kürzen verändert somit das Ergebnis. Man kann das bei Acourate auch z.B. am geänderten Frequenzgang sehen.
Im Spezialfall, dass Acourate eine besondere Funktion realisiert, wird dann auch intern die Möglichkeit des CutNWindow verwendet. Bei Faltungen, die durch den Anwender durchgeführt werden, obliegt eben dem Nutzer die Verantwortung.

Grüsse
Uli
Bild
chriss0212

Beitrag von chriss0212 »

Hallo Uli
Das Kürzen verändert somit das Ergebnis. Man kann das bei Acourate auch z.B. am geänderten Frequenzgang sehen.
Also kürzt man nicht immer? Woher weiß ich dann, wann ich kürzen muss und wann nicht?

Viele Grüße und danke, dass Du noch immer Rede und Antwort stehst ;)

Christian
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Wenn z.B. bei den Weichen alle Filter gleich lang sein sollen.

Grüsse
Uli
Bild
chriss0212

Beitrag von chriss0212 »

:cheers:
Antworten