Applets:Spektrum: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
Zeile 6: Zeile 6:
 
}}
 
}}
  
==Zeitfunktion und zugehörige Spektralfunktion==
 
 
<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="http://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.6/jsxgraphcore.js"></script>
    <!-- <script type="text/javascript" src="https://www.lntwww.de/MathJax/unpacked/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full,local/mwMathJaxConfig"></script> -->
+
  <script type="text/javascript" src="https://cdn.rawgit.com/mathjax/MathJax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    <!-- <script type="text/javascript" src="https://cdn.rawgit.com/mathjax/MathJax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full"></script> -->
+
  <style>
    <style>
+
  .button1{
        .button {
+
    background-color: black;
            background-color: black;
+
    border: none;
            border: none;
+
    color: white;
            color: white;
+
    font-family: arial;
            font-family: arial;
+
    padding: 8px 20px;
            padding: 8px 20px;
+
    text-align: center;
            text-align: center;
+
    text-decoration: none;
            text-decoration: none;
+
    display: inline-block;
            display: inline-block;
+
    font-size: 16px;
            font-size: 16px;
+
    border-radius: 15px;
            border-radius: 15px;
+
    position:relative;
        }
+
    top: 750px;
        .button:active {
+
    left: 830px;
            background-color: #939393;
+
  }
        }
+
 
        table {
+
  .button1:active {
            border-collapse: separate; 
+
    background-color: #939393;}
            border-spacing: 20px 0;
+
 
        }
+
  </style>
    </style>
 
 
</head>
 
</head>
 +
<body>
  
 +
<p><B><span style="position:absolute; top:55px; left:80px; font-family:arial; font-size:0.750em; color:red;">Impuls 1
 +
  <select class="dropdown1" id ="Impuls 1" onchange ="change1(this)">
 +
    <option selected value='0'>Gau&szlig;</option>
 +
    <option value='1'>Rechteck</option>
 +
    <option value='2'>Dreieck</option>
 +
    <option value='3'>Trapez</option>
 +
    <option value='4'>Cos-Rolloff</option>
 +
    <option value='5'>Inaktiv</option>
 +
  </select>
 +
</span></B></p>
  
 +
<p><B><span style="position:absolute; top:55px; left:900px; font-family:arial; font-size:0.750em; color:blue;">Impuls 2
 +
  <select class="dropdown2" id ="Impuls 2" onchange ="change2(this)">
 +
    <option value='0'>Gau&szlig;</option>
 +
    <option value='1'>Rechteck</option>
 +
    <option value='2'>Dreieck</option>
 +
    <option selected value='3'>Trapez</option>
 +
    <option value='4'>Cos-Rolloff</option>
 +
    <option value='5'>Inaktiv</option>
 +
  </select>
 +
</span></B></p>
  
<body onload="drawNow()">
+
<form id="myForm">
<!-- Resetbutton, Checkbox, Regler und Plots -->
+
<button class="button1" style="font-size:0.750em" onclick="zurueck()">Reset</button>
<p>
+
<p><span style="position:absolute; top:730px; left:840px; font-family:arial; font-size:0.750em;">mit Gitter<input name="gridbox" id="gridbox" type="checkbox" onclick="showgrid();" checked="checked"></span></p>
    <input type="checkbox" id="gridbox" onclick="showgrid();" checked> <label for="gridbox">Gitterlinien Zeigen</label>
 
    <button class="button" onclick="drawNow();">Reset</button>
 
</p>
 
<div id="cnfBoxHtml" class="jxgbox" style="width:600px; height:100px; float:top; margin:-10px 20px 100px 0px;"></div>
 
<div id="pltBoxHtml" class="jxgbox" style="width:600px; height:600px; border:1px solid black; margin:-10px 20px 100px 0px;"></div>
 
  
<!-- Ausgabefelder -->
+
<div id="pltBox1" class="jxgbox" style="width:600px; height:300px; border:1px solid black; margin:50px 20px 100px 220px;"></div>
<table>
+
<div id="pltBox2" class="jxgbox" style="width:600px; height:300px; border:1px solid black; margin:50px 20px 100px 220px;"></div>
    <tr>
+
<div id="cnfBox1" class="jxgbox" style="width:200px; height:600px; border:1px solid black; margin:-805px 10px 100px 10px;"></div>
        <td>$x(t)$=     <span id="x(t)"></span>    </td>
+
<div id="cnfBox2" class="jxgbox" style="width:200px; height:600px; border:1px solid black; margin:-700px 800px 100px 830px;"></div>
        <td>$x(t+ T_0)$=<span id="x(t+T_0)"></span> </td>
+
<div id="cnfBox3" class="jxgbox" style="width:600px; height:50px; border:1px solid black; margin:-380px 800px 100px 220px;"></div>
        <td>$x(t+2T_0)$=<span id="x(t+2T_0)"></span></td>
 
    </tr>
 
    <tr>
 
        <td>$x_{\text{max}}$=<span id="x_max"></span></td>
 
        <td>$T_0$=           <span id="T_0"></span>  </td>
 
    </tr>
 
</table>
 
  
  
 
<script type="text/javascript">
 
<script type="text/javascript">
    function drawNow() {
 
        // Grundeinstellungen der beiden Applets
 
        JXG.Options.text.useMathJax = true;
 
        cnfBox = JXG.JSXGraph.initBoard('cnfBoxHtml', {
 
            showCopyright: false, showNavigation: false, axis: false,
 
            grid: false, zoom: { enabled: false }, pan: { enabled: false },
 
            boundingbox: [-1, 2.2, 12.4, -2.2]
 
        });
 
        pltBox = JXG.JSXGraph.initBoard('pltBoxHtml', {
 
            showCopyright: false, axis: false,
 
            zoom: { factorX: 1.1, factorY: 1.1, wheel: true, needshift: true, eps: 0.1 },
 
            grid: false, boundingbox: [-0.5, 2.2, 12.4, -2.2]
 
        });
 
        cnfBox.addChild(pltBox);
 
        // Einstellungen der Achsen
 
        xaxis = pltBox.create('axis', [[0, 0], [1, 0]], {
 
            name: '$\\dfrac{t}{T}$',
 
            withLabel: true, label: { position: 'rt', offset: [-25, -10] }
 
        });
 
        yaxis = pltBox.create('axis', [[0, 0], [0, 1]], {
 
            name: '$x(t)$',
 
            withLabel: true, label: { position: 'rt', offset: [10, -5] }
 
        });
 
        // Erstellen der Schieberegler
 
        a = cnfBox.create('slider', [ [-0.7, 1.5], [3, 1.5], [0, 0.5, 1] ], {
 
            suffixlabel: '$A_1=$',
 
            unitLabel: 'V', snapWidth: 0.01
 
            }),
 
        b = cnfBox.create('slider', [ [-0.7, 0.5], [3, 0.5], [0, 1, 10] ], {
 
            suffixlabel: '$f_1=$',
 
            unitLabel: 'kHz', snapWidth: 0.1
 
        }),
 
        c = cnfBox.create('slider', [ [-0.7, -0.5], [3, -0.5], [-180, 0, 180] ], {
 
            suffixlabel: '$\\phi_1=$',
 
            unitLabel: 'Grad', snapWidth: 5
 
        }),
 
        d = cnfBox.create('slider', [ [6, 1.5], [9.7, 1.5], [0, 0.5, 1] ], {
 
            suffixlabel: '$A_2=$',
 
            unitLabel: 'V', snapWidth: 0.01
 
        }),
 
        e = cnfBox.create('slider', [ [6, 0.5], [9.7, 0.5], [0, 2, 10] ], {
 
            suffixlabel: '$f_2=$',
 
            unitLabel: 'kHz', snapWidth: 0.1
 
        }),
 
        g = cnfBox.create('slider', [ [6, -0.5], [9.7, -0.5], [-180, 90, 180] ], {
 
            suffixlabel: '$\\phi_2=$',
 
            unitLabel: 'Grad', snapWidth: 5
 
        }),
 
        t = cnfBox.create('slider', [ [-0.7, -1.5], [3, -1.5], [0, 0, 10] ], {
 
            suffixlabel: '$t=$',
 
            unitLabel: 's', snapWidth: 0.2
 
        }),
 
        // Definition der Funktion
 
        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))
 
        }], {
 
            strokeColor: "red"
 
        });
 
        // Definition des Punktes p_T0, des Hilfspunktes p_T0h und der Geraden l_T0 für Periodendauer T_0
 
        p_T0 = pltBox.create('point', [
 
            function() {
 
                return (Math.round(getT0() * 100) / 100);
 
            },
 
            function() {
 
                return a.Value() * Math.cos(2 * Math.PI * b.Value() * (Math.round(getT0() * 100) / 100) - 2 * Math.PI * c.Value() / 360) +
 
                    d.Value() * Math.cos(2 * Math.PI * e.Value() * (Math.round(getT0() * 100) / 100) - 2 * Math.PI * g.Value() / 360);
 
            }],
 
            { color: "blue", fixed: true, label: false, size: 1, name: '' }
 
        );
 
        p_T0h = pltBox.create('point',
 
            [function() { return (Math.round(getT0() * 100) / 100); }, 2],
 
            { visible: false, color: "blue", fixed: true, label: false, size: 1, name: '' }
 
        );
 
        l_T0 = pltBox.create('line', [p_T0, p_T0h])
 
        // Bestimmung des Wertes T_0 mit der Funktion von Siebenwirth
 
        setInterval(function() {
 
            document.getElementById("T_0").innerHTML = Math.round(getT0() * 100) / 100;
 
          }, 50);
 
        function isInt(n) {
 
            return n % 1 === 0;
 
        }
 
        function getT0() {
 
            var A, B, C, Q;
 
            if (b.Value() < e.Value()) {
 
                A = b.Value();
 
                B = e.Value();
 
            } else {
 
                B = b.Value();
 
                A = e.Value();
 
            }
 
            // console.log('Berechne T0 mit A=' + A, 'B=' + B);
 
            for (var x = 1; x <= 100; x++) {
 
                C = A / x;
 
                Q = B / C;
 
                // console.log(x + '. Durchgang: C = ' + C, 'Q = ' + Q);
 
                if (isInt(Q)) {
 
                    // console.log('Q ist eine Ganzzahl!!! T0 ist damit ', 1 / C);
 
                    return 1 / C;
 
                }
 
                if (x === 10) {
 
                    return 10;
 
                }
 
                if ((1 / C) > 10)
 
                    return 10
 
            }
 
        }
 
        // Ausgabe des Wertes x(t)
 
        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() /
 
                360)) * 1000) / 1000;
 
        }, 50);
 
        // Ausgabe des Wertes x(t+T_0)
 
        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() +
 
                Math.round(getT0() * 1000) / 1000) - g.Value())) * 1000) / 1000;
 
        }, 50);
 
        // Ausgabe des Wertes x(t+2T_0)
 
        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() +
 
                2 * Math.round(getT0() * 1000) / 1000) - g.Value())) * 1000) / 1000;
 
        }, 50);
 
        // Ausgabe des Wertes x_max
 
        setInterval(function() {
 
            var x = new Array(50000);
 
            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;
 
            }
 
            document.getElementById("x_max").innerHTML = Math.max.apply(Math, x);
 
        }, 50);
 
    };
 
    // Definition der Funktion zum An- und Ausschalten des Koordinatengitters
 
    function showgrid() {
 
        if (gridbox.checked) {
 
            xaxis = pltBox.create('axis', [ [0, 0], [1, 0] ], {});
 
            yaxis = pltBox.create('axis', [ [0, 0], [0, 1] ], {});
 
        } else {
 
            xaxis.removeTicks(xaxis.defaultTicks);
 
            yaxis.removeTicks(yaxis.defaultTicks);
 
        }
 
        pltBox.fullUpdate();
 
    };
 
