Bodediagramm für 2Pol aktiv Hoch und Tiefpass

Gast #5266486
Hallo ihr Lieben,
ich wollte aus der Übertragungsfunktion ein Bodediagramm erstellen.
H(s)= A + Bs + Cs^2 / D + Es + Fs^2
Die aufgelöste Formel steht in der function CalcH.
Das sieht auch alles klasse aus nur ist mein Graph um den Faktor 5 
gestaucht und ich verstehe nicht warum.
Ich hab da jetzt erstmal in meiner Skalierfunktion geschummelt.
Da wohl keine sich in den Code reinlesen möchte, bitte nur mal schauen,
ob ich mich bei der Umsetzung der Übertragungsfunktion vertan habe 
(function CalcH) Om1 ist klein Omega und ABCDEF sind wie Oben.

1
      function mkH(Type,GGain,XSize,XOffset,YGOffset,XStep,YGStep,XUr,YGUr,XFakt,YGFakt,GPhase,YPOffset,YPStep,YPUr,YPFakt){
2
        var posx;
3
        var Gpoints = '';
4
        var Ppoints = '';
5
        var Log10 = YGStep/YGFakt/Math.log(10);      
6
        for(posx=0;posx<(XSize+1);posx++){
7
          var Om = 2*Math.PI*Math.pow(10,((posx-XOffset)*XFakt/XStep)+XUr);
8
          Calc(Type,Om);
9
          var yG = Math.log(QBetrag)*Log10*5;<--HIER HABE ICH GESCHUMMELT
10
          Gpoints += posx.toString()+','+(YGOffset+(YGUr*YGStep) - yG).toString()+' ';
11
          var yP = Phase*YPStep/YPFakt;
12
          Ppoints += posx.toString()+','+(YPOffset+(YPUr*YPStep) - yP).toString()+' ';
13
        }
14
        document.getElementById(GGain).setAttribute('points', Gpoints);
15
        document.getElementById(GPhase).setAttribute('points', Ppoints);
16
      }
17
      function Calc(Type,Om){
18
        var Z1=document.getElementById('Z1').value/1000;
19
        var Z2=document.getElementById('Z2').value/1000;
20
        var Z3=document.getElementById('Z3').value/1000;
21
        var Z4=document.getElementById('Z4').value/1000;
22
        //document.getElementById('Debug').innerHTML+=Z1+'|';
23
        if (Type=='LP')CalcH(1,0,0,1,Z4*(Z1+Z2),Z1*Z2*Z3*Z4,Om);//Tiefpass
24
        if (Type=='HP')CalcH(0,0,Z1*Z2*Z3*Z4,1,Z1*(Z3+Z4),Z1*Z2*Z3*Z4,Om);//Tiefpass
25
      }
26
      function CalcH(A,B,C,D,E,F,Om1){
27
        var Om2=Om1*Om1;
28
        var Om3=Om2*Om1;
29
        var Om4=Om2*Om2;
30
        var Nenner = D*D + Om2*(E*E-2*D*F) + Om4*F*F;
31
        var ZRe = A*D + Om2*(B*E-A*F-C*D) + Om4*C*F;
32
        var ZIm = Om1*(B*D-A*E) + Om3*(C*E-B*F);
33
        var Re = ZRe/Nenner;
34
        var Im = ZIm/Nenner;
35
        QBetrag = Re*Re + Im*Im;
36
        //document.getElementById('Debug').innerHTML+=temp+'|';
37
        Phase = (Math.acos(Re/Math.sqrt(QBetrag))*180/Math.PI);
38
        if (Im<0)Phase *= -1;
39
      }

Vielen Dank
Christof
Angehängte Dateien:
Gast
Danke Leute,
ich bin doof. Ich liege sogar um den Faktor 10 daneben. Die dB sind ja 
zum 10 Logarithmus mit dem Faktor 10 skaliert. log(2) ist ja 0,3 und 
nicht 3.

Sorry

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.