Difference between revisions of "Applets:Spektrum"
David.Jobst (talk | contribs) |
David.Jobst (talk | contribs) |
||
Line 7: | Line 7: | ||
==Zeitfunktion und zugehörige Spektralfunktion== | ==Zeitfunktion und zugehörige Spektralfunktion== | ||
− | < | + | <html> |
+ | <head> | ||
+ | <meta charset="utf-8" /> | ||
+ | <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.6/jsxgraphcore.js"></script> | ||
+ | |||
+ | <style> | ||
+ | .button1{ | ||
+ | background-color: black; | ||
+ | border: none; | ||
+ | color: white; | ||
+ | font-family: arial; | ||
+ | padding: 8px 20px; | ||
+ | text-align: center; | ||
+ | text-decoration: none; | ||
+ | display: inline-block; | ||
+ | font-size: 16px; | ||
+ | border-radius: 15px; | ||
+ | position:relative; | ||
+ | top: 750px; | ||
+ | left: 830px; | ||
+ | } | ||
+ | |||
+ | .button1:active { | ||
+ | background-color: #939393;} | ||
+ | |||
+ | </style> | ||
+ | </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ß</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ß</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> | ||
+ | |||
+ | <form id="myForm"> | ||
+ | <button class="button1" style="font-size:0.750em" onclick="zurueck()">Reset</button> | ||
+ | <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> | ||
+ | |||
+ | <div id="pltBox1" class="jxgbox" style="width:600px; height:300px; border:1px solid black; margin:50px 20px 100px 220px;"></div> | ||
+ | <div id="pltBox2" class="jxgbox" style="width:600px; height:300px; border:1px solid black; margin:50px 20px 100px 220px;"></div> | ||
+ | <div id="cnfBox1" class="jxgbox" style="width:200px; height:600px; border:1px solid black; margin:-805px 10px 100px 10px;"></div> | ||
+ | <div id="cnfBox2" class="jxgbox" style="width:200px; height:600px; border:1px solid black; margin:-700px 800px 100px 830px;"></div> | ||
+ | <div id="cnfBox3" class="jxgbox" style="width:600px; height:50px; border:1px solid black; margin:-380px 800px 100px 220px;"></div> | ||
+ | |||
+ | |||
+ | <script type="text/javascript"> | ||
+ | |||
+ | //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>Δ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>Δ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}); | ||
+ | }; | ||
+ | |||
+ | //Definition der Funktionen für dropdown1 | ||
+ | |||
+ | function impuls2G() { | ||
+ | funcG2.setProperty({visible:true}); | ||
+ | funcR2.setProperty({visible:false}); | ||
+ | funcD2.setProperty({visible:false}); | ||
+ | funcT2.setProperty({visible:false}); | ||
+ | funcC2.setProperty({visible:false}); | ||
+ | funcGS2.setProperty({visible:true}); | ||
+ | funcRS2.setProperty({visible:false}); | ||
+ | funcDS2.setProperty({visible:false}); | ||
+ | funcTS2.setProperty({visible:false}); | ||
+ | funcCS2.setProperty({visible:false}); | ||
+ | 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}); | ||
+ | }; | ||
+ | |||
+ | 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}); | ||
+ | }; | ||
+ | |||
+ | function impuls2D() { | ||
+ | funcG2.setProperty({visible:false}); | ||
+ | funcR2.setProperty({visible:false}); | ||
+ | funcD2.setProperty({visible:true}); | ||
+ | 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: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}); | ||
+ | }; | ||
+ | |||
+ | function impuls2T() { | ||
+ | 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}); | ||
+ | }; | ||
+ | |||
+ | 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}); | ||
+ | }; | ||
+ | |||
+ | function impuls2I() { | ||
+ | funcG2.setProperty({visible:false}); | ||
+ | funcR2.setProperty({visible:false}); | ||
+ | funcD2.setProperty({visible:false}); | ||
+ | funcT2.setProperty({visible:false}); | ||
+ | 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}); | ||
+ | }; | ||
+ | |||
+ | |||
+ | |||
+ | //Definition der Zeige und Verstecke Koordinatensystemfunktion | ||
+ | |||
+ | function showgrid() { | ||
+ | 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> | ||
+ | |||
+ | </form> | ||
+ | |||
+ | <script> | ||
+ | |||
+ | //Definition des Reset-Buttons | ||
+ | function zurueck() { | ||
+ | document.getElementById("myForm").reset(); | ||
+ | }; | ||
+ | </script> | ||
+ | |||
+ | </body> | ||
+ | </html> | ||
+ | |||
==Theoretischer Hintergrund== | ==Theoretischer Hintergrund== |
Revision as of 12:29, 18 September 2017
Contents
Zeitfunktion und zugehörige Spektralfunktion
Impuls 1
Impuls 2
Theoretischer Hintergrund
- 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 „Tiefpass“ basiert auf dem Vertauschungssatz.
Gaußimpuls
- Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:
$$x(t)=K\cdot e^{-\pi\cdot(t/\Delta t)^2}.$$
- Die äquivalente Zeitdauer $\Delta t$ ergibt sich aus dem flächengleichen Rechteck.
- Der Wert bei t=$\Delta t/2$ ist um den Faktor 0.456 kleiner als der Wert bei $t=0$.
- Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
$$X(f)=K\cdot \Delta t \cdot e^{-\pi(f\cdot \Delta t)^2} .$$
- Je kleiner die äquivalente Zeitdauer $\Delta t$ ist, um so breiter und niedriger ist das Spektrum (Reziprozitätsgesetz von Bandbreite und Impulsdauer).
- Sowohl $x(t)$ als auch $X(f)$ sind zu keinem $ f$- bzw. $t$-Wert exakt gleich Null.
- 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.
Rechteckimpuls
- Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:
$$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}$$
- Der $\pm \Delta t/2$ - Wert liegt mittig zwischen links- und rechtsseitigem Grenzwert.
- Für die Spektralfunktion erhält man entsprechend den Gesetzmäßigkeiten der Fouriertransformation (1. Fourierintegral):
$$X(f)=K\cdot \Delta t \cdot si(\pi\cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$
- Der Spektralwert bei $f=0$ ist gleich der Rechteckfläche der Zeitfunktion.
- Die Spektralfunktion besitzt Nullstellen in äquidistanten Abständen $1/\Delta t$.
- Das Integral über der Spektralfunktion $X(f)$ ist gleich dem Signalwert zum Zeitpunkt $t=0$, also der Impulsamplitude $K$.
Dreieckimpuls
- Die Zeitfunktion mit der Höhe $K$ und der (äquivalenten) Dauer $\Delta t$ lautet:
$$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}$$
- Die absolute Zeitdauer ist $2 \cdot \Delta t$, d.h. doppelt so groß als die des Rechtecks.
- Für die Spektralfunktion erhält man gemäß der Fouriertransformation:
$$X(f)=K\cdot \Delta f \cdot si^2(\pi\cdot \Delta t \cdot f) \quad \text{mit} \ si(x)=\frac{sin(x)}{x}.$$
- 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.
- $X(f)$ weist somit ebenfalls Nullstellen im äquidistanten Abständen $1/\Delta f$ auf.
- Der asymptotische Abfall von $X(f)$ erfolgt hier mit $1/f^2$, während zum Vergleich der Rechteckimpuls mit $1/f$ abfällt.
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$.
- 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
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 \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}$$
- Für die äquivalente Zeitdauer (flächengleiches Rechteck) gilt: $\Delta t = t_1+t_2$.
- 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
- Dies ist ein Sonderfall des Cosinus-Rolloff-Impuls und ergibt sich für $r=1 \ (t_1=0, t_2= \Delta t)$:
$$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}$$
- 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$.