</script>
 
</body>
 
</html>
 
  
 +
//Grundeinstellungen der beiden Applets
 +
JXG.Options.text.useMathJax = true;
 +
pltBox1 = JXG.JSXGraph.initBoard('pltBox1', {
 +
            showCopyright:false, axis:false,
 +
            zoom:{factorX:1.1, factorY:1.1, wheel:true, needshift:true, eps: 0.1},
 +
            grid:false,
 +
            boundingbox: [-1.1, 1.1, 1.1, -0.3]
 +
});
 +
pltBox2 = JXG.JSXGraph.initBoard('pltBox2', {
 +
            showCopyright:false, axis:false,
 +
            zoom:{factorX:1.1, factorY:1.1, wheel:true, needshift:true, eps: 0.1},
 +
            grid:false,
 +
            boundingbox: [-3.1, 1.1, 3.1, -0.3]
 +
});
 +
cnfBox1 = JXG.JSXGraph.initBoard('cnfBox1', {
 +
            showCopyright:false, axis:false, ShowNavigation:false,
 +
            zoom:{enabled:false}, pan:{enabled:false}, grid:false,
 +
            boundingbox: [-3.1, 1.1, 3.1, -0.3]
 +
});
 +
cnfBox2 = JXG.JSXGraph.initBoard('cnfBox2', {
 +
            showCopyright:false, axis:false, ShowNavigation:false,
 +
            zoom:{enabled:false}, pan:{enabled:false}, grid:false,
 +
            boundingbox: [-3.1, 1.1, 3.1, -0.3]
 +
});
 +
cnfBox3 = JXG.JSXGraph.initBoard('cnfBox3', {
 +
            showCopyright:false, axis:false, ShowNavigation:false,
 +
            zoom:{enabled:false}, pan:{enabled:false}, grid:false,
 +
            boundingbox: [-3.1, 1.1, 3.1, -0.3]
 +
});
 +
 +
cnfBox1.addChild(pltBox1);
 +
cnfBox2.addChild(pltBox1);
 +
cnfBox1.addChild(pltBox2);
 +
cnfBox2.addChild(pltBox2);
 +
cnfBox3.addChild(cnfBox1);
 +
cnfBox3.addChild(cnfBox2);
 +
 +
 +
//Einstellungen der Achsen
 +
xaxis1 = pltBox1.create('axis', [[0, 0], [1,0]], {
 +
            name:'\\[t\\]',
 +
            withLabel:true, label:{position:'rt', offset:[-25, 15]}
 +
});
 +
yaxis1 = pltBox1.create('axis', [[0, 0], [0, 1]], {
 +
            name:'\\[x(t)\\]',
 +
            withLabel:true, label:{position:'rt', offset:[10, -5]}
 +
});
 +
xaxis2 = pltBox2.create('axis', [[0, 0], [1,0]], {
 +
            name:'\\[f\\]',
 +
            withLabel:true, label:{position:'rt', offset:[-25, 15]}
 +
});
 +
yaxis2 = pltBox2.create('axis', [[0, 0], [0, 1]], {
 +
            name:'\\[X(f)\\]',
 +
            withLabel:true, label:{position:'rt', offset:[10, -5]}
 +
});
 +
 +
//Festlegen der Schieberegler
 +
