next up previous contents
Nächste Seite: Zirkuläre Faltungen Aufwärts: Übungen zum Kapitel 5 Vorherige Seite: Übungen zum Kapitel 5   Inhalt

Unterabschnitte

Gewöhnliche Faltungen

50-1   Einführungsbeispiele von Faltungen

 
Berechnen Sie die Faltungen conv(a,b), conv(b,a), conv(a,a) und conv(b,b) von Hand und mit MATLAB:
a = [ 1 2 1 2 1] , b = [0 0 1 3 1 0 0]

50-2   Sukzessive Abrundung bei mehrmaliger Faltung

 
Falten Sie die Rechtecksfunktion a = [ 0 0 0 1 1 1 1 0 0 0] ein- bis mehrmals mit sich selbst und vergleichen Sie die grafischen Darstellungen der Folgen.

50-3   Darstellung der sukzessiven Addition bei der Faltung

 
Gegeben sind die zwei Zahlenfolgen (der Länge 14) g und w durch
g = [ 1 2 3 2 1 zeros(1,9) ]
w = [ 0 0 1 0 0 0 2 0 0 1 2 1 0 0 ]
Erzeugen Sie eine Shift-Funktion, mit der Sie den von Null verschiedenen Teil von g nach rechts verschieben können ohne die Länge zu ändern, z.B. wird:
shrgt(g,4) = [ 0 0 0 0 1 2 3 2 1 0 0 0 0 0]
Mit dieser Shift-Funktion kann die Faltung als schrittweise Addition von zueinander verschobenen Folgen g, je mit entsprechenden Gewichten w(k) nachvollzogen werden. Die Zahlenfolgen f1 bis f4 bilden dann die Teilresultate und f5 das Schlussresultat der Faltung von g und w. Diese sollen übereinander geplottet werden:
\begin{sourcett}\small
f1 = 1*g\\
f2 = 1*g + 2*shrgt(g,4) \\
f3 = 1*g + 2*shrg...
... 1*g + 2*shrgt(g,4) + 1*shrgt(g,7) + 2*shrgt(g,8) + 1*shrgt(g,9)
\end{sourcett}
f5 kann anschließend mit der MATLAB-Funktion für die Faltung verglichen werden: conv(g,w)

50-4   Faltung von Standardfunktionen

 
Falten Sie die vier Standardfunktionen: Rechtecks-, (Dreiecks=) Hutfunktion, Parabelbogen ( $ \max(0,1-x^2$) und Glockenfunktion ( $ (1-x^2)^2~~,-1<x<1$) je mit sich selbst, sowie mit der Rechtecks und der Hutfunktion und stellen Sie die Original- und Resultatfunktionen grafisch dar.

50-5   Faltung einer Sinusfunktion mit sich selbst

 
Berechnen und zeichnen Sie die zirkuläre Faltung einer Sinusfunktion mit sich selbst.

50-6   Selbst programmierte Faltung

 
Erzeugen Sie ein Funktions-M-File, das eine Faltung von 2 Folgen berechnet, indem die verschobenen und mit dem Gewicht multiplizierten Vektoren sukzessive addiert werden.
Erzeugen Sie dazu eine intern zu verwendende Hilfsfunktion, welche einen Vektor an einem vorwählbaren Platz in einen längeren Nullvektor einsetzt, wie z.B.
bigvec = vecinsert(smallvec,lpos,biglength)

50-7   Nach der Formel programmierte Faltung

 
Schreiben Sie ein MATLAB-Skript, welches eine gewöhnliche Faltung programmiert. Diese ist durch die untenstehende Formel gegeben. Vergleichen Sie die Resultate Ihres Skripts mit der Bibliotheksprozedur C=conv(A,B)! Testen Sie auch die Symmetrieeigenschaft der Faltung und die Länge der Resultatfolge an einigen Beispielen!

$\displaystyle c_{j} = \sum_{k=\max(1,j-n2+1)}^{\min(n1,j)}a_k\cdot b_{j-k+1}$    

Beachten Sie, dass die sprachliche Formulierung ,,j-n2+1, aber mindestens 1`` mit der Funktion max(1,j-k+1) realisiert wird (nicht mit ,,min`` was die sprachliche Form suggeriert)!


next up previous contents
Nächste Seite: Zirkuläre Faltungen Aufwärts: Übungen zum Kapitel 5 Vorherige Seite: Übungen zum Kapitel 5   Inhalt
Stefan Adam 2006-03-07