Applets:Dämpfung von Kupferkabeln: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 7: | Zeile 7: | ||
==Dämpfung von Kupferkabeln== | ==Dämpfung von Kupferkabeln== | ||
< | <html> | ||
<head> | |||
<meta charset="utf-8" /> | |||
<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://www.lntwww.de/jsxgraph/jsxgraphcore.js"></script> | |||
<link rel="stylesheet" type="text/css" href="https://www.lntwww.de/jsxgraph/jsxgraph.css" /> | |||
<style> | |||
.button{ | |||
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: 800px; | |||
left: 1000px; | |||
} | |||
.button:active { | |||
background-color: #939393;} | |||
input[type=radio] { | |||
display: block; | |||
} | |||
label { | |||
display: inline-block; | |||
} | |||
</style> | |||
</head> | |||
<body onload="drawNow()"> | |||
<form id="jxgForm"> | |||
<div style=" position:absolute; | |||
margin:700px 8px 3px 20px;"> | |||
<label style="color:blue;" ><input type="radio" name="selection1" value="0" checked onChange="setval1()"/>2.6/9.5mm</label> | |||
<label style="color:blue;"><input type="radio" name="selection1" value="1" onChange="setval2()"/>1.2/4.4mm</label> | |||
</div> | |||
<div style=" position:absolute; | |||
margin:700px 8px 3px 1020px;"> | |||
<label style="color:red;" ><input type="radio" name="selection2" value="0" checked onChange="setval3()"/>0.50mm</label> | |||
<label style="color:red;"><input type="radio" name="selection2" value="1" onChange="setval4()"/>0.40mm</label> | |||
<label style="color:red;"><input type="radio" name="selection2" value="2" onChange="setval5()"/>0.35mm</label> | |||
</div> | |||
<div style=" position:absolute; | |||
margin:800px 8px 3px 610px;"> | |||
<label style="color:black;" ><input type="radio" name="selection3" id="HK" value='0' checked onChange="change(this)"/>$H_K(f)$</label> | |||
<label style="color:black;"><input type="radio" name="selection3" id="HE" value='1' onChange="change(this)"/>$|H_E(f)|$</label> | |||
<label style="color:black;"><input type="radio" name="selection3" id="HE2" value='2' onChange="change(this)"/>$|H_E(f)|^2$</label> | |||
</div> | |||
<p><span style="position:absolute; top:750px; left:20px;">ohne a<sub>0</sub><input name="cb1" id="cb1" value="0" type="checkbox" onclick="change0()" ></span></p> | |||
<p><span style="position:absolute; top:750px; left:160px;">ohne a<sub>1</sub><input name="cb2" id="cb2" value="1" type="checkbox" onclick="change1()" ></span></p> | |||
<p><span style="position:absolute; top:780px; left:20px;">Umrechnung aus rotem Parametersatz<input name="cb3" value="2" id="cb3" type="checkbox" onclick="change2()"></span></p> | |||
<p><span style="position:absolute; top:750px; left:1020px;">ohne k<sub>1</sub><input name="cb4" id="cb4" value="3" type="checkbox" onclick="change3()"></span></p> | |||
<button class="button" onclick="drawNow();">Reset</button> | |||
<div id="plotBoxHtml1" class="jxgbox" style="width:600px; height:300px; border:1px solid black; margin:50px 20px 100px 365px;"></div> | |||
<div id="plotBoxHtml2" class="jxgbox" style="width:600px; height:300px; border:1px solid black; margin:50px 20px 100px 365px;"></div> | |||
<div id="cnfBoxHtml1" class="jxgbox" style="width:330px; height:600px; border:1px solid black; margin:-805px 10px 100px 5px;"></div> | |||
<div id="cnfBoxHtml2" class="jxgbox" style="width:330px; height:600px; border:1px solid black; margin:-700px 800px 100px 995px;"></div> | |||
<div id="cnfBoxHtml3" class="jxgbox" style="width:660px; height:50px; border:1px solid black; margin:-380px 800px 100px 335px;"></div> | |||
</form> | |||
<script type="text/javascript"> | |||
function drawNow() { | |||
//Grundeinstellungen der beiden Applets | |||
JXG.Options.text.useMathJax = true; | |||
var plotBox1 = JXG.JSXGraph.initBoard('plotBoxHtml1', { | |||
showCopyright:false, | |||
axis:false, | |||
zoom:{factorX:1.1, factorY:1.1, wheel:true, needshift:true, eps: 0.1}, | |||
grid:false, | |||
boundingbox: [-1, 90, 32, -10] | |||
}); | |||
var plotBox2 = JXG.JSXGraph.initBoard('plotBoxHtml2', { | |||
showCopyright:false, | |||
axis:false, | |||
zoom:{factorX:1.1, factorY:1.1, wheel:true, needshift:true, eps: 0.1}, | |||
grid:false, | |||
boundingbox: [-32, 1.1, 32, -0.1] | |||
}); | |||
var cnfBox1 = JXG.JSXGraph.initBoard('cnfBoxHtml1', { | |||
showCopyright:false, | |||
axis:false, | |||
ShowNavigation:false, zoom:{enabled:false}, pan:{enabled:false}, | |||
grid:false, | |||
boundingbox: [-3.1, 1.1, 3.1, -0.3] | |||
}); | |||
var cnfBox2 = JXG.JSXGraph.initBoard('cnfBoxHtml2', { | |||
showCopyright:false, | |||
axis:false, | |||
ShowNavigation:false, zoom:{enabled:false}, pan:{enabled:false}, | |||
grid:false, | |||
boundingbox: [-3.1, 1.1, 3.1, -0.3] | |||
}); | |||
var cnfBox3 = JXG.JSXGraph.initBoard('cnfBoxHtml3', { | |||
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(plotBox1); | |||
cnfBox2.addChild(plotBox1); | |||
cnfBox3.addChild(plotBox1); | |||
cnfBox1.addChild(plotBox2); | |||
cnfBox2.addChild(plotBox2); | |||
cnfBox3.addChild(plotBox2); | |||
cnfBox3.addChild(cnfBox2); | |||
cnfBox1.addChild(cnfBox2); | |||
//Einstellungen der Achsen | |||
xaxis1 = plotBox1.create('axis', [[0, 0], [1,0]], { | |||
name:'$\\frac{f}{MHz}$', | |||
withLabel:true, label:{position:'rt', offset:[-25, 15]} | |||
}); | |||
yaxis1 = plotBox1.create('axis', [[0, 0], [0, 1]], { | |||
name:'$\\frac{a_K(f)}{dB}$', | |||
withLabel:true, label:{position:'rt', offset:[10, -5]} | |||
}); | |||
xaxis2 = plotBox2.create('axis', [[0, 0], [1,0]], { | |||
name:'$\\frac{f}{MHz}$', | |||
withLabel:true, label:{position:'rt', offset:[-25, 15]} | |||
}); | |||
yaxis2 = plotBox2.create('axis', [[0, 0], [0, 1]], { | |||
name:'', | |||
withLabel:true, label:{position:'rt', offset:[10, -5]} | |||
}); | |||
//Festlegen der Schieberegler | |||
slda0 = cnfBox1.create('slider',[[-2.8,0.95],[0.6,0.95],[0,21,100]], { | |||
suffixlabel:'$a_0=$', | |||
unitLabel: 'dB/km', | |||
withTicks:false, precision:3,snapWidth:0.001 | |||
}), | |||
slda1 = cnfBox1.create('slider',[[-2.8,0.85],[0.6,0.85],[0,0,700]], { | |||
suffixlabel:'$a_1=$', | |||
unitLabel: 'dB/(km · MHz)', | |||
withTicks:false, precision:4, snapWidth:0.0001 | |||
}), | |||
slda2 = cnfBox1.create('slider',[[-2.8,0.75],[0.6,0.75],[0,10,700]], { | |||
suffixlabel:'$a_2=$', | |||
unitLabel: 'dB/(km · MHz<sup>1/2</sup>)', | |||
withTicks:false, snapWidth:0.01 | |||
}), | |||
sldk1 = cnfBox2.create('slider',[[-2.8,0.95],[0.6,0.95],[0,8,50]], { | |||
suffixlabel:'$k_1=$', | |||
unitLabel: 'dB/km', | |||
withTicks:false, snapWidth:0.1 | |||
}), | |||
sldk2 = cnfBox2.create('slider',[[-2.8,0.85],[0.6,0.85],[0,6,30]], { | |||
suffixlabel:'$k_2=$', | |||
unitLabel: 'dB/km', | |||
withTicks:false, snapWidth:0.1 | |||
}), | |||
sldk3 = cnfBox2.create('slider',[[-2.8,0.75],[0.6,0.75],[0.5,0.84,1]], { | |||
suffixlabel:'$k_3=$', | |||
withTicks:false, snapWidth:0.01 | |||
}), | |||
sldl = cnfBox3.create('slider',[[-2.8,0.4],[-1.6,0.4],[0.1,0.5,30]], { | |||
suffixlabel:'$l=$', | |||
unitLabel: 'km', | |||
withTicks:false, snapWidth:0.5 | |||
}), | |||
sldB = cnfBox3.create('slider',[[-0.8,0.4],[0.4,0.4],[1,0.5,30]], { | |||
suffixlabel:'$B=$', | |||
unitLabel: 'MHz', | |||
withTicks:false, snapWidth:0.5 | |||
}), | |||
sldr = cnfBox3.create('slider',[[1.2,0.4],[2.4,0.4],[0,0.5,1]], { | |||
suffixlabel:'$r=$', | |||
withTicks:false, snapWidth:0.01 | |||
}), | |||
sldf = cnfBox1.create('slider',[[-2.8,0],[0.6,0],[0,0.5,30]], { | |||
suffixlabel:'$f=$', | |||
unitLabel: 'MHz', | |||
withTicks:false, snapWidth:0.5 | |||
}), | |||
//Festlegen der Schieberegler mit Backupfunktion | |||
bkup1=cnfBox2.create('slider',[[-2.8,-10],[0.6,-10],[0,0,1000]], { | |||
withTicks:false, | |||
snapWidth:0.01 | |||
}), | |||
bkup2=cnfBox2.create('slider',[[-2.8,-11],[0.6,-11],[0,0,1000]], { | |||
withTicks:false, | |||
snapWidth:0.01 | |||
}), | |||
bkup3=cnfBox2.create('slider',[[-2.8,-12],[0.6,-12],[0,0,1000]], { | |||
withTicks:false, | |||
snapWidth:0.01 | |||
}), | |||
bkup4=cnfBox2.create('slider',[[-2.8,-13],[0.6,-13],[0,0,1000]], { | |||
withTicks:false, | |||
snapWidth:0.01 | |||
}), | |||
bkup5=cnfBox2.create('slider',[[-2.8,-14],[0.6,-14],[0,0,1000]], { | |||
withTicks:false, | |||
snapWidth:0.01 | |||
}), | |||
bkup6=cnfBox2.create('slider',[[-2.8,-15],[0.6,-15],[0,0,1000]], { | |||
withTicks:false, | |||
snapWidth:0.01 | |||
}), | |||
//Definition der Funktionen in plotBox1 | |||
akb = plotBox1.create('functiongraph',[function(x){ | |||
return ((slda0.Value()+slda1.Value()*x+slda2.Value()*Math.sqrt(x))*sldl.Value())}], | |||
{strokeColor: "blue", visible:true}); | |||
akba0 = plotBox1.create('functiongraph',[function(x){ | |||
return ((slda1.Value()*x+slda2.Value()*Math.sqrt(x))*sldl.Value())}], | |||
{strokeColor: "blue", visible:false}); | |||
akba1 = plotBox1.create('functiongraph',[function(x){ | |||
return ((slda0.Value()+slda2.Value()*Math.sqrt(x))*sldl.Value())}], | |||
{strokeColor: "blue", visible:false}); | |||
akbu = plotBox1.create('functiongraph',[function(x){ | |||
return ((slda0.Value()+slda1.Value()*x+slda2.Value()*Math.sqrt(x))*sldl.Value())}], | |||
{strokeColor: "blue", visible:false}); | |||
akb = plotBox1.create('functiongraph',[function(x){ | |||
return ((sldk1.Value()+sldk2.Value()*Math.pow(x,sldk3.Value()))*sldl.Value())}], | |||
{strokeColor: "red", visible:true}); | |||
//Definition der Funktionen in plotBox2 | |||
var hkb=plotBox2.create('functiongraph',[function(x){ | |||
return (Math.pow(10, -((slda0.Value()+slda1.Value()*Math.abs(x)+slda2.Value()*Math.sqrt(Math.abs(x)))*sldl.Value())/20))}], | |||
{strokeColor: "blue", visible: true}); | |||
var hkr=plotBox2.create('functiongraph',[function(x){ | |||
return (Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((Math.abs(x)),sldk3.Value()))*sldl.Value())/20))}], | |||
{strokeColor: "red", visible:true}); | |||
cr = plotBox2.create('functiongraph',[function(x){ | |||
if (Math.abs(x)<=(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))) | |||
{return 1;} | |||
else if (((sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))<=Math.abs(x)) && (Math.abs(x)<=(sldB.Value()))) | |||
{return Math.pow((Math.cos(((Math.abs(x)-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value())))/((sldB.Value())-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))))*0.5*Math.PI)),2);} | |||
else | |||
{return 0}}], | |||
{strokeColor: "green", visible: false}); | |||
var heb = plotBox2.create('functiongraph',[function(x){ | |||
if (Math.abs(x)<=(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))) | |||
{return 1/(Math.pow(10, -((slda0.Value()+slda1.Value()*Math.abs(x)+slda2.Value()*Math.sqrt(Math.abs(x)))*sldl.Value())/20));} | |||
else if (((sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))<=Math.abs(x)) && (Math.abs(x)<=(sldB.Value()))) | |||
{return Math.pow((Math.cos(((Math.abs(x)-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value())))/((sldB.Value())-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))))*0.5*Math.PI)),2)/(Math.pow(10, -((slda0.Value()+slda1.Value()*Math.abs(x)+slda2.Value()*Math.sqrt(Math.abs(x)))*sldl.Value())/20));} | |||
else | |||
{return 0}}], | |||
{strokeColor: "blue", visible: false}); | |||
var her = plotBox2.create('functiongraph',[function(x){ | |||
if (Math.abs(x)<=(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))) | |||
{return 1/(Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((Math.abs(x)),sldk3.Value()))*sldl.Value())/20));} | |||
else if (((sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))<=Math.abs(x)) && (Math.abs(x)<=(sldB.Value()))) | |||
{return Math.pow((Math.cos(((Math.abs(x)-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value())))/((sldB.Value())-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))))*0.5*Math.PI)),2)/(Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((Math.abs(x)),sldk3.Value()))*sldl.Value())/20));} | |||
else | |||
{return 0}}], | |||
{strokeColor: "red", visible: false}); | |||
var he2b = plotBox2.create('functiongraph',[function(x){ | |||
if (Math.abs(x)<=(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))) | |||
{return Math.pow((1/(Math.pow(10, -((slda0.Value()+slda1.Value()*Math.abs(x)+slda2.Value()*Math.sqrt(Math.abs(x)))*sldl.Value())/20))),2);} | |||
else if (((sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))<=Math.abs(x)) && (Math.abs(x)<=(sldB.Value()))) | |||
{return Math.pow((Math.pow((Math.cos(((Math.abs(x)-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value())))/((sldB.Value())-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))))*0.5*Math.PI)),2)/(Math.pow(10, -((slda0.Value()+slda1.Value()*Math.abs(x)+slda2.Value()*Math.sqrt(Math.abs(x)))*sldl.Value())/20))),2);} | |||
else | |||
{return 0}}], | |||
{strokeColor: "blue", visible: false}); | |||
var he2r = plotBox2.create('functiongraph',[function(x){ | |||
if (Math.abs(x)<=(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))) | |||
{return Math.pow((1/(Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((Math.abs(x)),sldk3.Value()))*sldl.Value())/20))),2);} | |||
else if (((sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))<=Math.abs(x)) && (Math.abs(x)<=(sldB.Value()))) | |||
{return Math.pow((Math.pow((Math.cos(((Math.abs(x)-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value())))/((sldB.Value())-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))))*0.5*Math.PI)),2)/(Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((Math.abs(x)),sldk3.Value()))*sldl.Value())/20))),2);} | |||
else | |||
{return 0}}], | |||
{strokeColor: "red", visible: false}); | |||
//Festlegen von Hilfswerten | |||
f_1=sldB.Value()*(1-sldr.Value())/(1+sldr.Value()); | |||
f_2=sldB.Value(); | |||
//Definition der Punkte und Verbindungslinien in plotBox1 | |||
var p_h1 = plotBox1.create('point', [function() | |||
{return sldB.Value()}, | |||
function() | |||
{return (slda0.Value()+slda1.Value()*sldB.Value()+slda2.Value()*Math.sqrt(sldB.Value()))*sldl.Value();}], | |||
{visible: false, color:"blue", fixed:true, label:false, size:1, name:''}) | |||
var p_h2 = plotBox1.create('point', [0, function() | |||
{return (slda0.Value()+slda1.Value()*sldB.Value()+slda2.Value()*Math.sqrt(sldB.Value()))*sldl.Value();}], | |||
{visible: true, color:"blue", fixed:true, label:false, size:1, name:''}) | |||
var p_h3 = plotBox1.create('point', [function() | |||
{return sldB.Value()}, | |||
function() | |||
{return (sldk1.Value()+sldk2.Value()*Math.pow(sldB.Value(),sldk3.Value()))*sldl.Value();}], | |||
{visible: false, color:"red", fixed:true, label:false, size:1, name:''}) | |||
var p_h4 = plotBox1.create('point', [0, function() | |||
{return (sldk1.Value()+sldk2.Value()*Math.pow(sldB.Value(),sldk3.Value()))*sldl.Value();}], | |||
{visible: true, color:"red", fixed:true, label:false, size:1, name:''}) | |||
var p_h5 = plotBox1.create('point', [function() | |||
{return sldB.Value()}, 0], | |||
{visible: false, color:"black", fixed:true, label:false, size:1, name:''}) | |||
li1 = plotBox1.create('line',[p_h1,p_h5], { | |||
straightFirst:false, straightLast:false, | |||
strokeColor: "blue", dash:1 | |||
}); | |||
li2 = plotBox1.create('line',[p_h3,p_h5], { | |||
straightFirst:false, straightLast:false, | |||
strokeColor: "red", dash:1 | |||
}); | |||
li3 = plotBox1.create('line',[p_h1,p_h2], { | |||
straightFirst:false, straightLast:false, | |||
strokeColor: "blue", dash:1 | |||
}); | |||
li4 = plotBox1.create('line',[p_h3,p_h4], { | |||
straightFirst:false, straightLast:false, | |||
strokeColor: "red", dash:1 | |||
}); | |||
//Definition der Maxima in plotBox2 | |||
var p_maxh1 = plotBox2.create('point', [0, function() | |||
{return Math.max(Math.pow(10, -((slda0.Value())*sldl.Value())/20), Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow(0,sldk3.Value()))*sldl.Value())/20))}], | |||
{visible: false, color:"black", fixed:true, label:false, size:1, name:''}) | |||
var p_maxh2 = plotBox2.create('point', [1, function() | |||
{return Math.max(Math.pow(10, -((slda0.Value())*sldl.Value())/20), Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow(0,sldk3.Value()))*sldl.Value())/20))}], | |||
{visible: false, color:"black", fixed:true, label:false, size:1, name:''}) | |||
var li4 = plotBox2.create('line',[p_maxh1,p_maxh2], { | |||
strokeColor: "black", dash:3, | |||
visible:true | |||
}); | |||
//Ausgabe der Ergebnisse in Textform | |||
txtr=plotBox1.create('text',[2, function() | |||
{return ((slda0.Value()+slda1.Value()*sldB.Value()+slda2.Value()*Math.sqrt(sldB.Value()))*sldl.Value())+((slda0.Value()+slda1.Value()*sldB.Value()+slda2.Value()*Math.sqrt(sldB.Value()))*sldl.Value())/10;}, | |||
function() | |||
{return ((slda0.Value()+slda1.Value()*sldB.Value()+slda2.Value()*Math.sqrt(sldB.Value()))*sldl.Value()).toFixed(2);}], | |||
{fixed:true, strokeColor:'blue', visible:true}); | |||
txtb=plotBox1.create('text',[2, function() | |||
{return ((sldk1.Value()+sldk2.Value()*Math.pow(sldB.Value(),sldk3.Value()))*sldl.Value())+((sldk1.Value()+sldk2.Value()*Math.pow(sldB.Value(),sldk3.Value()))*sldl.Value())/10;}, | |||
function() | |||
{return ((sldk1.Value()+sldk2.Value()*Math.pow(sldB.Value(),sldk3.Value()))*sldl.Value()).toFixed(2);}], | |||
{fixed:true, strokeColor:'red', visible:true}); | |||
fw=cnfBox1.create('text',[-2,-0.05, '<B>Funktionswerte:</B>'], { | |||
fixed:true, | |||
strokeColor:'black', | |||
visible:true | |||
}); | |||
var iw=cnfBox2.create('text',[-2,-0.05, '<B>Integralwerte:</B>'], { | |||
fixed:true, | |||
strokeColor:'black', | |||
visible:false | |||
}); | |||
eb=cnfBox1.create('text',[-2,-0.1, function(){ | |||
if (sldf.Value()<0) | |||
{return Math.pow(10, -((slda0.Value()+slda1.Value()*(-sldf.Value())+slda2.Value()*Math.sqrt(-sldf.Value()))*sldl.Value())/20).toFixed(4);} | |||
else | |||
{return Math.pow(10, -((slda0.Value()+slda1.Value()*sldf.Value()+slda2.Value()*Math.sqrt(sldf.Value()))*sldl.Value())/20).toFixed(4);}}], | |||
{fixed:true, strokeColor:'blue', visible:true}); | |||
er=cnfBox1.create('text',[-2,-0.15, function(){ | |||
if (sldf.Value()<0) | |||
{return Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((-sldf.Value()),sldk3.Value()))*sldl.Value())/20).toFixed(4);} | |||
else | |||
{return Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow(sldf.Value(),sldk3.Value()))*sldl.Value())/20).toFixed(4);}}], | |||
{fixed:true, strokeColor:'red', visible:true}); | |||
var es=plotBox2.create('text',[-10, function(){ | |||
return Math.max(Math.pow(10, -((slda0.Value())*sldl.Value())/20), Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow(0,sldk3.Value()))*sldl.Value())/20))+0.05}, | |||
function(){ | |||
return Math.max(Math.pow(10, -((slda0.Value())*sldl.Value())/20), Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow(0,sldk3.Value()))*sldl.Value())/20)).toFixed(4)}], | |||
{fixed:true, strokeColor:'black', visible:true}); | |||
var iheb=cnfBox2.create('text', [-2,-0.1,function(){ return JXG.Math.Numerics.I([-30,30],function(x){ | |||
if (Math.abs(x)<=(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))) | |||
{return 1/(Math.pow(10, -((slda0.Value()+slda1.Value()*Math.abs(x)+slda2.Value()*Math.sqrt(Math.abs(x)))*sldl.Value())/20));} | |||
else if (((sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))<=Math.abs(x)) && (Math.abs(x)<=(sldB.Value()))) | |||
{return Math.pow((Math.cos(((Math.abs(x)-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value())))/((sldB.Value())-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))))*0.5*Math.PI)),2)/(Math.pow(10, -((slda0.Value()+slda1.Value()*Math.abs(x)+slda2.Value()*Math.sqrt(Math.abs(x)))*sldl.Value())/20));} | |||
else | |||
{return 0}}).toFixed(3) }], | |||
{fixed:true, strokeColor:'blue', visible:false}); | |||
var iher=cnfBox2.create('text', [-2,-0.15,function(){ return JXG.Math.Numerics.I([-30,30],function(x){ | |||
if (Math.abs(x)<=(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))) | |||
{return 1/(Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((Math.abs(x)),sldk3.Value()))*sldl.Value())/20));} | |||
else if (((sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))<=Math.abs(x)) && (Math.abs(x)<=(sldB.Value()))) | |||
{return Math.pow((Math.cos(((Math.abs(x)-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value())))/((sldB.Value())-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))))*0.5*Math.PI)),2)/(Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((Math.abs(x)),sldk3.Value()))*sldl.Value())/20));} | |||
else | |||
{return 0}}).toFixed(3) }], | |||
{fixed:true, strokeColor:'red', visible:false}); | |||
var ihe2b=cnfBox2.create('text', [-2,-0.1,function(){ return JXG.Math.Numerics.I([-30,30],function(x){ | |||
if (Math.abs(x)<=(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))) | |||
{return Math.pow((1/(Math.pow(10, -((slda0.Value()+slda1.Value()*Math.abs(x)+slda2.Value()*Math.sqrt(Math.abs(x)))*sldl.Value())/20))),2);} | |||
else if (((sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))<=Math.abs(x)) && (Math.abs(x)<=(sldB.Value()))) | |||
{return Math.pow((Math.pow((Math.cos(((Math.abs(x)-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value())))/((sldB.Value())-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))))*0.5*Math.PI)),2)/(Math.pow(10, -((slda0.Value()+slda1.Value()*Math.abs(x)+slda2.Value()*Math.sqrt(Math.abs(x)))*sldl.Value())/20))),2);} | |||
else | |||
{return 0}}).toFixed(3) }], | |||
{fixed:true, strokeColor:'blue', visible:false}); | |||
var ihe2r=cnfBox2.create('text', [-2,-0.15,function(){ return JXG.Math.Numerics.I([-30,30],function(x){ | |||
if (Math.abs(x)<=(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))) | |||
{return Math.pow((1/(Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((Math.abs(x)),sldk3.Value()))*sldl.Value())/20))),2);} | |||
else if (((sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))<=Math.abs(x)) && (Math.abs(x)<=(sldB.Value()))) | |||
{return Math.pow((Math.pow((Math.cos(((Math.abs(x)-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value())))/((sldB.Value())-(sldB.Value()*(1-sldr.Value())/(1+sldr.Value()))))*0.5*Math.PI)),2)/(Math.pow(10, -((sldk1.Value()+sldk2.Value()*Math.pow((Math.abs(x)),sldk3.Value()))*sldl.Value())/20))),2);} | |||
else | |||
{return 0}}).toFixed(3) }], | |||
{fixed:true, strokeColor:'red', visible:false}); | |||
}; | |||
//Definition der Funktion für ohne a_0 | |||
function change0(){ | |||
if (cb1.checked==true){ | |||
bkup1.setValue(slda0.Value()); | |||
slda0.setValue(0); | |||
cnfBox1.fullUpdate(); | |||
plotBox1.fullUpdate(); | |||
plotBox2.fullUpdate(); | |||
} | |||
else if (cb1.checked==false){ | |||
slda0.setValue(bkup1.Value()); | |||
cnfBox1.fullUpdate(); | |||
plotBox1.fullUpdate(); | |||
plotBox2.fullUpdate(); | |||
}} | |||
//Definition der Funktion für ohne a_1 | |||
function change1(){ | |||
if (cb2.checked==true) { | |||
bkup2.setValue(slda1.Value()); | |||
slda1.setValue(0); | |||
cnfBox1.fullUpdate(); | |||
plotBox1.fullUpdate(); | |||
plotBox2.fullUpdate(); | |||
} | |||
else if (cb2.checked==false) { | |||
slda1.setValue(bkup2.Value()); | |||
cnfBox1.fullUpdate(); | |||
plotBox1.fullUpdate(); | |||
plotBox2.fullUpdate(); | |||
}} | |||
//Definition der Funktion für Umrechnung aus rotem Parametersatz | |||
function change2(){ | |||
if (cb3.checked==true){ | |||
bkup4.setValue(slda0.Value()); | |||
bkup5.setValue(slda1.Value()); | |||
bkup6.setValue(slda2.Value()); | |||
slda0.setValue(sldk1.Value()); | |||
slda1.setValue(15*Math.pow(sldB.Value(),sldk3.Value()-1)*(sldk2.Value()*(sldk3.Value()-0.5))/((sldk3.Value()+1.5)*(sldk3.Value()+2))); | |||
slda2.setValue(10*Math.pow(sldB.Value(),sldk3.Value()-0.5)*(sldk2.Value()*(1-sldk3.Value()))/((sldk3.Value()+1.5)*(sldk3.Value()+2))); | |||
cnfBox1.fullUpdate(); | |||
plotBox1.fullUpdate(); | |||
plotBox2.fullUpdate(); | |||
} | |||
else if (cb3.checked==false) { | |||
slda0.setValue(bkup4.Value()); | |||
slda1.setValue(bkup5.Value()); | |||
slda2.setValue(bkup6.Value()); | |||
cnfBox1.fullUpdate(); | |||
plotBox1.fullUpdate(); | |||
plotBox2.fullUpdate(); | |||
}} | |||
//Definition der Funktion für ohne k_1 | |||
function change3(){ | |||
if (cb4.checked==true){ | |||
bkup3.setValue(sldk1.Value()); | |||
sldk1.setValue(0); | |||
cnfBox2.fullUpdate(); | |||
plotBox1.fullUpdate(); | |||
plotBox2.fullUpdate(); | |||
} | |||
else if (cb4.checked==false){ | |||
sldk1.setValue(bkup3.Value()); | |||
cnfBox2.fullUpdate(); | |||
plotBox1.fullUpdate(); | |||
plotBox2.fullUpdate(); | |||
}} | |||
//Definition der Funktion für 2.6/9.5mm | |||
function setval1() { | |||
slda0.setValue(0.014); | |||
slda1.setValue(0.0038); | |||
slda2.setValue(2.36); | |||
cnfBox1.fullUpdate(); | |||
} | |||
//Definition der Funktion für 1.2/4.4mm | |||
function setval2() { | |||
slda0.setValue(0.068); | |||
slda1.setValue(0.0039); | |||
slda2.setValue(5.2); | |||
cnfBox1.fullUpdate(); | |||
} | |||
//Definition der Funktion für 0.50mm | |||
function setval3() { | |||
sldk1.setValue(4.4); | |||
sldk2.setValue(10.8); | |||
sldk3.setValue(0.6); | |||
cnfBox2.fullUpdate(); | |||
} | |||
//Definition der Funktion für 0.40mm | |||
function setval4() { | |||
sldk1.setValue(5.1); | |||
sldk2.setValue(14.3); | |||
sldk3.setValue(0.59); | |||
cnfBox2.fullUpdate(); | |||
} | |||
//Definition der Funktion für 0.35mm | |||
function setval5() { | |||
sldk1.setValue(7.9); | |||
sldk2.setValue(15.1); | |||
sldk3.setValue(0.); | |||
cnfBox2.fullUpdate(); | |||
} | |||
//Definition der Funktion für H_K bzw. H_E | |||
var change = function(obj) { | |||
var v = obj.value; | |||
if (v=='0') { HK();} | |||
else if (v=='1') { HE();} | |||
else if (v=='2') { HE2();} | |||
}; | |||
function HK() { | |||
hkb.setProperty({visible:true}); | |||
hkr.setProperty({visible:true}); | |||
es.setProperty({visible:true}); | |||
li4.setProperty({visible:true}); | |||
heb.setProperty({visible:false}); | |||
her.setProperty({visible:false}); | |||
he2b.setProperty({visible:false}); | |||
he2r.setProperty({visible:false}); | |||
iw.setProperty({visible:false}); | |||
iher.setProperty({visible:false}); | |||
iheb.setProperty({visible:false}); | |||
ihe2b.setProperty({visible:false}); | |||
ihe2r.setProperty({visible:false}); | |||
}; | |||
function HE() { | |||
hkb.setProperty({visible:false}); | |||
hkr.setProperty({visible:false}); | |||
es.setProperty({visible:false}); | |||
li4.setProperty({visible:false}); | |||
heb.setProperty({visible:true}); | |||
her.setProperty({visible:true}); | |||
he2b.setProperty({visible:false}); | |||
he2r.setProperty({visible:false}); | |||
iw.setProperty({visible:true}); | |||
iher.setProperty({visible:true}); | |||
iheb.setProperty({visible:true}); | |||
ihe2b.setProperty({visible:false}); | |||
ihe2r.setProperty({visible:false}); | |||
}; | |||
function HE2() { | |||
hkb.setProperty({visible:false}); | |||
hkr.setProperty({visible:false}); | |||
es.setProperty({visible:false}); | |||
li4.setProperty({visible:false}); | |||
heb.setProperty({visible:false}); | |||
her.setProperty({visible:false}); | |||
he2b.setProperty({visible:true}); | |||
he2r.setProperty({visible:true}); | |||
iw.setProperty({visible:true}); | |||
iher.setProperty({visible:false}); | |||
iheb.setProperty({visible:false}); | |||
ihe2b.setProperty({visible:true}); | |||
ihe2r.setProperty({visible:true}); | |||
}; | |||
//Definition der Zeige und Verstecke Koordinatensystemfunktion | |||
function showgrid() { | |||
if (gridbox.checked) { | |||
xaxis1 = plotBox1.create('axis', [[0, 0], [1,0]], {}); | |||
yaxis1 = plotBox1.create('axis', [[0, 0], [0, 1]], {}); | |||
xaxis2 = plotBox2.create('axis', [[0, 0], [1, 0]], {}); | |||
yaxis2 = plotBox2.create('axis', [[0, 0], [0, 1]], {}); | |||
} else { | |||
xaxis1.removeTicks(xaxis1.defaultTicks); | |||
yaxis1.removeTicks(yaxis1.defaultTicks); | |||
xaxis2.removeTicks(xaxis2.defaultTicks); | |||
yaxis2.removeTicks(yaxis2.defaultTicks); | |||
} | |||
plotBox1.fullUpdate(); | |||
plotBox2.fullUpdate(); | |||
}; | |||
</script> | |||
</body> | |||
</html> | |||
==Theoretischer Hintergrund== | ==Theoretischer Hintergrund== | ||
Version vom 23. September 2017, 00:44 Uhr
Dämpfung von Kupferkabeln
Theoretischer Hintergrund
- Die Dämpfungsfunktion eines Koaxialkabels wird meist in folgender Form angegeben:
$$a_k(f)=(a_0+a_1\cdot f+a_2\cdot f^{\frac{1}{2}})\cdot l \hspace{0.5cm}\Rightarrow \hspace{0.5cm} \text{Betragsfrequenzgang} \left| H_K(f)\right|=10^{-a_K(f)/20}.$$
- $a_K(f)$ ist direkt proportional zur Leitungslänge $l$.
- Der Koeffizient $a_0$ beschreibt die Ohmschen Längenverluste.
- Der Koeffizient $a_1$ beschreibt die Querverluste.
- Der Koeffizient $a_2$ beschreibt den Skineffekt; dieser ist sehr dominant.
- In der Literatur findet man folgende Dämpfungsfunktion einer Zweidrahtleitung:
$$a_k(f)=(k_1+k_2\cdot f^{k_3})\cdot l \hspace{0.5cm}\Rightarrow \hspace{0.5cm} \text{empirische Formel von Pollakowski & Wellhausen.}$$
- Umrechnung der $k$-Parameter in die $a$-Parameter nach dem Kriterium, dass der mittlere quadratische Fehler innerhalb der Bandbreite $B$ minimal sein soll:
$$a_0=k_1 \text{(trivial)}, \quad a_1=15\cdot B^{k_3-1}\cdot \frac{k_2\cdot (k_3-0.5)}{(k_3+1.5)\cdot (k_3+2)}, \quad a_2=10\cdot B^{k_3-0.5}\cdot \frac{k_2\cdot (1-k_3)}{(k_3+1.5)\cdot (k_3+2)}.$$
- Kontrolle: $k_3=1 \Rightarrow a_1=k_2;\ a_2=0 \quad k_3=0.5 \Rightarrow a_1=0;\ a_2=k_2.$
- Der Gesamtfrequenzgang $H(f)$ ist ein Cosinus-Rolloff-Tiefpass mit Rolloff-Faktor $r$, wobei stets $B=f_2$ und $r=\frac{f_2-f_1}{f_2+f_1}$ gelten soll.
- Ohne Berücksichtigung des Sendespektrums gilt $H(f)=H_K(f)\cdot H_E(f) \Rightarrow H_E(f)=\frac{H(f)}{H_K(f)}$.
- Der angegebene Integralwert $=\int_{-\infty}^{+\infty} \left| H_E(f)\right|^2 \hspace{0.15cm} {\rm d}f$ ist ein Maß für die Rauschleistung des Systems, wenn der Kanal $H_K(f)$ durch das Empfangsfilter $H_E(f)$ in weiten Bereichen bis $f_1$ vollständig entzerrt wird.
- idealer Kanal ($a_0=a_1=a_2=0$ dB), $B=20$ MHz, $r=0$: Integralwert = $40$ MHz.
- schwach verzerrender Kanal ($a_2=5$ dB), $B=20$ MHz, $r=0.5$: Integralwert $\approx 505$ MHz.
Vorgeschlagene Parametersätze
(1) Nur blauer Parametersatz, $l=1$ km, $B=30$ MHz, $r=0$, $a_0=20$, $a_1=0$, $a_2=0$:
Konstante Werte $a_K=20$ dB und $\left| H_K(f)\right|=0.1$. Nur Ohmsche Verluste werden berücksichtigt.
(2) Parameter wie (1), aber zusätzlich $a_1=1$ dB/(km · MHz):
Linearer Anstieg von $a_K(f)$ zwischen $20$ dB und $50$ dB, $\left| H_K(f)\right|$ fällt beidseitig exponentiell ab.
(3) Parameter wie (1), aber $a_0=0$, $a_1=0$, $a_2=1$ dB/(km · MHz1/2).
$a_K(f)$ und $\left| H_K(f)\right|$ werden ausschließlich durch den Skineffekt bestimmt. $a_K(f)$ ist proportional zu $f^{1/2}$.
(4) Parameter wie (1), aber nun mit der Einstellung „Koaxialkabel $2.6/9.5$ mm“ (Normalkoaxialkabel):
Es überwiegt der Skineffekt; $a_k$ ($f=30$ MHz)$=13.05$ dB; ohne $a_0$: $13.04$ dB, ohne $a_1=12.92$ dB.
(5) Parameter wie (1), aber nun mit der Einstellung „Koaxialkabel $1.2/4.4$ mm“ (Kleinkoaxialkabel):
Wieder überwiegt der Skineffekt; $a_k$ ($f=30$ MHz)$=28.66$ dB; ohne $a_0$: $28.59$ dB, ohne $a_1=28.48$ dB.
(6) Nur roter Parametersatz, $l=1 km$, $b=30$ MHz, $r=0$, Einstellung „Zweidrahtleitung $0.4$ mm“.
Skineffekt ist auch hier dominant; $a_k$ ($f=30$ MHz)$=111.4$ dB; ohne $k_1$: $106.3$ dB.
(7) Parameter wie (6), aber nun Halbierung der Kabellänge ($l=0.5$ km):
Auch die Dämpfungswerte werden halbiert: $a_k$ ($f=30$ MHz)$=55.7$ dB; ohne $k_1$: $53.2$ dB.
(8) Parameter wie (7), dazu im blauen Parametersatz die umgerechneten Werte der Zweidrahtleitung:
Sehr gute Approximation der $k$-Parameter durch die $a$-Parameter; Abweichung < $0.4$ dB.
(9) Parameter wie (8), aber nun Approximation auf die Bandbreite $B=20$ MHz:
Noch bessere Approximation der $k$-Parameter durch die $a$-Parameter; Abweichung < $0.15$ dB.
(10) Nur blauer Parametersatz, $l=1$ km, $B=30$ MHz, $r=0$, $a_0=a_1=a_2=0$; unten Darstellung $\left| H_K(f)\right|^2$:
Im gesamten Bereich ist $\left| H_K(f)\right|^2=1$; der Integralwert ist somit $2B=60$ (in MHz).
(11) Parameter wie (10), aber nun mit Einstellung „Koaxialkabel $2.6/9.5$ mm“ (Normalkoaxialkabel):
$\left| H_K(f)\right|^2$ ist bei $f=1$ etwa $1$ und steigt zu den Rändern bis ca. $20$. Der Integralwert ist ca. $550$.
(12) Parameter wie (11), aber nun mit der deutlich größeren Kabellänge $l=5$ km:
Deutliche Verstärkung des Effekts; Anstieg bis ca. $3.35\cdot 10^6$ am Rand und Integralwert $2.5\cdot 10^7$.
(13) Parameter wie (12), aber nun mit Rolloff-Faktor $r=0.5$:
Deutliche Abschwächung des Effekts; Anstieg bis ca. $5.25\cdot 10^4$ ($f$ ca. $20$ MHz), Integralwert ca. $1.07\cdot 10^6$.
(14) Parameter wie (13), aber ohne Berücksichtigung der Ohmschen Verluste ($a_0=0$):
Nahezu gleichbleibendes Ergebnis; Anstieg bis ca. $5.15\cdot 10^4$ ($f$ ca. $20$ MHz), Integralwert ca. $1.05\cdot 10^6$.
(15) Parameter wie (14), aber auch ohne Berücksichtigung der Querverluste ($a_1=0$):
Ebenfalls kein großer Unterschied; Anstieg bis ca. $4.74\cdot 10^4$ ($f$ ca. $20$ MHz), Integralwert ca. $0.97\cdot 10^6$.
(16) Nur roter Parametersatz, $l=1$ km, $B=30$ MHz, $r=0.5$, Einstellung „Zweidrahtleitung $0.4$ mm“:
Anstieg bis ca. $3\cdot 10^8$ ($f$ ca. $23$ MHz), Integralwert ca. $4.55\cdot 10^9$; ohne $k_1$: $0.93\cdot 10^8$ ($f$ ca. $23$ MHz) bzw. $1.41\cdot 10^9$.