sldA1 = cnfBox1.create('slider',[[-2.8,1],[0.8,1],[0,1,2]], {
 +
            suffixlabel:' <I>A</I>_1=',
 +
            snapWidth:0.05
 +
}),
 +
sldDT1 = cnfBox1.create('slider',[[-2.8,0.9],[0.8,0.9],[0,1,2]], {
 +
            suffixlabel:' <I>&#916;t</I>_1=',
 +
            snapWidth:0.01
 +
}),
 +
sldR1 = cnfBox1.create('slider',[[-2.8,0.8],[0.8,0.8],[0,0.5,1]], {
 +
            suffixlabel:' <I>r</I>_1=',
 +
            snapWidth:0.05
 +
}),
 +
sldA2 = cnfBox2.create('slider',[[-2.8,1],[0.8,1],[0,1,2]], {
 +
            suffixlabel:' <I>A</I>_2=',
 +
            snapWidth:0.05
 +
}),
 +
sldDT2 = cnfBox2.create('slider',[[-2.8,0.9],[0.8,0.9],[0,1,2]], {
 +
            suffixlabel:' <I>&#916;t</I>_2=',
 +
            snapWidth:0.05
 +
}),
 +
sldR2 = cnfBox2.create('slider',[[-2.8,0.8],[0.8,0.8],[0,0.5,1]], {
 +
            suffixlabel:' <I>r</I>_2=',
 +
            snapWidth:0.05
 +
}),
 +
sldT = cnfBox3.create('slider',[[-2.8,0.4],[-1.6,0.4],[-1,0.5,1]], {
 +
            suffixlabel:' <I>t</I>=',
 +
            snapWidth:0.05
 +
}),
 +
sldF = cnfBox3.create('slider',[[1,0.4],[2.2,0.4],[-3,0.5,3]], {
 +
            suffixlabel:' <I>f</I>=',
 +
            snapWidth:0.05
 +
}),
 +
 +
//Substituierte Hilfswerte
 +
t1=sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2
 +
t2=(sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2
 +
 +
//Definition der Texte für die Funktionswerte von Impuls 1
 +
var txtG1=cnfBox1.create('text',[0,0.1, function()
 +
                          {return '\\[x(t)= '+ Math.round((sldA1.Value()*Math.exp(-1*Math.PI*(sldT.Value()/sldDT1.Value())*(sldT.Value()/sldDT1.Value())))*1000)/1000 +' \\]';}],
 +
            {fixed:true, strokeColor:'red', visible:true});
 +
var txtR1=cnfBox1.create('text',[0,0.1, function(){
 +
            if (Math.abs(sldT.Value())<sldDT1.Value()/2)
 +
                          {return '\\[x(t)= '+ Math.round((sldA1.Value())*1000)/1000 +' \\]';}
 +
            else if(Math.abs(sldT.Value())==sldDT1.Value()/2)
 +
                          {return '\\[x(t)= '+ Math.round((sldA1.Value()/2)*1000)/1000 +' \\]';}
 +
            else
 +
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]';}}],
 +
            {fixed:true, strokeColor:'red', visible:false});
 +
var txtD1=cnfBox1.create('text',[0,0.1, function(){
 +
        if (Math.abs(sldT.Value())<sldDT1.Value())
 +
                          {return '\\[x(t)= '+ Math.round((sldA1.Value()*(1-Math.abs(sldT.Value())/sldDT1.Value()))*1000)/1000 +' \\]';}
 +
        else
 +
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]';}}],
 +
        {fixed:true, strokeColor:'red', visible:false});
 +
var txtT1=cnfBox1.create('text',[0,0.1, function(){
 +
            if (Math.abs(sldT.Value())<=(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))
 +
                          {return '\\[x(t)= '+ Math.round((sldA1.Value())*1000)/1000 +' \\]';}
 +
            else if (((sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2)<= Math.abs(sldT.Value())) && (Math.abs(sldT.Value())<=((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)))
 +
                          {return '\\[x(t)= '+ Math.round((sldA1.Value()*(((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)-Math.abs(sldT.Value()))/(((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2)))*1000)/1000 +' \\]'}
 +
            else
 +
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]'}}],
 +
            {fixed:true, strokeColor:'red', visible:false});
 +
var txtC1=cnfBox1.create('text',[0,0.1, function(){
 +
            if (Math.abs(sldT.Value())<=(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))
 +
                          {return '\\[x(t)= '+ Math.round((sldA1.Value())*1000)/1000 +' \\]';}
 +
            else if (((sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2)<=Math.abs(sldT.Value())) && (Math.abs(sldT.Value())<=((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)))
 +
                          {return '\\[x(t)= '+ Math.round((sldA1.Value()*Math.cos((Math.abs(sldT.Value())-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))/(((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))*(Math.PI/2))*Math.cos((Math.abs(sldT.Value())-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))/(((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))*(Math.PI/2)))*1000)/1000 +' \\]';}
 +
            else
 +
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]'}}],
 +
            {fixed:true, strokeColor:'red', visible:false});
 +
 +
var txtGS1=cnfBox1.create('text',[0,0, function()
 +
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*Math.exp(-1*Math.PI*(sldF.Value()*sldDT1.Value())*(sldF.Value()*sldDT1.Value())))*1000)/1000 +' \\]' ;}],
 +
                          {fixed:true, strokeColor:'red', visible:true});
 +
var txtRS1=cnfBox1.create('text',[0,0, function()
 +
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*Math.sin(Math.PI*sldDT1.Value()*sldF.Value())/(Math.PI*sldDT1.Value()*sldF.Value()))*1000)/1000 +' \\]' ;}],
 +
                          {fixed:true, strokeColor:'red', visible:false});
 +
var txtDS1=cnfBox1.create('text',[0,0, function()
 +
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*Math.pow(Math.sin(Math.PI*sldDT1.Value()*sldF.Value())/(Math.PI*sldDT1.Value()*sldF.Value()),2))*1000)/1000 +' \\]' ;}],
 +
                          {fixed:true, strokeColor:'red', visible:false});
 +
var txtTS1=cnfBox1.create('text',[0,0, function()
 +
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*(Math.sin(Math.PI*sldDT1.Value()*sldF.Value())/(Math.PI*sldDT1.Value()*sldF.Value()))*(Math.sin(Math.PI*sldR1.Value()*sldDT1.Value()*sldF.Value())/(Math.PI*sldR1.Value()*sldDT1.Value()*sldF.Value())))*1000)/1000 +' \\]' ;}],
 +
                          {fixed:true, strokeColor:'red', visible:false});
 +
var txtCS1=cnfBox1.create('text',[0,0, function()
 +
                          {return '\\[X(f)= '+ Math.round((sldA1.Value()*sldDT1.Value()*(Math.cos(Math.PI*sldR1.Value()*sldDT1.Value()*sldF.Value()))/(1-Math.pow((2*sldR1.Value()*sldDT1.Value()*sldF.Value()),2))*(Math.sin(Math.PI*sldDT1.Value()*sldF.Value())/(Math.PI*sldDT1.Value()*sldF.Value())))*1000)/1000 +' \\]' ;}],
 +
                          {fixed:true, strokeColor:'red', visible:false});
 +
 +
//Definition der Texte für die Funktionswerte von Impuls 2
 +
 +
var txtG2=cnfBox2.create('text',[-2,0.1, function()
 +
                          {return '\\[x(t)= '+ Math.round((sldA2.Value()*Math.exp(-1*Math.PI*(sldT.Value()/sldDT2.Value())*(sldT.Value()/sldDT2.Value())))*1000)/1000 +' \\]' ;}],
 +
                          {fixed:true, strokeColor:'blue', visible:false});
 +
