www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Anwendungsprogramme" - Gnuplot Phaseng. Filter
Gnuplot Phaseng. Filter < Anwendungsprogramme < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Anwendungsprogramme"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Gnuplot Phaseng. Filter: Gnuplot Butterworth Phasengang
Status: (Frage) beantwortet Status 
Datum: 14:41 Di 24.08.2010
Autor: Ausgedacht

Aufgabe
Plotten der Phasengänge des Butterworth Filters mit Gnuplot. Der Filter ist hierbei normiert mit einer Grenzfrequenz = 1 rad/s.

Hallo Zusammen!
Ich habe ein Problem mit Gnuplot den Phasengang eines normierten Butterworth Filters der 2. Ord. (Grenzfrequenz=1) zu plotten. Ich denke es dürfte ein Fehler in der Funktion sein hier H(w)(siehe Script unten). Ich komme aber leider nicht drauf. Vielleicht kann mir ja jemand helfen, ich würde mich sehr freuen. Gruß Thilo

#Begin Script

set samples 2001
set encoding [mm] iso_8859_1 [/mm]
set terminal postscript enhanced landscape color lw 2 "Arial" 18
set output "butterwortTP-Phase.ps"

# Butterworth amplitude response and decibel calculation.  n is the order, which is just 1 in this image.
G(w) = -atan(w)*180/pi
H(w) = -atan((sqrt(2.0)*(w))/(1.0-(w**2.0)))*180/pi

# Gridlines
set grid

# Set x axis to logarithmic scale
set logscale x 10

# Set range of x and y axes
set xrange [0.001:1000]
set yrange [-365:35]

# Create y-axis tic marks every 15 degrees
set ytics 30

# Create x-axis tic marks once per decade (every multiple of 10)
set xtics 10

# Use 10 x-axis minor divisions per major division
set mxtics 10

# Axis labels
set xlabel "Kreisfrequenz ({/Symbol w}) [rad/s]"
set ylabel "Phase [Grad]"

# No need for a key
set nokey #0.1,-25

# Frequency response's line plotting style
set style line 1 lt 1 lw 2 lc 6
set style line 5 lt 1 lw 2 lc 1


# Label coordinates are relative to the graph window, not to the function, centered at the 1/4 and 3/4 width points
set label 1 "Durchlassbereich" at graph 0.25, graph 0.1 c
set label 2 "Sperrbereich" at graph 0.75, graph 0.1 c

# -3 dB arrow style and arrow

# "Cutoff frequency" label uses same coordinates as the function
set label 3 "Grenzfreq." at 2,4 l



# put legend
set key 30, -20

# Plot the filter response
plot [mm] \ [/mm]
G(x) ls 1 title "1. [mm] Ord.",\ [/mm]
H(x) ls 5 title "2. Ord."

# End Script

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Gnuplot Phaseng. Filter: Antwort
Status: (Antwort) fertig Status 
Datum: 16:49 Di 24.08.2010
Autor: Event_Horizon

Hallo!

zeig doch lieber erstmal, was da nicht klappt, oder wie die Formel theoretisch aussieht.

Nebenbei: mit

set angles degree

sagst du Gnuplot, daß du deine Winkel allesamt gerne in Grad hättest. Dein 180/pi brauchst du dann nicht mehr

Bezug
                
Bezug
Gnuplot Phaseng. Filter: Konkreter
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:17 Di 24.08.2010
Autor: Ausgedacht

MBSchluesselwort
Hallo Sebastian,

