Swedish adaptation: Instegscertifikat and HAREC content
- Sections and slides rewritten in Swedish; German law and institutions replaced by Swedish/CEPT/ITU equivalents (PTS, SSA, PTSFS 2025:1, SSMFS 2008:18), unverified statements marked "% TODO VERIFY" - New toc: INSTEG, HAREC, UPPGRADERING; section idents are Swedish (see ident-map.tsv) - Exam-question tags, BNetzA question pool, solutions and the German SWL course removed - Static pages, snippets, applets, READMEs and image alt-texts translated - TikZ labels translated; SVG drawings regenerated (drawing 689 still fails to build upstream: it references a missing photo) - Changed from the original: not endorsed by DARC e.V., SSA or PTS Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
<b>50 Hz / 100 Hz Brummton</b>
|
||||
<b>Brum på 50 Hz / 100 Hz</b>
|
||||
<p>
|
||||
Hier kannst du Brummtöne mit den Frequenzen $\qty{50}{\hertz}$ und $\qty{100}{\hertz}$ anhören.
|
||||
Här kan du lyssna på brumtoner med frekvenserna $\qty{50}{\hertz}$ och $\qty{100}{\hertz}$.
|
||||
</p>
|
||||
|
||||
<div class="d-flex gap-2 flex-wrap">
|
||||
<button type="button" class="btn btn-primary" onclick="playRippleTone(50)">
|
||||
Play 50 Hz
|
||||
Spela 50 Hz
|
||||
</button>
|
||||
|
||||
<button type="button" class="btn btn-primary" onclick="playRippleTone(100)">
|
||||
Play 100 Hz
|
||||
Spela 100 Hz
|
||||
</button>
|
||||
|
||||
<button type="button" class="btn btn-secondary" onclick="stopTone()">
|
||||
@@ -18,7 +18,7 @@ Hier kannst du Brummtöne mit den Frequenzen $\qty{50}{\hertz}$ und $\qty{100}{\
|
||||
</div>
|
||||
|
||||
<p id="toneStatus" class="mt-3 mb-0 text-muted">
|
||||
Kein Ton aktiv.
|
||||
Ingen ton aktiv.
|
||||
</p>
|
||||
|
||||
<script>
|
||||
@@ -46,26 +46,26 @@ Kein Ton aktiv.
|
||||
phase: 0 ... 1
|
||||
|
||||
Modell:
|
||||
- Start unten
|
||||
- relativ schneller, weicher Anstieg
|
||||
- abgerundeter Scheitel
|
||||
- langsamer, nahezu linearer Abfall
|
||||
- start nere
|
||||
- relativt snabb, mjuk stigning
|
||||
- avrundad topp
|
||||
- långsammare, nästan linjärt fall
|
||||
|
||||
Das ist keine exakte Netzteil-Simulation, sondern eine gut hörbare
|
||||
Näherung an die im Bild gezeigte Restwelligkeit.
|
||||
Detta är ingen exakt simulering av ett nätaggregat, utan en väl hörbar
|
||||
approximation av det rippel som visas i bilden.
|
||||
*/
|
||||
|
||||
const chargePart = 0.36; // Anteil der Periode für den Anstieg
|
||||
const chargePart = 0.36; // andel av perioden för uppladdningen
|
||||
|
||||
if (phase < chargePart) {
|
||||
const x = phase / chargePart;
|
||||
|
||||
// schneller Anstieg mit weicher Rundung
|
||||
// snabb stigning med mjuk avrundning
|
||||
return -1 + 2 * smoothstep(x);
|
||||
} else {
|
||||
const x = (phase - chargePart) / (1 - chargePart);
|
||||
|
||||
// langsamer Abfall, leicht geglättet
|
||||
// långsamt fall, lätt utjämnat
|
||||
return 1 - 2 * x;
|
||||
}
|
||||
}
|
||||
@@ -74,10 +74,10 @@ Kein Ton aktiv.
|
||||
const sampleRate = audioContext.sampleRate;
|
||||
|
||||
/*
|
||||
1 Sekunde Buffer:
|
||||
Bei 50 Hz enthält er 50 Perioden,
|
||||
bei 100 Hz enthält er 100 Perioden.
|
||||
Dadurch läuft der Loop sauber.
|
||||
1 sekunds buffert:
|
||||
Vid 50 Hz innehåller den 50 perioder,
|
||||
vid 100 Hz 100 perioder.
|
||||
Därmed loopar den rent.
|
||||
*/
|
||||
const duration = 1.0;
|
||||
const length = Math.round(sampleRate * duration);
|
||||
@@ -96,9 +96,9 @@ Kein Ton aktiv.
|
||||
}
|
||||
|
||||
/*
|
||||
Gleichanteil entfernen.
|
||||
Eine echte Ausgangsspannung hätte z. B. 12 V DC plus kleine Welligkeit.
|
||||
Lautsprecher sollen aber nur den hörbaren Wechselanteil bekommen.
|
||||
Ta bort likspänningskomponenten.
|
||||
En verklig utspänning skulle t.ex. vara 12 V DC plus litet rippel.
|
||||
Högtalaren ska dock bara få den hörbara växelkomponenten.
|
||||
*/
|
||||
const mean = sum / length;
|
||||
|
||||
@@ -109,7 +109,7 @@ Kein Ton aktiv.
|
||||
maxAbs = Math.max(maxAbs, Math.abs(data[i]));
|
||||
}
|
||||
|
||||
// Normalisieren
|
||||
// normalisera
|
||||
if (maxAbs > 0) {
|
||||
for (let i = 0; i < length; i++) {
|
||||
data[i] /= maxAbs;
|
||||
@@ -131,7 +131,7 @@ Kein Ton aktiv.
|
||||
sourceNode.buffer = buffer;
|
||||
sourceNode.loop = true;
|
||||
|
||||
// moderate Lautstärke mit kurzem Fade-in gegen Knackser
|
||||
// måttlig volym med kort fade-in mot knäppar
|
||||
gainNode.gain.setValueAtTime(0.0, audioContext.currentTime);
|
||||
gainNode.gain.linearRampToValueAtTime(0.2, audioContext.currentTime + 0.03);
|
||||
|
||||
@@ -141,7 +141,7 @@ Kein Ton aktiv.
|
||||
sourceNode.start();
|
||||
|
||||
document.getElementById("toneStatus").textContent =
|
||||
frequency + " Hz geformter Brummton aktiv.";
|
||||
frequency + " Hz formad brumton aktiv.";
|
||||
}
|
||||
|
||||
function stopTone(updateStatus = true) {
|
||||
@@ -154,7 +154,7 @@ Kein Ton aktiv.
|
||||
gainNode.gain.linearRampToValueAtTime(0.0, now + 0.03);
|
||||
sourceNode.stop(now + 0.04);
|
||||
} catch (e) {
|
||||
// Falls bereits gestoppt
|
||||
// om redan stoppad
|
||||
}
|
||||
|
||||
sourceNode = null;
|
||||
@@ -162,7 +162,7 @@ Kein Ton aktiv.
|
||||
}
|
||||
|
||||
if (updateStatus) {
|
||||
document.getElementById("toneStatus").textContent = "Kein Ton aktiv.";
|
||||
document.getElementById("toneStatus").textContent = "Ingen ton aktiv.";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user