var txtR2=cnfBox2.create('text',[-2,0.1, function(){
 +
            if (Math.abs(sldT.Value())<sldDT2.Value()/2)
 +
                          {return '\\[x(t)= '+ Math.round((sldA2.Value())*1000)/1000 +' \\]';}
 +
            else if(Math.abs(sldT.Value())==sldDT2.Value()/2)
 +
                          {return '\\[x(t)= '+ Math.round((sldA2.Value()/2)*1000)/1000 +' \\]';}
 +
            else
 +
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]';}}],
 +
            {fixed:true, strokeColor:'blue', visible:false});
 +
var txtD2=cnfBox2.create('text',[-2,0.1, function(){
 +
            if (Math.abs(sldT.Value())<sldDT2.Value())
 +
                          {return '\\[x(t)= '+ Math.round((sldA2.Value()*(1-Math.abs(sldT.Value())/sldDT2.Value()))*1000)/1000 +' \\]';}
 +
            else
 +
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]';}}],
 +
            {fixed:true, strokeColor:'blue', visible:false});
 +
var txtT2=cnfBox2.create('text',[-2,0.1, function(){
 +
            if (Math.abs(sldT.Value())<=(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))
 +
                          {return '\\[x(t)= '+ Math.round((sldA2.Value())*1000)/1000 +' \\]';}
 +
            else if (((sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2)<= Math.abs(sldT.Value())) && (Math.abs(sldT.Value())<=((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)))
 +
                          {return '\\[x(t)= '+ Math.round((sldA2.Value()*(((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)-Math.abs(sldT.Value()))/(((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2)))*1000)/1000 +' \\]'}
 +
            else
 +
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]'}}],
 +
            {fixed:true, strokeColor:'blue', visible:true});
 +
var txtC2=cnfBox2.create('text',[-2,0.1, function(){
 +
            if (Math.abs(sldT.Value())<=(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))
 +
                          {return '\\[x(t)= '+ Math.round((sldA2.Value())*1000)/1000 +' \\]';}
 +
            else if (((sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2)<=Math.abs(sldT.Value())) && (Math.abs(sldT.Value())<=((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)))
 +
                          {return '\\[x(t)= '+ Math.round((sldA2.Value()*Math.cos((Math.abs(sldT.Value())-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))/(((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))*(Math.PI/2))*Math.cos((Math.abs(sldT.Value())-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))/(((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))*(Math.PI/2)))*1000)/1000 +' \\]';}
 +
            else
 +
                          {return '\\[x(t)= '+ Math.round((0)*1000)/1000 +' \\]'}}],
 +
            {fixed:true, strokeColor:'blue', visible:false});
 +
 +
var txtGS2=cnfBox2.create('text',[-2,0, function()
 +
            {return '\\[X(f)= '+ Math.round((sldA2.Value()*sldDT2.Value()*Math.exp(-1*Math.PI*(sldF.Value()*sldDT2.Value())*(sldF.Value()*sldDT2.Value())))*1000)/1000 +' \\]' ;}],
 +
            {fixed:true, strokeColor:'blue', visible:false});
 +
var txtRS2=cnfBox2.create('text',[-2,0, function()
 +
            {return '\\[X(f)= '+ Math.round((sldA2.Value()*sldDT2.Value()*Math.sin(Math.PI*sldDT2.Value()*sldF.Value())/(Math.PI*sldDT2.Value()*sldF.Value()))*1000)/1000 +' \\]' ;}],
 +
            {fixed:true, strokeColor:'blue', visible:false});
 +
var txtDS2=cnfBox2.create('text',[-2,0, function()
 +
            {return '\\[X(f)= '+ Math.round((sldA2.Value()*sldDT2.Value()*Math.pow(Math.sin(Math.PI*sldDT2.Value()*sldF.Value())/(Math.PI*sldDT2.Value()*sldF.Value()),2))*1000)/1000 +' \\]' ;}],
 +
            {fixed:true, strokeColor:'blue', visible:false});
 +
var txtTS2=cnfBox2.create('text',[-2,0, function()
 +
            {return '\\[X(f)= '+ Math.round((sldA2.Value()*sldDT2.Value()*(Math.sin(Math.PI*sldDT2.Value()*sldF.Value())/(Math.PI*sldDT2.Value()*sldF.Value()))*(Math.sin(Math.PI*sldR2.Value()*sldDT2.Value()*sldF.Value())/(Math.PI*sldR2.Value()*sldDT2.Value()*sldF.Value())))*1000)/1000 +' \\]' ;}],
 +
            {fixed:true, strokeColor:'blue', visible:true});
 +
var txtCS2=cnfBox2.create('text',[-2,0, function()
 +
            {return '\\[X(f)= '+ Math.round((sldA2.Value()*sldDT2.Value()*(Math.cos(Math.PI*sldR2.Value()*sldDT2.Value()*sldF.Value()))/(1-Math.pow((2*sldR2.Value()*sldDT2.Value()*sldF.Value()),2))*(Math.sin(Math.PI*sldDT2.Value()*sldF.Value())/(Math.PI*sldDT2.Value()*sldF.Value())))*1000)/1000 +' \\]' ;}],
 +
            {fixed:true, strokeColor:'blue', visible:false});
 +
 +
 +
//Definition der Zeitfunktionen von Impuls 1
 +
var funcG1 = pltBox1.create('functiongraph',[function(x)
 +
            {return (sldA1.Value()*Math.exp(-1*Math.PI*(x/sldDT1.Value())*(x/sldDT1.Value())))}],
 +
            {strokeColor: "red", visible: true});
 +
var funcR1 = pltBox1.create('functiongraph',[function(x){
 +
            if (Math.abs(x)<sldDT1.Value()/2)
 +
                          {return sldA1.Value();}
 +
            else if(Math.abs(x)==sldDT1.Value()/2)
 +
                          {return sldA1.Value()/2;}
 +
            else
 +
                          {return 0;}}],
 +
            {strokeColor: "red", visible: false});
 +
var funcD1 = pltBox1.create('functiongraph',[function(x){
 +
            if (Math.abs(x)<sldDT1.Value())
 +
                          {return sldA1.Value()*(1-Math.abs(x)/sldDT1.Value());}
 +
            else
 +
                          {return 0;}}],
 +
            {strokeColor: "red", visible: false});
 +
var funcT1 = pltBox1.create('functiongraph',[function(x){
 +
            if (Math.abs(x)<=(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))
 +
                          {return sldA1.Value();}
 +
            else if (((sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2)<= Math.abs(x)) && (Math.abs(x)<=((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)))
 +
                          {return sldA1.Value()*(((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)-Math.abs(x))/(((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))}
 +
            else
 +
                          {return 0}}],
 +
            {strokeColor: "red", visible: false});
 +
var funcC1 = pltBox1.create('functiongraph',[function(x){
 +
            if (Math.abs(x)<=(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))
 +
                          {return sldA1.Value();}
 +
            else if (((sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2)<=Math.abs(x)) && (Math.abs(x)<=((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)))
 +
                          {return sldA1.Value()*Math.cos((Math.abs(x)-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))/(((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))*(Math.PI/2))*Math.cos((Math.abs(x)-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))/(((sldR1.Value()*sldDT1.Value())/2+sldDT1.Value()/2)-(sldDT1.Value()/2-(sldR1.Value()*sldDT1.Value())/2))*(Math.PI/2));}
 +
            else
 +
                          {return 0}}],
 +
            {strokeColor: "red", visible: false});
 +
 +
//Definition der Spektralfunktionen von Impuls 1
 +
var funcGS1 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA1.Value()*sldDT1.Value()*Math.exp(-1*Math.PI*(x*sldDT1.Value())*(x*sldDT1.Value())))}],
 +
            {strokeColor: "red", visible: true});
 +
var funcRS1 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA1.Value()*sldDT1.Value()*Math.sin(Math.PI*sldDT1.Value()*x)/(Math.PI*sldDT1.Value()*x))}],
 +
            {strokeColor: "red", visible: false});
 +
var funcDS1 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA1.Value()*sldDT1.Value()*Math.pow(Math.sin(Math.PI*sldDT1.Value()*x)/(Math.PI*sldDT1.Value()*x),2))}],
 +
            {strokeColor: "red", visible: false});
 +
