Gaußfilter(Tiefpassfilter) - Kann Vorgehen nicht nachvollziehen.

Gast #1226045
Lesenswert?

Hallo!

Ich soll in Assembler einen Tiefpassfilter realisieren. Der Alogrithmus 
oder viel mehr das Vorgehen ist mir vorgegeben:


1
Die eigentliche Filteroperation entspricht der diskreten
2
Faltung. Bei dieser Operation werden die Koeffizienten des Filters, die man sich als Maske
3
vorstellen kann, an den in einem eindimensionalen Array aufgeführten Messwerten entlanggeschoben.
4
Jedes Element der Messwerte, das von einem Maskenelement überdeckt wird, wird
5
mit eben diesem Element multipliziert. Diese Operation wird f¨ur jedes Maskenelement ausgef
6
¨uhrt. Die einzelen Produkte werden dann aufsummiert und mit dem eventuell vorhandenen
7
Skalierungsfaktor gewichtet. Das Ergebnis dieser Operation wird einem Ausgangselement (in
8
der Datenstruktur als Element ’Center’ gekennzeichnet) zugeordnet. Daraufhin wird die Maske
9
um eine Position weiter geschoben und die ganze Prozedur beginnt von neuem."


Allerdings habe ich arge Probleme damit.
Was zB meint?:

"Jedes Element der Messwerte, das von einem Maskenelement überdeckt 
wird, wird mit eben diesem Element multipliziert."

Angenommen, meine Messwerte wären 1,2,3,4,5,6,7 und meine Maske 4. Wie 
genau soll nun 4 eines der Messwerte überdecken?



Oder hier:

"Das Ergebnis dieser Operation wird einem Ausgangselement (in
der Datenstruktur als Element ’Center’ gekennzeichnet) zugeordnet."

Center ist im C-Programm ein int und wird an das Asm-Unterprogramm 
übergeben.
Wenn ich jede Summe nun in Center schiebe, dann überschreibe ich doch 
einfach den vorigen Wert.


Wüßte da einer Rat?
Gast #1256406
Lesenswert?

Naja, halt für jedes Ausgabeelement die Summe bilden aus den Produkten 
des zugehörigen Eingabelements mit der maskenmitte, bzw. der Nachbarn 
mit den passenden Maskenstellen.


Ausgabe[i] := SUMME( Maske[j]*Eingabe[i+j], j=-n..n )

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren