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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.