var funcTS1 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA1.Value()*sldDT1.Value()*(Math.sin(Math.PI*sldDT1.Value()*x)/(Math.PI*sldDT1.Value()*x))*(Math.sin(Math.PI*sldR1.Value()*sldDT1.Value()*x)/(Math.PI*sldR1.Value()*sldDT1.Value()*x)))}],
 +
            {strokeColor: "red", visible: false});
 +
var funcCS1 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA1.Value()*sldDT1.Value()*(Math.cos(Math.PI*sldR1.Value()*sldDT1.Value()*x))/(1-Math.pow((2*sldR1.Value()*sldDT1.Value()*x),2))*(Math.sin(Math.PI*sldDT1.Value()*x)/(Math.PI*sldDT1.Value()*x)))}],
 +
            {strokeColor: "red", visible: false});
 +
 +
//Definition der Zeitfunktionen von Impuls 2
 +
var funcG2 = pltBox1.create('functiongraph',[function(x){
 +
            return (sldA2.Value()*Math.exp(-1*Math.PI*(x/sldDT2.Value())*(x/sldDT2.Value())))}],
 +
            {strokeColor: "blue", visible: false});
 +
var funcR2 = pltBox1.create('functiongraph',[function(x){
 +
            if (Math.abs(x)<sldDT2.Value()/2)
 +
                          {return sldA2.Value();}
 +
            else if(Math.abs(x)==sldDT2.Value()/2)
 +
                          {return sldA2.Value()/2;}
 +
            else
 +
                          {return 0;}}],
 +
            {strokeColor: "blue", visible: false});
 +
var funcD2 = pltBox1.create('functiongraph',[function(x){
 +
            if (Math.abs(x)<sldDT2.Value())
 +
                          {return sldA2.Value()*(1-Math.abs(x)/sldDT2.Value());}
 +
            else
 +
                          {return 0;}}],
 +
            {strokeColor: "blue", visible: false});
 +
var funcT2 = pltBox1.create('functiongraph',[function(x){
 +
            if (Math.abs(x)<=(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))
 +
                          {return sldA2.Value();}
 +
            else if (((sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2)<= Math.abs(x)) && (Math.abs(x)<=((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)))
 +
                          {return sldA2.Value()*(((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)-Math.abs(x))/(((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))}
 +
            else
 +
                          {return 0}}],
 +
            {strokeColor: "blue", visible: true});
 +
var funcC2 = pltBox1.create('functiongraph',[function(x){
 +
            if (Math.abs(x)<=(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))
 +
                          {return sldA2.Value();}
 +
            else if (((sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2)<=Math.abs(x)) && (Math.abs(x)<=((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)))
 +
                          {return sldA2.Value()*Math.cos((Math.abs(x)-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))/(((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))*(Math.PI/2))*Math.cos((Math.abs(x)-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))/(((sldR2.Value()*sldDT2.Value())/2+sldDT2.Value()/2)-(sldDT2.Value()/2-(sldR2.Value()*sldDT2.Value())/2))*(Math.PI/2));}
 +
            else
 +
                          {return 0}}],
 +
            {strokeColor: "blue", visible: false});
 +
 +
//Definition der Spektralfunktionen von Impuls 2
 +
var funcGS2 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA2.Value()*sldDT2.Value()*Math.exp(-1*Math.PI*(x*sldDT2.Value())*(x*sldDT2.Value())))}],
 +
            {strokeColor: "blue", visible: false});
 +
var funcRS2 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA2.Value()*sldDT2.Value()*Math.sin(Math.PI*sldDT2.Value()*x)/(Math.PI*sldDT2.Value()*x))}],
 +
            {strokeColor: "blue", visible: false});
 +
var funcDS2 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA2.Value()*sldDT2.Value()*Math.pow(Math.sin(Math.PI*sldDT2.Value()*x)/(Math.PI*sldDT2.Value()*x),2))}],
 +
            {strokeColor: "blue", visible: false});
 +
var funcTS2 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA2.Value()*sldDT2.Value()*(Math.sin(Math.PI*sldDT2.Value()*x)/(Math.PI*sldDT2.Value()*x))*(Math.sin(Math.PI*sldR2.Value()*sldDT2.Value()*x)/(Math.PI*sldR2.Value()*sldDT2.Value()*x)))}],
 +
            {strokeColor: "blue", visible: true});
 +
var funcCS2 = pltBox2.create('functiongraph',[function(x){
 +
            return (sldA2.Value()*sldDT2.Value()*(Math.cos(Math.PI*sldR2.Value()*sldDT2.Value()*x))/(1-Math.pow((2*sldR2.Value()*sldDT2.Value()*x),2))*(Math.sin(Math.PI*sldDT2.Value()*x)/(Math.PI*sldDT2.Value()*x)))}],
 +
            {strokeColor: "blue", visible: false});
 +
 +
 +
//Definition der Dropdownlisten dropdown1 und dropdown2
 +
var change1 = function(obj) {
 +
var v = obj.value;
 +
if (v=='0')          { impuls1G();}
 +
else if (v=='1')      { impuls1R();}
 +
else if (v=='2')      { impuls1D();}
 +
else if (v=='3')      { impuls1T();}
 +
else if (v=='4')      { impuls1C();}
 +
else if (v=='5')      { impuls1I();}
 +
};
 +
 +
var change2 = function(obj) {
 +
  var v = obj.value;
 +
  if (v=='0')          { impuls2G();}
 +
  else if (v=='1')      { impuls2R();}
 +
  else if (v=='2')      { impuls2D();}
 +
  else if (v=='3')      { impuls2T();}
 +
  else if (v=='4')      { impuls2C();}
 +
  else if (v=='5')      { impuls2I();}
 +
  };
 +
 +
 +
//Definition der Funktionen für dropdown1
 +
function impuls1G() {
 +
            funcG1.setProperty({visible:true});
 +
            funcR1.setProperty({visible:false});
 +
            funcD1.setProperty({visible:false});
 +
            funcT1.setProperty({visible:false});
 +
            funcC1.setProperty({visible:false});
 +
            funcGS1.setProperty({visible:true});
 +
            funcRS1.setProperty({visible:false});
 +
            funcDS1.setProperty({visible:false});
 +
            funcTS1.setProperty({visible:false});
 +
            funcCS1.setProperty({visible:false});
 +
            txtG1.setProperty({visible:true});
 +
            txtR1.setProperty({visible:false});
 +
            txtD1.setProperty({visible:false});
 +
            txtT1.setProperty({visible:false});
 +
            txtC1.setProperty({visible:false});
 +
            txtGS1.setProperty({visible:true});
 +
            txtRS1.setProperty({visible:false});
 +
            txtDS1.setProperty({visible:false});
 +
            txtTS1.setProperty({visible:false});
 +
            txtCS1.setProperty({visible:false});
 +
};
 +
 +
