Update README.md

This commit is contained in:
Luke 2018-04-03 10:39:01 +02:00 committed by GitHub
parent c3bbc333a1
commit 265df20c0b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 0 additions and 91 deletions

View File

@ -1,94 +1,3 @@
# NLMSvariants
## Aufgabenstellung
Aus der PDF entnommen mit der Auswahl an PVL-Themen
### "Vergleich von linearen Prädiktionsstrategien (NLMSvariants)"
Das Voraussagen von Signalwerten ist ein Schlüsselelement in modernen Kompressionssystemen.
Aber auch in anderen Anwendungsgebieten ist die Prädiktion von Ereignissen erforderlich.
Aufgabe ist es, ein Matlab/SciLab/Octave/C-Programm zu schreiben, das Varianten eines bestimmten
Prädiktionsverfahrens miteinander vergleicht.
Adaptive Prädiktionsfilter passen sich der Charakteristik der Signale an und gehören somit in den
Bereich des maschinellen Lernens. So genannte Least-Mean-Square-Filter (LMS) sind adaptive
Filter mit einer vergleichsweisen geringen Komplexität. Im Wesentlichen werden M vorangegangene
Signalwerte gewichtet überlagert, um einen Schätzwert für die aktuelle Position zu generieren.
Xˉ [𝑛] = <20>𝑎𝑗[𝑛] ∙ 𝑥[𝑛 𝑗]
Der Prädiktionsfehler lautet: e[𝑛] = 𝑥[𝑛] 𝑥'[𝑛]. Um die Prädiktionsfehlerenergie zu minimieren
müssen die Filterkoeffizienten nachgeführt (aktualisiert) werden
𝑎𝑗[𝑛 + 1] = 𝑎𝑗[𝑛] + 𝜇 ∙ 𝑒[𝑛] ∙ 𝑥[𝑛𝑗]
||𝐱[𝑛]||
2 mit ||𝐱[𝑛]||
2 = ∑ (𝑥[𝑛 𝑗]) 𝑀 2
𝑗=1
während 0 < 𝜇 1 die Lernrate ist.
Leider funktioniert das nur gut, wenn der Mittelwert von x[n] gleich Null ist. Für Bilder und auch
teilweise für Sprachsignale ist das nicht gegeben. Als Lösung kommen drei Varianten in Frage,
welche die obigen Formeln leicht abwandeln:
1. lokalen Mittelwert abziehen
𝑥
<EFBFBD>[𝑛] = 𝑥̅[𝑛] + ∑ 𝑎𝑗[𝑛] ∙ (𝑥[𝑛 𝑗] 𝑥̅[𝑛]) 𝑀
𝑗=1 mit 𝑥̅[𝑛] = 1
𝑀𝑥[𝑛 𝑗] 𝑀
𝑗=1
und
𝑎𝑗[𝑛 + 1] = 𝑎𝑗[𝑛] + 𝜇 ∙ 𝑒[𝑛] ∙
𝑥[𝑛𝑗]−𝑥̅[𝑛]
||𝐱[𝑛]||
2 mit ||𝐱[𝑛]||
2 = ∑ (𝑥[𝑛 𝑗] 𝑥<>[𝑛]) 𝑀 2
𝑗=1
2. Bezug auf direkten Vorgänger nehmen
𝑥
<EFBFBD>[𝑛] = 𝑥[𝑛 1] + ∑ 𝑎𝑗[𝑛] ∙ (𝑥[𝑛 1] 𝑥[𝑛 𝑗 1]) 𝑀
𝑗=1
und
𝑎𝑗[𝑛 + 1] = 𝑎𝑗[𝑛] + 𝜇 ∙ 𝑒[𝑛] ∙
𝑥[𝑛1]𝑥[𝑛𝑗1]
||𝐱[𝑛]||
2 mit ||𝐱[𝑛]||
2 = ∑ (𝑥[𝑛 1] 𝑥[𝑛 𝑗 1]) 𝑀 2
𝑗=1
3. differentiellen Bezug auf Vorgänger nehmen
𝑥
<EFBFBD>[𝑛] = 𝑥[𝑛 1] + ∑ 𝑎𝑗[𝑛] ∙ (𝑥[𝑛 𝑗] 𝑥[𝑛 𝑗 1]) 𝑀
𝑗=1
und
𝑎𝑗[𝑛 + 1] = 𝑎𝑗[𝑛] + 𝜇 ∙ 𝑒[𝑛] ∙
𝑥[𝑛𝑗]𝑥[𝑛𝑗1]
||𝐱[𝑛]||
2 mit ||𝐱[𝑛]||
2 = ∑ (𝑥[𝑛 𝑗] 𝑥[𝑛 𝑗 1]) 𝑀 2
𝑗=1
Das originale Verfahren und die drei Varianten sind zu implementieren und mit verschiedenen
Testsignalen (synthetisierte und reale, N>= 500) und verschiedene M zu prüfen. Als Gütekriterium
ist die mittlere Energie des Schätzfehlers 𝐸 = 1
𝑁
<EFBFBD> ∑ (𝑒[𝑛]) 𝑁 2 𝑛=1 heranzuziehen. Bei selbstgenerierten
Signalen könnte auch die Konvergenz der Filterkoeffizienten zu den richtigen Werten
untersucht werden.
Weitere Unterstützung wird bei Bedarf gegeben. Alle Untersuchungen sind schriftlich zu dokumentieren.
Neben der schriftlichen Arbeit sind alle Quellen (Programmcode, Texte, Testsignale)
und Tools abzugeben, damit eine Reproduktion der Ergebnisse möglich ist.
Teilaufgaben:
* Koordination
* Recherche
* Programmierung
* Dokumentation (Grundlagen, Methode, Änderungen am Quellcode, Kompressionsergebnisse)