was mir gnuplot liefert ist bei der 2. Ordnung des Butterworth-Filters nicht der erwartete Phasengang, der sollte nämlich gegen -180 Grad gehen.
Für die Phase des Butterworthfilters 2. Ordnung sollte folgendes gelten: [mm] roh(\omega)=-arctan((\wurzel{2}*\omega)/(1-\omega^{2})) [/mm]
Allgemein lautet die Formel für den Phasengangs für die Übertragungsfunktion: [mm] roh(\omega)=arctan(IM(H(j(\omega))/RE(H(j(\omega))) [/mm] wobei IM für den imaginären Teil der komplexen Übertragungsfunktion steht RE für den reellen Anteil.
Für die erste Ord. sieht das Ganze bei mir ja auch korrekt aus aber ich möchte einen Vergleich mit den Phasengängen und verscheidenen Filtern verschiedener Ord. machen, was hier schon bei der 2. Ord. beim Plotten schief läuft. Ich weiss momentan leider nicht wo mein Fehler liegt, er muss ja aber in der Funktion (hier H(w)) stecken.
Gruß Thilo

Habe hier noch schnell nen schlechtes jpeg. angehängt. Das schwarze gekrickel sollte der richtige Verlauf sein.
[Dateianhang nicht öffentlich]

Dateianhänge:
Anhang Nr. 1 (Typ: jpeg) [nicht öffentlich]
Bezug
                        
Bezug
Gnuplot Phaseng. Filter: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:55 Di 24.08.2010
Autor: fencheltee


> MBSchluesselwort
>  Hallo Sebastian,
>  
> was mir gnuplot liefert ist bei der 2. Ordnung des
> Butterworth-Filters nicht der erwartete Phasengang, der
> sollte nämlich gegen -180 Grad gehen.
> Für die Phase des Butterworthfilters 2. Ordnung sollte
> folgendes gelten:
> [mm]roh(\omega)=-arctan((\wurzel{2}*\omega)/(1-\omega^{2}))[/mm]
> Allgemein lautet die Formel für den Phasengangs für die
> Übertragungsfunktion:
> [mm]roh(\omega)=arctan(IM(H(j(\omega))/RE(H(j(\omega)))[/mm] wobei
> IM für den imaginären Teil der komplexen
> Übertragungsfunktion steht RE für den reellen Anteil.
>  Für die erste Ord. sieht das Ganze bei mir ja auch
> korrekt aus aber ich möchte einen Vergleich mit den
> Phasengängen und verscheidenen Filtern verschiedener Ord.
> machen, was hier schon bei der 2. Ord. beim Plotten schief
> läuft. Ich weiss momentan leider nicht wo mein Fehler
> liegt, er muss ja aber in der Funktion (hier H(w))
> stecken.
>  Gruß Thilo
>  
> Habe hier noch schnell nen schlechtes jpeg. angehängt. Das
> schwarze gekrickel sollte der richtige Verlauf sein.
>  [Dateianhang nicht öffentlich]

gibts in gnuplot evtl ne arctan2 version?

gruß tee

Bezug
                                
Bezug
Gnuplot Phaseng. Filter: Danke!
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:50 Di 24.08.2010
Autor: Ausgedacht

Danke Tee!
Du hast mir sehr weiter geholfen!
Gruss
Thilo

Bezug
        
Bezug
Gnuplot Phaseng. Filter: Antwort
Status: (Antwort) fertig Status 
Datum: 19:03 Di 24.08.2010
Autor: Event_Horizon

Hallo!

Also, es liegt nicht an Gnuplot, sondern an deiner Funktion.

Du hast da

$ [mm] roh(\omega)=-arctan\left(\frac{\wurzel{2}\cdot{}\omega}{1-\omega^{2}}\right) [/mm] = [mm] -arctan\left(\frac{\wurzel{2}\cdot{}\omega}{(1-\omega)(1+\omega)}\right)$ [/mm]

Dieser Bruch hat eine Polstelle bei [mm] \omega=1 [/mm] von [mm] +\infty [/mm] nach [mm] -\infty [/mm]
Und das sorgt dafür, daß dein arctan dort zwischen [mm] \pm180^\circ [/mm] springt.

Aber auch hier kann ich dir Tipps zu Gnuplot geben:

1:
2: gnuplot> print sqrt(-4)
3: {0.0, 2.0}
4: gnuplot> i={0,1}
5: gnuplot> print i
6: {0.0, 1.0}
7: gnuplot> f(x)=cos(x)+i*sin(x)
8: gnuplot> print f(0)
9: 1.0
10: gnuplot> print f(pi/2.0)
11: {6.12303176911189e-17, 1.0}
12: gnuplot> plot f(x)
13:                   ^
14:          all points y value undefined!
15:
16: gnuplot> plot real(f(x)),imag(f(x))
17:


Das heißt, du kannst eine komplexe Übertragungsfunktion definieren, und das mit dem Real- und Komplexteil kann gnuplot dann für dich. Versuch das mal!

Bezug
                
Bezug
Gnuplot Phaseng. Filter: Danke!
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:52 Di 24.08.2010
Autor: Ausgedacht

Danke für die zweite Hilfe, Sebastian!
Du hast mir sehr weiter geholfen!
Manchmal hilft einfach auch mal nen bisschen mitdenken ;-).



Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Anwendungsprogramme"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]