function impuls1R() {
 +
            funcG1.setProperty({visible:false});
 +
            funcR1.setProperty({visible:true});
 +
            funcD1.setProperty({visible:false});
 +
            funcT1.setProperty({visible:false});
 +
            funcC1.setProperty({visible:false});
 +
            funcGS1.setProperty({visible:false});
 +
            funcRS1.setProperty({visible:true});
 +
            funcDS1.setProperty({visible:false});
 +
            funcTS1.setProperty({visible:false});
 +
            funcCS1.setProperty({visible:false});
 +
            txtG1.setProperty({visible:false});
 +
            txtR1.setProperty({visible:true});
 +
            txtD1.setProperty({visible:false});
 +
            txtT1.setProperty({visible:false});
 +
            txtC1.setProperty({visible:false});
 +
            txtGS1.setProperty({visible:false});
 +
            txtRS1.setProperty({visible:true});
 +
            txtDS1.setProperty({visible:false});
 +
            txtTS1.setProperty({visible:false});
 +
            txtCS1.setProperty({visible:false});
 +
};
 +
 +
function impuls1D() {
 +
            funcG1.setProperty({visible:false});
 +
            funcR1.setProperty({visible:false});
 +
            funcD1.setProperty({visible:true});
 +
            funcT1.setProperty({visible:false});
 +
            funcC1.setProperty({visible:false});
 +
            funcGS1.setProperty({visible:false});
 +
            funcRS1.setProperty({visible:true});
 +
            funcDS1.setProperty({visible:false});
 +
            funcTS1.setProperty({visible:false});
 +
            funcCS1.setProperty({visible:false});
 +
            txtG1.setProperty({visible:false});
 +
            txtR1.setProperty({visible:false});
 +
            txtD1.setProperty({visible:true});
 +
            txtT1.setProperty({visible:false});
 +
            txtC1.setProperty({visible:false});
 +
            txtGS1.setProperty({visible:false});
 +
            txtRS1.setProperty({visible:false});
 +
            txtDS1.setProperty({visible:true});
 +
            txtTS1.setProperty({visible:false});
 +
            txtCS1.setProperty({visible:false});
 +
};
 +
 +
function impuls1T() {
 +
            funcG1.setProperty({visible:false});
 +
            funcR1.setProperty({visible:false});
 +
            funcD1.setProperty({visible:false});
 +
            funcT1.setProperty({visible:true});
 +
            funcC1.setProperty({visible:false});
 +
            funcGS1.setProperty({visible:false});
 +
            funcRS1.setProperty({visible:false});
 +
            funcDS1.setProperty({visible:false});
 +
            funcTS1.setProperty({visible:true});
 +
            funcCS1.setProperty({visible:false});
 +
            txtG1.setProperty({visible:false});
 +
            txtR1.setProperty({visible:false});
 +
            txtD1.setProperty({visible:false});
 +
            txtT1.setProperty({visible:true});
 +
            txtC1.setProperty({visible:false});
 +
            txtGS1.setProperty({visible:false});
 +
            txtRS1.setProperty({visible:false});
 +
            txtDS1.setProperty({visible:false});
 +
            txtTS1.setProperty({visible:true});
 +
            txtCS1.setProperty({visible:false});
 +
};
 +
 +
function impuls1C() {
 +
            funcG1.setProperty({visible:false});
 +
            funcR1.setProperty({visible:false});
 +
            funcD1.setProperty({visible:false});
 +
            funcT1.setProperty({visible:false});
 +
            funcC1.setProperty({visible:true});
 +
            funcGS1.setProperty({visible:false});
 +
            funcRS1.setProperty({visible:false});
 +
            funcDS1.setProperty({visible:false});
 +
            funcTS1.setProperty({visible:false});
 +
            funcCS1.setProperty({visible:true});
 +
            txtG1.setProperty({visible:false});
 +
            txtR1.setProperty({visible:false});
 +
            txtD1.setProperty({visible:false});
 +
            txtT1.setProperty({visible:false});
 +
            txtC1.setProperty({visible:true});
 +
            txtGS1.setProperty({visible:false});
 +
            txtRS1.setProperty({visible:false});
 +
            txtDS1.setProperty({visible:false});
 +
            txtTS1.setProperty({visible:false});
 +
            txtCS1.setProperty({visible:true});
 +
};
 +
 +
function impuls1I() {
 +
            funcG1.setProperty({visible:false});
 +
            funcR1.setProperty({visible:false});
 +
            funcD1.setProperty({visible:false});
 +
            funcT1.setProperty({visible:false});
 +
            funcC1.setProperty({visible:false});
 +
            funcGS1.setProperty({visible:false});
 +
            funcRS1.setProperty({visible:false});
 +
            funcDS1.setProperty({visible:false});
 +
            funcTS1.setProperty({visible:false});
 +
            funcCS1.setProperty({visible:false});
 +
            txtG1.setProperty({visible:false});
 +
            txtR1.setProperty({visible:false});
 +
            txtD1.setProperty({visible:false});
 +
            txtT1.setProperty({visible:false});
 +
            txtC1.setProperty({visible:false});
 +
            txtGS1.setProperty({visible:false});
 +
            txtRS1.setProperty({visible:false});
 +
            txtDS1.setProperty({visible:false});
 +
            txtTS1.setProperty({visible:false});
 +
            txtCS1.setProperty({visible:false});
 +
};
  
==Theoretischer Hintergrund==
+
//Definition der Funktionen für dropdown1
*Der Zusammenhang zwischen Zeitfunktion $x(t)$ und dem Spektrum $X(f)$ ist durch die Fouriertransformation (FT) $$X(f)=\int_{-\infty}^{+\infty}x(t)\cdot e^{-j2\pi f t}\hspace{0.15cm} {\rm d}t$$ und deren Inversen (IFT) $$x(t)=\int_{-\infty}^{+\infty}X(f)\cdot e^{j2\pi f t} \hspace{0.15cm} {\rm d}f$$ gegeben.
 
*In allen Beispielen verwenden wir reelle und gerade Funktionen. Somit gilt:
 
$$X(f)=\int_{-\infty}^{+\infty}x(t)\cdot \cos(2\pi ft) \hspace{0.15cm} {\rm d}t$$  und
 
$$x(t)=\int_{-\infty}^{+\infty}X(f)\cdot \cos(2\pi ft) \hspace{0.15cm} {\rm d}f.$$
 
*$x(t)$ und $X(f)$ haben unterschiedliche Einheiten, z. B. $x(t)$ in V, $X(f)$ in V/Hz.
 
*Alle Zeiten sind auf eine Normierungszeit $T$ und alle Frequenzen auf $1/T \Rightarrow$ das Spektrum $X(f)$ muss noch mit $T$ multipliziert werden.
 
