Phase eines digitalen Tiefpass berechnen

Gast #4289619
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte die Phase eines Signales bei einer bestimmten Frequenz im 
Bereich -30 bis -60 verschieben und dies mit einem Tiefpass erster 
Ordnung lösen.

Im zeitkontinuierlichen Bereich ist das mit der Gleichung:

-tan(phi) = Die zu verschiebene Frequenz / Filterfrequenz

Beispiel: ich möchte 2500Hz um -60 verschieben, dann hat der Filter die 
Grenzfrequenz
-tan(-60) = sqrt(3) = 2500Hz / Filterfrequenz
-> Filterfrequenz = 2500Hz / sqrt(3) = 1443Hz
Ein Filter erster Ordnung, abgestimmt auf 1443Hz hat also bei 2500Hz 
eine Phasenverschiebung von -60°.

Nun habe ich das ganze mit einem digitalen Tiefpass versucht. Bei der 
Grenzfrequenz hält der Filter auch prima seine -45° ein. Darüber oder da 
drunter passt es jedoch vorne und hinten nicht, wenn die 
Abstimmfrequenz, der Abtastfrequenz nähert.

Den digitalen Filter berechnet ich mit:

phi = omega*Ts;
K = tan(phi/2);
alpha = 1+K;
a0 = 1;
a1 = -(1-K)/alpha;
b0 = K/alpha;
b1 = K/alpha;

Was ich nun suche ist eine Gleichung, mit der ich die Phase eines 
digitalen Filter berechnen kann. Entweder anhand fertiger 
Filterkoeffizienten oder besser noch ähnlich wie oben für 
zeitkontinuierliche Signale.

Viele Grüße
Squizzel
Gast #4291136
Lesenswert?
• ▲
▼
Die Filterkoeffizienten eines digitalen Tiepass bestimmen seine 
z-Übertragungsfunktion.
https://de.wikipedia.org/wiki/%C3%9Cbertragungsfunktion
Aus der kannst Du den Frequenzgang nach Betrag und Phase berechnen, 
indem Du z=e^(j*w) einsetzt, Dich also auf dem Einheitskreis von 
bewegst. Die Funktion 'freqz' in Matlab kann das auch.

Cheers
Detlef

clear

%phi = omega*Ts;
phi=1
K = tan(phi/2);
alpha = 1+K;
a0 = 1;
a1 = -(1-K)/alpha;
b0 = K/alpha;
b1 = K/alpha;

H=freqz([b0 b1],[a0 a1],1024);
plot((180/pi)*angle(H))

return

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.