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

Gast #1226045
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.