Applets:Dämpfung von Kupferkabeln: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
Zeile 7: Zeile 7:
  
 
==Dämpfung von Kupferkabeln==
 
==Dämpfung von Kupferkabeln==
<html>
+
<applet>
<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 &middot; 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 &middot; 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 22. September 2017, 23:45 Uhr

Dämpfung von Kupferkabeln

<applet>

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$.