This repository has been archived on 2022-03-27. You can view files and clone it, but cannot push or open issues/pull-requests.
presis/revealjs/laser/5-codierung.md

71 lines
1.9 KiB
Markdown

# Codierung
<notes>
* Audio-Daten (Schallwellen)
* digital codiert
* auch beschädigt abspielbar
</notes>
---
## Codierung von Ton
<div class="overlay-container">
<div class="fragment"><img height="350px" src="img/nyquist-shannon-1.svg"></div>
<div class="fragment"><img height="350px" src="img/nyquist-shannon-2.svg"></div>
<div class="fragment"><img height="350px" src="img/nyquist-shannon-3.svg"></div>
</div>
<notes>
* Schallwellen (grün)
* Annäherung an Schallwellen
* Samples (rot)
* repräsentiert: Zeitpunkt und Amplitude (wie stark oben/unten; Lautstärke)
* ungefähres Signal kann rekonstruiert werden
</notes>
---
## Fehlerkorrektur
<script>
document.addEventListener('DOMContentLoaded', () => {
const cycles = {
fehlerkorrektur: ['img/fehlerkorrektur.svg', 'img/fehlerkorrektur-scrambled.svg']
}
function setCycle(id, cycle) {
let image = document.getElementById(id)
src = cycles[id][cycle]
if (src === undefined) {
src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='
}
image.src = src
}
Reveal.addEventListener('fragmentshown', e => {
let el = e.fragment
if (el.hasAttribute('data-cycle')) setCycle(el.getAttribute('data-id'), el.getAttribute('data-cycle'))
})
Reveal.addEventListener('fragmenthidden', e => {
let el = e.fragment
if (el.hasAttribute('data-cycle')) setCycle(el.getAttribute('data-id'), el.getAttribute('data-cycle') - 1)
})
})
</script>
<img id="fehlerkorrektur" src="" height="500px">
<div class="fragment" data-id="fehlerkorrektur" data-cycle="0"></div>
<div class="fragment" data-id="fehlerkorrektur" data-cycle="1"></div>
<notes>
* auch sehr komplexes Thema, wieder stark vereinfacht
* Datenstrom wird unterteilt
* an jedes Paket: Prüfsumme
* kann Fehler im Paket erkennen und korrigieren
* zusätzlich: verteilt
* kann trotz 2.4 mm langen Kratzern abspielen
</notes>