*Der Zusammenhang zwischen Impulse und deren Spektren und der ähnlich aufgebauten Animation &bdquo;Tiefpass&ldquo; basiert auf dem Vertauschungssatz.
 
  
==Gaußimpuls==
+
function impuls2G() {
*Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:  
+
            funcG2.setProperty({visible:true});
$$x(t)=K\cdot e^{-\pi\cdot(t/\Delta t)^2}.$$
+
            funcR2.setProperty({visible:false});
*Die äquivalente Zeitdauer $\Delta t$ ergibt sich aus dem flächengleichen Rechteck.
+
            funcD2.setProperty({visible:false});
*Der Wert bei t=$\Delta t/2$ ist um den Faktor 0.456 kleiner als der Wert bei $t=0$.
+
            funcT2.setProperty({visible:false});
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
+
            funcC2.setProperty({visible:false});
$$X(f)=K\cdot \Delta t \cdot e^{-\pi(f\cdot \Delta t)^2} .$$
+
            funcGS2.setProperty({visible:true});
*Je kleiner die äquivalente Zeitdauer $\Delta t$ ist, um so breiter und niedriger ist das Spektrum (Reziprozitätsgesetz von Bandbreite und Impulsdauer).
+
            funcRS2.setProperty({visible:false});
*Sowohl $x(t)$ als auch $X(f)$ sind zu keinem $ f$- bzw. $t$-Wert exakt gleich Null.
+
            funcDS2.setProperty({visible:false});
*Praktisch ist der Gaußimpuls in Zeit und Frequenz begrenzt. Zum Beispiel ist $x(t)$ bereits bei $t=1.5 \Delta \cdot t$ auf $1\% $ des Maximums abgefallen.
+
            funcTS2.setProperty({visible:false});
==Rechteckimpuls==
+
            funcCS2.setProperty({visible:false});
*Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:
+
            txtG2.setProperty({visible:true});
 +
            txtR2.setProperty({visible:false});
 +
            txtD2.setProperty({visible:false});
 +
            txtT2.setProperty({visible:false});
 +
            txtC2.setProperty({visible:false});
 +
            txtGS2.setProperty({visible:true});
 +
            txtRS2.setProperty({visible:false});
 +
            txtDS2.setProperty({visible:false});
 +
            txtTS2.setProperty({visible:false});
 +
            txtCS2.setProperty({visible:false});
 +
};
  
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K  \\  K /2 \\ \hspace{0.25cm} 0 \\  \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}  {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| < T/2,}  \\  {\left| \hspace{0.05cm}t\hspace{0.05cm} \right| = T/2,}  \\  {\left|\hspace{0.05cm} t \hspace{0.05cm} \right| > T/2.} \\ \end{array}$$
+
function impuls2R() {
 +
            funcG2.setProperty({visible:false});
 +
            funcR2.setProperty({visible:true});
 +
            funcD2.setProperty({visible:false});
 +
            funcT2.setProperty({visible:false});
 +
            funcC2.setProperty({visible:false});
 +
            funcGS2.setProperty({visible:false});
 +
            funcRS2.setProperty({visible:true});
 +
            funcDS2.setProperty({visible:false});
 +
            funcTS2.setProperty({visible:false});
 +
            funcCS2.setProperty({visible:false});
 +
            txtG2.setProperty({visible:false});
 +
            txtR2.setProperty({visible:true});
 +
            txtD2.setProperty({visible:false});
 +
            txtT2.setProperty({visible:false});
 +
            txtC2.setProperty({visible:false});
 +
            txtGS2.setProperty({visible:false});
 +
            txtRS2.setProperty({visible:true});
 +
            txtDS2.setProperty({visible:false});
 +
            txtTS2.setProperty({visible:false});
 +
            txtCS2.setProperty({visible:false});
 +
};
  
*Der $\pm \Delta t/2$ - Wert liegt mittig zwischen links- und rechtsseitigem Grenzwert.
+
function impuls2D() {
*Für die Spektralfunktion erhält man entsprechend den Gesetzmäßigkeiten der Fouriertransformation (1. Fourierintegral):
+
            funcG2.setProperty({visible:false});
$$X(f)=K\cdot \Delta t \cdot si(\pi\cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$
+
            funcR2.setProperty({visible:false});
*Der Spektralwert bei $f=0$ ist gleich der Rechteckfläche der Zeitfunktion.
+
            funcD2.setProperty({visible:true});
*Die Spektralfunktion besitzt Nullstellen in äquidistanten Abständen $1/\Delta t$.
+
            funcT2.setProperty({visible:false});
*Das Integral über der Spektralfunktion $X(f)$ ist gleich dem Signalwert zum Zeitpunkt $t=0$, also der Impulsamplitude $K$.
+
            funcC2.setProperty({visible:false});
 +
            funcGS2.setProperty({visible:false});
 +
            funcRS2.setProperty({visible:true});
 +
            funcDS2.setProperty({visible:false});
 +
            funcTS2.setProperty({visible:false});
 +
            funcCS2.setProperty({visible:false});
 +
            txtG2.setProperty({visible:false});
 +
            txtR2.setProperty({visible:false});
 +
            txtD2.setProperty({visible:true});
 +
            txtT2.setProperty({visible:false});
 +
            txtC2.setProperty({visible:false});
 +
            txtGS2.setProperty({visible:false});
 +
            txtRS2.setProperty({visible:false});
 +
            txtDS2.setProperty({visible:true});
 +
            txtTS2.setProperty({visible:false});
 +
            txtCS2.setProperty({visible:false});
 +
};
  
==Dreieckimpuls==
+
function impuls2T() {
*Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:
+
            funcG2.setProperty({visible:false});
 +
            funcR2.setProperty({visible:false});
 +
            funcD2.setProperty({visible:false});
 +
            funcT2.setProperty({visible:true});
 +
            funcC2.setProperty({visible:false});
 +
            funcGS2.setProperty({visible:false});
 +
            funcRS2.setProperty({visible:false});
 +
            funcDS2.setProperty({visible:false});
 +
            funcTS2.setProperty({visible:true});
 +
            funcCS2.setProperty({visible:false});
 +
            txtG2.setProperty({visible:false});
 +
            txtR2.setProperty({visible:false});
 +
            txtD2.setProperty({visible:false});
 +
            txtT2.setProperty({visible:true});
 +
            txtC2.setProperty({visible:false});
 +
            txtGS2.setProperty({visible:false});
 +
            txtRS2.setProperty({visible:false});
 +
            txtDS2.setProperty({visible:false});
 +
            txtTS2.setProperty({visible:true});
 +
            txtCS2.setProperty({visible:false});
 +
};
  
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K\cdot \Big(1-\frac{|t|}{\Delta t}\Big) \\ \hspace{0.25cm} 0 \\  \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}}  \\    {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}  {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| < \Delta t,}  \\  {\left| \hspace{0.05cm}t\hspace{0.05cm} \right| \ge \Delta t.}   \\ \end{array}$$
+
function impuls2C() {
 +
            funcG2.setProperty({visible:false});
 +
            funcR2.setProperty({visible:false});
 +
            funcD2.setProperty({visible:false});
 +
            funcT2.setProperty({visible:false});
 +
            funcC2.setProperty({visible:true});
 +
            funcGS2.setProperty({visible:false});
 +
            funcRS2.setProperty({visible:false});
 +
            funcDS2.setProperty({visible:false});
 +
            funcTS2.setProperty({visible:false});
 +
            funcCS2.setProperty({visible:true});
 +
            txtG2.setProperty({visible:false});
 +
            txtR2.setProperty({visible:false});
 +
            txtD2.setProperty({visible:false});
 +
            txtT2.setProperty({visible:false});
 +
            txtC2.setProperty({visible:true});
 +
            txtGS2.setProperty({visible:false});
 +
            txtRS2.setProperty({visible:false});
 +
            txtDS2.setProperty({visible:false});
 +
            txtTS2.setProperty({visible:false});
 +
            txtCS2.setProperty({visible:true});
 +
};
  
