Difference between revisions of "Applets:Dämpfung von Kupferkabeln"

From LNTwww
Line 7: Line 7:
  
 
==Dämpfung von Kupferkabeln==
 
==Dämpfung von Kupferkabeln==
<applet>
+
<html>
 +
<head>
 +
  <meta charset="utf-8" />
 +
  <script type="text/javascript" src="https://en.lntwww.de/MathJax/unpacked/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full,local/mwMathJaxConfig"></script>
 +
  <script type="text/javascript" src="https://en.lntwww.de/jsxgraph/jsxgraphcore.js"></script>
 +
  <link rel="stylesheet" type="text/css" href="https://en.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==

Revision as of 23:44, 22 September 2017

Dämpfung von Kupferkabeln

ohne a0

ohne a1

Umrechnung aus rotem Parametersatz

ohne k1


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