Applets:Periodendauer periodischer Signale: Difference between revisions

From LNTwww
No edit summary
No edit summary
Line 1: Line 1:
{{LntExplicitLoadMathjax}}
<p>
{{BlaueBox|TEXT=
$x(t) = A_1\cdot cos\Big(2\pi f_1\cdot t- \frac{2\pi}{360}\cdot \phi_1\Big)+A_2\cdot cos\Big(2\pi f_2\cdot t- \frac{2\pi}{360}\cdot \phi_2\Big)$
}}
</p>
<html>
<html>
<head>
<head>
     <meta charset="utf-8" />
     <meta charset="utf-8" />
     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.6/jsxgraphcore.js"></script>
     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.6/jsxgraphcore.js"></script>
<script type="text/javascript" src="https://en.lntwww.de/MathJax/unpacked/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full,local/mwMathJaxConfig"></script>  
    <!-- <script type="text/javascript" src="https://en.lntwww.de/MathJax/unpacked/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full,local/mwMathJaxConfig"></script> -->
     <style>
     <style>
         .button {
         .button {
Line 58: Line 66:
     // Grundeinstellungen der beiden Applets
     // Grundeinstellungen der beiden Applets
     JXG.Options.text.useMathJax = true;
     JXG.Options.text.useMathJax = true;
     var cnfBox = JXG.JSXGraph.initBoard('cnfBoxHtml', {
     cnfBox = JXG.JSXGraph.initBoard('cnfBoxHtml', {
         showCopyright: false, showNavigation: false, axis: false,
         showCopyright: false, showNavigation: false, axis: false,
         grid: false, zoom: { enabled: false }, pan: { enabled: false },
         grid: false, zoom: { enabled: false }, pan: { enabled: false },
         boundingbox: [-1, 2.2, 12.4, -2.2]
         boundingbox: [-1, 2.2, 12.4, -2.2]
     });
     });
     var pltBox = JXG.JSXGraph.initBoard('pltBoxHtml', {
     pltBox = JXG.JSXGraph.initBoard('pltBoxHtml', {
         showCopyright: false, axis: false,
         showCopyright: false, axis: false,
         zoom: { factorX: 1.1, factorY: 1.1, wheel: true, needshift: true, eps: 0.1 },
         zoom: { factorX: 1.1, factorY: 1.1, wheel: true, needshift: true, eps: 0.1 },
Line 81: Line 89:


     // Erstellen der Schieberegler
     // Erstellen der Schieberegler
     a = cnfBox.create('slider', [ [-0.7, 1.5], [3, 1.5], [0, 0.5, 1] ], {
     sldA1 = cnfBox.create('slider', [ [-0.7, 1.5], [3, 1.5], [0, 0.5, 1] ], {
         suffixlabel: '$A_1=$',
         suffixlabel: '$A_1=$',
         unitLabel: 'V', snapWidth: 0.01
         unitLabel: 'V', snapWidth: 0.01
         }),
         }),
     b = cnfBox.create('slider', [ [-0.7, 0.5], [3, 0.5], [0, 1, 10] ], {
     sldF1 = cnfBox.create('slider', [ [-0.7, 0.5], [3, 0.5], [0, 1, 10] ], {
         suffixlabel: '$f_1=$',
         suffixlabel: '$f_1=$',
         unitLabel: 'kHz', snapWidth: 0.1
         unitLabel: 'kHz', snapWidth: 0.1
     }),
     }),
     c = cnfBox.create('slider', [ [-0.7, -0.5], [3, -0.5], [-180, 0, 180] ], {
     sldPHI1 = cnfBox.create('slider', [ [-0.7, -0.5], [3, -0.5], [-180, 0, 180] ], {
         suffixlabel: '$\\phi_1=$',
         suffixlabel: '$\\phi_1=$',
         unitLabel: 'Grad', snapWidth: 5
         unitLabel: 'Grad', snapWidth: 5
     }),
     }),
     d = cnfBox.create('slider', [ [6, 1.5], [9.7, 1.5], [0, 0.5, 1] ], {
     sldA2 = cnfBox.create('slider', [ [6, 1.5], [9.7, 1.5], [0, 0.5, 1] ], {
         suffixlabel: '$A_2=$',
         suffixlabel: '$A_2=$',
         unitLabel: 'V', snapWidth: 0.01
         unitLabel: 'V', snapWidth: 0.01
     }),
     }),
     e = cnfBox.create('slider', [ [6, 0.5], [9.7, 0.5], [0, 2, 10] ], {
     sldF2 = cnfBox.create('slider', [ [6, 0.5], [9.7, 0.5], [0, 2, 10] ], {
         suffixlabel: '$f_2=$',
         suffixlabel: '$f_2=$',
         unitLabel: 'kHz', snapWidth: 0.1
         unitLabel: 'kHz', snapWidth: 0.1
     }),
     }),
     g = cnfBox.create('slider', [ [6, -0.5], [9.7, -0.5], [-180, 90, 180] ], {
     sldPHI2 = cnfBox.create('slider', [ [6, -0.5], [9.7, -0.5], [-180, 90, 180] ], {
         suffixlabel: '$\\phi_2=$',
         suffixlabel: '$\\phi_2=$',
         unitLabel: 'Grad', snapWidth: 5
         unitLabel: 'Grad', snapWidth: 5
     }),
     }),
     t = cnfBox.create('slider', [ [-0.7, -1.5], [3, -1.5], [0, 0, 10] ], {
     sldT = cnfBox.create('slider', [ [-0.7, -1.5], [3, -1.5], [0, 0, 10] ], {
         suffixlabel: '$t=$',
         suffixlabel: '$t=$',
         unitLabel: 's', snapWidth: 0.2
         unitLabel: 's', snapWidth: 0.2
Line 112: Line 120:
     // Definition der Funktion
     // Definition der Funktion
     signaldarstellung = pltBox.create('functiongraph', [function(x) {
     signaldarstellung = pltBox.create('functiongraph', [function(x) {
         return (a.Value() * Math.cos(2 * Math.PI * b.Value() * x - 2 * Math.PI * c.Value() / 360) + d.Value() * Math.cos(2 * Math.PI * e.Value() * x - 2 * Math.PI * g.Value() / 360))
         return (sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * x - 2 * Math.PI * sldPHI1.Value() / 360) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * x - 2 * Math.PI * sldPHI2.Value() / 360))
     }], {
     }], {
         strokeColor: "red"
         strokeColor: "red"
Line 123: Line 131:
         },
         },
         function() {
         function() {
             return a.Value() * Math.cos(2 * Math.PI * b.Value() * (Math.round(getT0() * 100) / 100) - 2 * Math.PI * c.Value() / 360) +
             return sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * (Math.round(getT0() * 100) / 100) - 2 * Math.PI * sldPHI1.Value() / 360) +
                 d.Value() * Math.cos(2 * Math.PI * e.Value() * (Math.round(getT0() * 100) / 100) - 2 * Math.PI * g.Value() / 360);
                 sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * (Math.round(getT0() * 100) / 100) - 2 * Math.PI * sldPHI2.Value() / 360);
         }],
         }],
         { color: "blue", fixed: true, label: false, size: 1, name: '' }
         { color: "blue", fixed: true, label: false, size: 1, name: '' }
Line 147: Line 155:
     function getT0() {
     function getT0() {
         var A, B, C, Q;
         var A, B, C, Q;
         if (b.Value() < e.Value()) {
         if (sldF1.Value() < sldF2.Value()) {
             A = b.Value();
             A = sldF1.Value();
             B = e.Value();
             B = sldF2.Value();
         } else {
         } else {
             B = b.Value();
             B = sldF1.Value();
             A = e.Value();
             A = sldF2.Value();
         }
         }
         // console.log('Berechne T0 mit A=' + A, 'B=' + B);
         // console.log('Berechne T0 mit A=' + A, 'B=' + B);
Line 175: Line 183:
     // Ausgabe des Wertes x(t)
     // Ausgabe des Wertes x(t)
     setInterval(function() {
     setInterval(function() {
         document.getElementById("x(t)").innerHTML = Math.round((a.Value() * Math.cos(2 * Math.PI * b.Value() * t.Value() - 2 * Math.PI * c.Value() / 360) + d.Value() * Math.cos(2 * Math.PI * e.Value() * t.Value() - 2 * Math.PI * g.Value() /
         document.getElementById("x(t)").innerHTML = Math.round((sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * sldT.Value() - 2 * Math.PI * sldPHI1.Value() / 360) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * sldT.Value() - 2 * Math.PI * sldPHI2.Value() /
             360)) * 1000) / 1000;
             360)) * 1000) / 1000;
     }, 50);
     }, 50);
Line 181: Line 189:
     // Ausgabe des Wertes x(t+T_0)
     // Ausgabe des Wertes x(t+T_0)
     setInterval(function() {
     setInterval(function() {
         document.getElementById("x(t+T_0)").innerHTML = Math.round((a.Value() * Math.cos(2 * Math.PI * b.Value() * (t.Value() + Math.round(getT0() * 1000) / 1000) - c.Value()) + d.Value() * Math.cos(2 * Math.PI * e.Value() * (t.Value() +
         document.getElementById("x(t+T_0)").innerHTML = Math.round((sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * (sldT.Value() + Math.round(getT0() * 1000) / 1000) - sldPHI1.Value()) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * (sldT.Value() +
             Math.round(getT0() * 1000) / 1000) - g.Value())) * 1000) / 1000;
             Math.round(getT0() * 1000) / 1000) - sldPHI2.Value())) * 1000) / 1000;
     }, 50);
     }, 50);


     // Ausgabe des Wertes x(t+2T_0)
     // Ausgabe des Wertes x(t+2T_0)
     setInterval(function() {
     setInterval(function() {
         document.getElementById("x(t+2T_0)").innerHTML = Math.round((a.Value() * Math.cos(2 * Math.PI * b.Value() * (t.Value() + 2 * Math.round(getT0() * 1000) / 1000) - c.Value()) + d.Value() * Math.cos(2 * Math.PI * e.Value() * (t.Value() +
         document.getElementById("x(t+2T_0)").innerHTML = Math.round((sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * (sldT.Value() + 2 * Math.round(getT0() * 1000) / 1000) - sldPHI1.Value()) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * (sldT.Value() +
             2 * Math.round(getT0() * 1000) / 1000) - g.Value())) * 1000) / 1000;
             2 * Math.round(getT0() * 1000) / 1000) - sldPHI2.Value())) * 1000) / 1000;
     }, 50);
     }, 50);


Line 195: Line 203:
         var x = new Array(50000);
         var x = new Array(50000);
         for (var i = 0; i < 50001; i++) {
         for (var i = 0; i < 50001; i++) {
             x[i] = Math.round((a.Value() * Math.cos(2 * Math.PI * b.Value() * (i / 1000) - 2 * Math.PI * c.Value() / 360) + d.Value() * Math.cos(2 * Math.PI * e.Value() * (i / 1000) - 2 * Math.PI * g.Value() / 360)) * 1000) / 1000;
             x[i] = Math.round((sldA1.Value() * Math.cos(2 * Math.PI * sldF1.Value() * (i / 1000) - 2 * Math.PI * sldPHI1.Value() / 360) + sldA2.Value() * Math.cos(2 * Math.PI * sldF2.Value() * (i / 1000) - 2 * Math.PI * sldPHI2.Value() / 360)) * 1000) / 1000;
         }
         }
         document.getElementById("x_max").innerHTML = Math.max.apply(Math, x);
         document.getElementById("x_max").innerHTML = Math.max.apply(Math, x);
Line 221: Line 229:
</body>
</body>
</html>
</html>
{{Display}}

Revision as of 09:46, 18 September 2017

$x(t) = A_1\cdot cos\Big(2\pi f_1\cdot t- \frac{2\pi}{360}\cdot \phi_1\Big)+A_2\cdot cos\Big(2\pi f_2\cdot t- \frac{2\pi}{360}\cdot \phi_2\Big)$

$x(t)$= $x(t+ T_0)$= $x(t+2T_0)$=
$x_{\text{max}}$= $T_0$=