*Die absolute Zeitdauer ist $2 \cdot \Delta t$, d.h. doppelt so groß als die des Rechtecks.
+
function impuls2I() {
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
+
            funcG2.setProperty({visible:false});
$$X(f)=K\cdot \Delta f \cdot si^2(\pi\cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$
+
            funcR2.setProperty({visible:false});
*Obige Zeitfunktion ist gleich der Faltung zweier Rechteckimpulse, jeweils mit Breite $\Delta t \Rightarrow X(f)$ beinhaltet anstelle der $si$-Funktion die $si^2$-Funktion.
+
            funcD2.setProperty({visible:false});
*$X(f)$ weist somit ebenfalls Nullstellen im äquidistanten Abständen $1/\Delta f$ auf.
+
            funcT2.setProperty({visible:false});
*Der asymptotische Abfall von $X(f)$ erfolgt hier mit $1/f^2$, während zum Vergleich der Rechteckimpuls mit $1/f$ abfällt.
+
            funcC2.setProperty({visible:false});
 +
            funcGS2.setProperty({visible:false});
 +
            funcRS2.setProperty({visible:false});
 +
            funcDS2.setProperty({visible:false});
 +
            funcTS2.setProperty({visible:false});
 +
            funcCS2.setProperty({visible:false});
 +
            txtG2.setProperty({visible:false});
 +
            txtR2.setProperty({visible:false});
 +
            txtD2.setProperty({visible:false});
 +
            txtT2.setProperty({visible:false});
 +
            txtC2.setProperty({visible:false});
 +
            txtGS2.setProperty({visible:false});
 +
            txtRS2.setProperty({visible:false});
 +
            txtDS2.setProperty({visible:false});
 +
            txtTS2.setProperty({visible:false});
 +
            txtCS2.setProperty({visible:false});
 +
};
  
==Trapezimpuls==
 
Die Zeitfunktion mit der Höhe $K$ und den Zeitparametern $t_1$ und $t_2$ lautet:
 
  
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K  \\  K\cdot \frac{t_2-|t|}{t_2-t_1} \\ \hspace{0.25cm} 0 \\  \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}  {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| \le t_1,}  \\  {t_1\le \left| \hspace{0.05cm}t\hspace{0.05cm} \right| \le t_2,}  \\  {\left|\hspace{0.05cm} t \hspace{0.05cm} \right| \ge t_2.}  \\ \end{array}$$
 
  
*Für die äquivalente Zeitdauer (flächengleiches Rechteck) gilt: $\Delta t = t_1+t_2$.
+
//Definition der Zeige und Verstecke Koordinatensystemfunktion
*Der Rolloff-Faktor (im Zeitbereich) kennzeichnet die Flankensteilheit:
 
$$r=\frac{t_2-t_1}{t_2+t_1}.$$
 
*Sonderfall $r=0$: Rechteckimpuls. Sonderfall $r=1$: Dreieckimpuls.
 
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
 
$$X(f)=K\cdot \Delta t \cdot si(\pi\cdot \Delta t \cdot f)\cdot si(\pi \cdot r \cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$
 
*Der asymptotische Abfall von $X(f)$ liegt zwischen $1/f$ (für Rechteck, $r=0$) und $1/f^2$ (für Dreieck, $r=1$).
 
  
==Cosinus-Rolloff-Impuls==  
+
function showgrid() {
Die Zeitfunktion mit der Höhe $K$ und den Zeitparametern $t_1$ und $t_2$ lautet:
+
            if (gridbox.checked) {
 +
                          xaxis1 = pltBox1.create('axis', [[0, 0], [1,0]], {});
 +
                          yaxis1 = pltBox1.create('axis', [[0, 0], [0, 1]], {});
 +
                          xaxis2 = pltBox2.create('axis', [[0, 0], [1, 0]], {});
 +
                          yaxis2 = pltBox2.create('axis', [[0, 0], [0, 1]], {});
 +
}
 +
            else {
 +
                          xaxis1.removeTicks(xaxis1.defaultTicks);
 +
                          yaxis1.removeTicks(yaxis1.defaultTicks);
 +
                          xaxis2.removeTicks(xaxis2.defaultTicks);
 +
                          yaxis2.removeTicks(yaxis2.defaultTicks);
 +
}
 +
                          pltBox1.fullUpdate();
 +
                          pltBox2.fullUpdate();
 +
};
 +
</script>
  
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K  \\  K\cdot \cos^2\Big(\frac{|t|-t_1}{t_2-t_1}\cdot \frac{\pi}{2}\Big) \\ \hspace{0.25cm} 0 \\  \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\  {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}  {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| \le t_1,}  \\  {t_1\le \left| \hspace{0.05cm}t\hspace{0.05cm} \right| \le t_2,}  \\  {\left|\hspace{0.05cm} t \hspace{0.05cm} \right| \ge t_2.}  \\ \end{array}$$
+
</form>
  
*Für die äquivalente Zeitdauer (flächengleiches Rechteck) gilt: $\Delta t = t_1+t_2$.
+
<script>
*Der Rolloff-Faktor (im Zeitbereich) kennzeichnet die Flankensteilheit:
 
$$r=\frac{t_2-t_1}{t_2+t_1}.$$
 
*Sonderfall $r=0$: Rechteckimpuls. Sonderfall $r=1$: Cosinus$^2$-Impuls.
 
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
 
$$X(f)=K\cdot \Delta t \cdot \frac{\cos(\pi \cdot r\cdot \Delta t \cdot f)}{1-(2\cdot r\cdot \Delta t \cdot f)^2} \cdot si(\pi \cdot \Delta t \cdot f).$$
 
*Je größer der Rolloff-Faktor $r$ ist, desto schneller nimmt $X(f)$ asymptotisch mit $f$ ab.
 
  
==Cosinus-Quadrat-Impuls==
+
//Definition des Reset-Buttons
*Dies ist ein Sonderfall des Cosinus-Rolloff-Impuls und ergibt sich für $r=1 \ (t_1=0, t_2= \Delta t)$:
+
function zurueck() {
 +
    document.getElementById("myForm").reset();
 +
};
 +
</script>
  
$$x(t) = \left\{ \begin{array}{l} \hspace{0.25cm}K\cdot \cos^2\Big(\frac{|t|\cdot \pi}{2\cdot \Delta t}\Big)  \\ \hspace{0.25cm} 0 \\  \end{array} \right.\quad \quad \begin{array}{*{20}c}  {\rm{f\ddot{u}r}}  \\    {\rm{f\ddot{u}r}}  \\ \end{array}\begin{array}{*{20}c}  {\left| \hspace{0.05cm} t\hspace{0.05cm} \right| < \Delta t,}  \\  {\left| \hspace{0.05cm}t\hspace{0.05cm} \right| \ge \Delta t.}  \\ \end{array}$$
+
</body>
 +
</html>
  
*Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
 
$$X(f)=K\cdot \Delta f \cdot \frac{\pi}{4}\cdot [si(\pi(\Delta t\cdot f +0.5))+si(\pi(\Delta t\cdot f -0.5))]\cdot si(\pi \cdot \Delta t \cdot f).$$
 
*Wegen der letzten $si$-Funktion ist $X(f)=0$ für alle Vielfachen von $F=1/\Delta t$. Die äquidistanten Nulldurchgänge des Cos-Rolloff-Impulses bleiben erhalten.
 
*Aufgrund des Klammerausdrucks weist $X(f)$ nun weitere Nulldurchgänge bei $f=\pm1.5 F$, $\pm2.5 F$, $\pm3.5 F$, ... auf.
 
*Für die Frequenz $f=\pm F/2$ erhält man die Spektralwerte $K\cdot \Delta t/2$.
 
*Der asymptotische Abfall von $X(f)$ verläuft in diesem Sonderfall mit $1/f^3$.
 
  
 
{{Display}}
 
{{Display}}

Version vom 18. September 2017, 12:45 Uhr

Impuls 1

Impuls 2

mit Gitter