Bilineare Transformation TP < Elektrotechnik < Ingenieurwiss. < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 13:37 So 02.10.2011 | Autor: | Pille456 |
Hio!
Ich versuche gerade einen Butterworth-Filter 3. Ordnung in Software zu implementieren. Da die deutsche Wikipedia nicht soo ergiebig war, habe ich mir den Artikel auf der englischen Wikipedia mal angsehen (http://en.wikipedia.org/wiki/Butterworth_filter#Transfer_function) und dort heißt es für die Übertragungsfunktion:
[mm] H(s)=\frac{G_0}{\prod_{k=1}^n (s-s_k)/\omega_c} [/mm]
mit [mm] s_k [/mm] = [mm] \omega_c e^{\frac{j(2k+n-1)\pi}{2n}}\qquad\mathrm{k = 1,2,3, \ldots, n}, [/mm] wobei [mm] w_c [/mm] die Grenzfrequenz ist und [mm] G_0 [/mm] "is the DC gain (gain at zero frequency)" (Wenn man also keine Verstärkgung/Dämpfung im Durchlassbereich möchte, wählt man [mm] G_0=1)
[/mm]
Da ich mich in dieser Software-Implementierung nur für die Amplitude meines Signales interessiere und nicht für den Winkel, reicht es doch, nur den Realteil der E-Funktion zu betrachten, oder?
Mit dieser Annahme vereinfachen sich die Teilausdrücke [mm] s_k [/mm] wie folgt:
[mm] s_1=w_c*cos(2/3*\pi)
[/mm]
[mm] s_2=w_c*cos(\pi)
[/mm]
[mm] s_3=w_c*cose(4/3*\pi)
[/mm]
Da ich in der Software-Implementierung mit diskreten Werten arbeite und die Übertragungsfunktion momentan aber für kontinuierliche Werte definiert ist, wende ich die Bilineare Transformation(http://de.wikipedia.org/wiki/Bilineare_Transformation_%28Signalverarbeitung%29) an:
[mm] s=\bruch{2}{T}*\bruch{z-1}{z+1} [/mm] und [mm] w_c=\bruch{2}{T}*tan(\pi*w_d*T) [/mm] wobei T hier die Abtastrate ist und [mm] w_d [/mm] die Grenzfrequenz im diskreten Bereich, oder?
Also wenn ich z.B. [mm] w_c=2Hz [/mm] habe, dann ersetze ich in [mm] w_c [/mm] in der obrigen Gleichung mit [mm] \bruch{2}{T}*tan(\pi*2Hz*T) [/mm] oder?
Die Abtastrate T ist dabei willkürlich zu wählen und ich vermute mal, je höher ich diese Wähle, je besser approximiere ich das diskrete Signale auf das kontinuirliche Signale oder?
Bevor ich das nun gleich implementiere und teste, wollte ich wissen, ob das alles so stimmig ist oder ob ich irgendwo etwas übersehen habe. Habe bisher nie eine Bilineare Transformation angewendet und auch nur TP's 1. und 2. Ordnung mit passiven Bauelementen durchgerechnet, aber nie programmiert :)
Gruß
Pille
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 15:56 So 02.10.2011 | Autor: | Infinit |
Hallo pille,
Deine erste Umformung mit den Polynomfaktoren im Nenner kann ich noch nachvollziehen. Wenn Du aber die Betragsübertragungsfunktion brauchst, kannst Du im weiteren nicht einfach nur den Realteil betrachten. Die komplexe e-Funktion zeigt ja, dass diese Pole auf einem Einheitskreis liegen und insofern spielt auch der Sinus bei der Betragsbildung eine Rolle.
Wenn es Dir nur um die Betragsübertragungsfunktion geht (Du sagst ja, es geht Dir nur um die Amplitude), dann brauchst Du die Aufteilung der Pole ja nicht. Für ein Butterworthfilter n-ter Ordnung langt Dir dann doch
[mm] |H(j \omega)|^2 = \bruch{G_0^2}{1+(\bruch{\omega}{\omega_c})^{2n}} [/mm]
Viele Grüße,
Infinit
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 16:12 So 02.10.2011 | Autor: | Pille456 |
Hi!
Danke für Deine Antwort - klar Amplitude ist ja der Betrag der Funktion und nicht nur der Realteil. Ich verwechsel das immer >_<
Was mich aber gerade stutzig macht ist folgendes:
In der Wikipedia heißt es weiter unten im Artikel, dass das "Normalisierte Butterworth-Polynome" ohne imaginärteil geschrieben werden kann. Damit wird dann die Übertragungsfunktion als
[mm] H(s)=\bruch{G_0}{B_n(a)} [/mm] mit [mm] a=s/w_c [/mm] angegeben. In diesem Fall gilt ja [mm] s=\sigma+j*w. [/mm] Damit ist H(s) weiterhin eine komplexe Funktion und kodiert sowohl Betrag, als auch Phase
Wenn ich nun aber die bilineare Transformation anwende, dann setze ich ja ein: [mm] s=2/T*\bruch{z-1}{z+1}. [/mm]
Und hierbei geht mir nun doch irgendwie der Winkel verloren oder nicht?
Muss ich die Übertragungsfunktion im Frequenzbereich erst in Amplitude und Phase zerlegen und dann die Transformation für den diskreten Bereich durchführen oder kann ich das auch umgekehrt machen?
Die Frage die ich mir gerade einfach stelle ist folgende:
Wenn ich die Amplitude von H(s) nehme, dann gilt [mm] s=\sigma+j*w=j*w. [/mm] Also ist [mm] \sigma [/mm] offensichtlich 0. Kann ich dann weiterhin problemlos die Ersetzung mit [mm] s=2/T*\bruch{z-1}{z+1} [/mm] durchführen oder ist das dann ein bestimmter Spezialfall?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:32 So 02.10.2011 | Autor: | Infinit |
Hallo,
diese Schreibweise ist möglich, alerdings nicht in Form von rein linearen Faktoren, sondern von einer Kombination von linearen und quadratischen (bei ungerader Ordnung) bzw. rein quadratischen Termen (bei gerader Ordnung). Überlegung hierzu ist, dass die Pole, wenn sie nicht reell sind, konjugiert komplex zueinander sind und so kommt man zu der Schreibweise mit den sogenannten Butterworth-Polynomen. Die hierbei auftretenden Faktoren sind für ein Filter dritten Grades alle 1, wie Du aus der Tabelle entnehmen kannst. Die Bilineartransformation sorgt für eine eindeutige Abbildung der Punkte der s-Ebene in die z-Ebene. Für eine Abbildung der rein-imaginären Achse landet man in der z-Ebene auf dem berühmtem Einheitskreis. Denke bitte daran, dass dies eine Parametersubstitution ist für eine ursprüngliche Größe s, die komplex ist, auf eine Größe z, diese ist aber auch komplex, wie Du dem von Dir zitierten Artikel entnehmen kannst. Auch hier lässt sich also Betrag und Phase bilden, diesmal eben in der z-Ebene und nicht in der s-Ebene.
Viele Grüße,
Infinit
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:53 Do 06.10.2011 | Autor: | qsxqsx |
Hallo,
Noch kurz zur Abtastrate. Falls(!) du weisst, dass deine Signale ab einer bestimmten Frequenz [mm] f_{b} [/mm] nur noch den Wert Null annehmen, so kannst du bei einer Abtastfrequenz [mm] f_{a} \ge 2*f_{b} [/mm] das Signal wieder exakt Rekonstruieren!
Grüsse
|
|
|
|