Beruflich Dokumente
Kultur Dokumente
0. Vorbereitung
Bitte nehmt für Aufgabe 1 folgende Sätze auf:
(Wenn ihr kein Mikrofon zur Verfügung habt, besorgt euch Aufnahmen von Kommilitonen.
Ihr könnt bspw. über das Forum auf der ISIS Seite fragen.)
frage.wav: Wer ist der Stärkere: der Nordwind oder die Sonne?
Bitte achtet dabei, diesen Satz auch als Frage zu betonen.
satz.wav: Einst stritten sich Nordwind und Sonne, wer von ihnen beiden wohl der Stärkere
wäre, als ein Wanderer, der in einen warmen Mantel gehüllt war, des Weges daherkam.
Nehmt zusätzlich bitte die Vokale (a, e, i, o, u) und Umlaute (ä, ö, ü) sowie die Laute sch, f, t
und k jeweils als Laute als einzelne Dateien auf.
2. LTI-Systeme
a) Fragen (2)
• Welche (mind.) 2 Systeme fallen euch ein, die die Anforderungen an ein LTI System
erfüllen? (ausgenommen bereits in der Übung vorgestellten Systeme)
• Welche (mind.) 2 Systeme sind Gegenbeispiele, warum?
b) Praktische Anwendung in Matlab/Octave (10)
In der Übung wurde gezeigt, wie man in Matlab einfach das Ausgangssignal eines LTI
Systems berechnen kann. Versucht es nun selber, indem ihr eine Funktion echo schreibt,
die als Ausgangssignal ein Echo berechnet. Benutzt am Ende die von uns zur Verfügung
gestellte Funktion normalize, um das Ergebnis in der Lautstärke auf einen Bereich
zwischen -1 und +1 zu bringen. (Werte über 1 und unter -1 bedeuten Übersteuerung!)
Dazu müsst ihr:
1) Eine neue Datei anlegen, die „echo.m“ heißt
2) Die Funktion „echo“ definieren. Sie soll folgende Eingangsparameter haben:
o einen Audiodatenvektor (eingelesen mit der Funktion wavread)
o eine Zahl, die die Echo-Verzögerung in Millisekunden darstellt
o eine Zahl, die die Samplingfrequenz des Audiovektors enthält (also z.B. 44100
Hz, 22050 Hz, usw.)
Die erste Zeile der Datei sollte also so aussehen:
function result = echo (data, delay, fs)
Weitere Tipps:
- Benutzt für die Audiodaten einen Samplingfrequenz von 22050 Hz. Testet eure
Funktion am besten mit den eigenen aufgenommenen Sätzen.
- Ein Wave-File ladet ihr in Matlab, indem ihr wavread(’dateiname.wav’);
benutzt. Weiterhin sollten sich alle benötigten Dateien in dem Verzeichnis befinden, in
dem ihr arbeitet.
- Die benötigte Faltung führt die Funktion conv aus.
- Die Impulsantwort eines Echos ist sehr leicht zu realisieren. Ein Echo ist im nur die
mehrfache Wiederholung des Eingangssignals mit kleiner werdenden
Lautstärkepegeln. Deshalb braucht ihr nur einen Vektor, der mehrere, leiser werdende
Diracimpulse enthält, also bspw.
impulsantwort = [1 0 0.5 0 0.2];
Der erste Diracimpuls ist hier in der ursprünglichen Lautstärke 1, der nächste ist bei
0.5 und das dritte „Echo“ ist noch 0.2 mal so laut wie der ursprüngliche Impuls.
- Eure Aufgabe ist jetzt noch, den durch den Eingangsparameter delay vorgegebenen
Abstand der Impulse zu implementieren.
Wenn die Samplefrequenz des Audiofiles also bspw. 22050 Hz ist, wäre eine Sekunde
Audio also ein Vektor der Länge 22050. Wenn ihr also ein Impulsantwort mit einem
Delay von 100ms dafür implementieren wollt, muss der Zwischenraum zwischen den
Diracimpulsen also (22050 / 10) – 1 Nullen sein. Benutzt dafür die Funktion zeros!
Übrigens: Vektoren mit der Dimension 1 x m vertragen sich schlecht mit Vektoren
m x 1. Wenn ihr jeweils in das andere umwandeln müsst, reicht ein Hochkomma
hinter dem Vektor zum transponieren, bspw. wäre impulsantwort’ der
transponierte Vektor von impulsantwort.
Ein letzter Hinweis: Die Funktion ist nicht kompliziert! Es braucht keine Schleifen
oder if-Abfragen. Im Prinzip könnte eine Zuweisung zu result reichen, aber 3 bis 4
Zwischenschritte lesen sich besser!
Fragen:
o Nach der Faltung können im Ergebnis Werte über 1 und unter -1
auftreten. Warum?
o Ist die Funktion normalize ein LTI System? Begründen!
Zur Abgabe: Reicht bitte die Datei echo.m bei der Abgabe mit ein. Die
Antworten zu den Fragen können auf die Seite mit den anderen Antworten.
b) Fouriertransformation (1)
Wofür benutzt man die Fouriertransformation?
Was ist der Unterschied zur Fourierreihe?
4. Autokorrelation (3)
Matlab-Aufgabe
Ladet in Matlab einen stimmhaften und einen stimmlosen Laut in einen Vektor
Wendet auf beide Vektoren die Autokorrelation an
Æ unter Matlab mit der Funktion xcorr (ACHTUNG: Diese Funktion gehört
zu „Signal Processing Toolbox“. Wenn du keinen Zugriff zu dieser Toolbox
habst, benutz bitte Octave!)
Æ unter Octave mit der Funktion autocor
Plottet beide Ergebnisse mit plot(vektorname);
Beschreibt kurz die Unterschiede in beiden Plots. Gebt für die Unterschiede auch
eine kurze Erklärung. Gebt die Plots mit ab!