Forum: Analoge Elektronik und Schaltungstechnik Grenzfrequenz Filter


von Ingo L. (Gast)


Lesenswert?

Hallo,

liegt die Grenzfrequenz dieses Filters bei 10Hz oder 9,94Hz
y = (y*63+x)/64;
wenn diese Funktion mit 4kHz aufgerufen wird?

fg = 1/(2+pi+63*250us) = 10Hz
oder
fg = 1/(2+pi+64*250us) = 9,94Hz

oder ist der Ansatz ganz falsch?


Viele Grüße,
Ingo

von Ingo L. (Gast)


Lesenswert?

Keiner ne Idee?

von Chris (Gast)


Lesenswert?

wahrscheinlich fragt sich jeder wo der sinn hinter deiner frage ist, ob 
10Hz oder 9,94Hz grenz frequenz interessiert doch nichtmal meinen 
hamster, vorallem bei einem solch erbärmlichen Filter(falls das 
überhaupt ein funktionierender Filter ist, habs mir nicht angeschaut).

von Markus (Gast)


Lesenswert?

komischer Filter, wenn ich mir den anschaue kannste daraus y = x machen

von Ingo L. (Gast)


Lesenswert?

Chris schrieb:
> wahrscheinlich fragt sich jeder wo der sinn hinter deiner frage ist
welche der Gleichungen für die Berechnung der Grenzfrequenz stimmt.
> habs mir nicht angeschaut
eben

Markus schrieb:
> komischer Filter, wenn ich mir den anschaue kannste daraus y = x machen
ja, dass ist der Sinn dieses Tiefpassfilters, dachte das wäre 
offensichtlich...

Ingo

von Stefanie B. (sbs)


Lesenswert?

Das ist ein IIR Filter erster Ordnung,
Polstelle bei Z= 63/64, also ziemlich nah bei 1.
Um die Grenzfrequenz zu finden würde ich das mal plotten lassen.

von Detlef _. (detlef_a)


Lesenswert?

Ingo meinte vllt. y(k+1) = (y(k)*63+x(k))/64; Aber selbst das ist 
falsch, denn so ist das Ding instabil, einfach zu sehen wenn man x(k)= 1 
für alle k setzt.
Siehe Beitrag "Grenzfrequenz digitaler Tiefpass"

Da muß Ingo wohl nochmal bißchen die Frage überarbeiten.

Cheers
Detlef

von Markus (Gast)


Lesenswert?

Ingo L. schrieb:
> ja, dass ist der Sinn dieses Tiefpassfilters, dachte das wäre
> offensichtlich...

Das Ding ist doch gar kein Filter. Was du reinsteckst kommst du auch 
wieder raus. Biste dir mit der Funktion sicher?

von Stefanie B. (sbs)


Lesenswert?




Jetzt gehts weiter in octave (oder matlab):

>  t1 = tf([1], [1 -63/64])
> bode(t1)

von Markus (Gast)


Lesenswert?

die Umrechnung stimmt nicht, du hast den Faktor 1/64 vergessen

von Stefanie B. (sbs)


Angehängte Dateien:

Lesenswert?

@Markus:
Das ist richtig, 1/64 fehlt noch.
Allerdings ist das nur ein Faktor, also eine (negative) Verstärkung.

> t1=tf([1], [1 -63/64]) #urspruengliche Fkt
> t2=tf([1/64], [1 -63/64]) #korrektur Verstärkung
> bode(t2)
> print("transferfunction.png") # ist angehängt.

von Stefanie B. (sbs)


Angehängte Dateien:

Lesenswert?

Um also auf die eigentliche Frage zurückzukommen:
Die Grenzfrequenz liegt nicht genau bei 1.
(Ich rechnete komplett einheitenlos, mit den 4kHz Abtastung musst du 
selber sehen, wie es passt)

von Udo S. (urschmitt)


Lesenswert?

Eure tollen Rechnungen in Ehren,
aber das ist doch einfach eine gleitende Mittelwertbildung über die 
letzten 64 und den aktuellen Wert:
y(k) = 63/64y(k-1) + 1/64x(k)

Der neue Mittelwert ergibt sich aus dem alten Mittelwert mit 63/64 
gewichtet, plus dem neuen Eingangswert mit 1/64 gewichtet.

Auch was daran instabil sein soll kann ich jetzt nicht so richtig 
erkennen.

von Markus (Gast)


Lesenswert?

Udo Schmitt schrieb:
> y(k) = 63/64y(k-1) + 1/64x(k)

Es weiss ja keiner wie die Funktion wirklich aussieht. Dies war ja nur 
eine Vermutung weil die vom TE angegebene Funktion keinen Sinn macht.

von Waldo (Gast)


Lesenswert?

Hallo,
ich berechne ein Tiefpassfilter nach folgender Näherungsformel:

y(k+1) = (1-h/Tf)*y(k) + (h/Tf)*x(k)

mit

h ... Abtastzeit
Tf... Filterzeitkonstante G(s) = 1 / (1 + Tf*s)

Es ergibt sich:

(h/Tf) = 1/64 = 250µs/(250µs*64) = 250µs/16ms

also

Tf = 16ms

fg = 1/(2*pi*16ms) = 9,947Hz

Die obige Formel würde exakt lauten:

y(k+1) = exp(-h/Tf)*y(k) + (1-exp(-h/Tf))*x(k)

Näherungsweise:

exp(-h/Tf) = 1 - (h/Tf) + (h/2!Tf)^2 - (h/3!Tf)^3 + -...

man könnte also rechnen:

1-exp(-h/Tf)) = 1/64
-h/Tf = ln(1-1/64)
Tf = -h/ln(1-1/64) = - 15,875ms
fg = 1/(2*pi*Tf) = 10,026Hz

Gruss

von Ingo L. (Gast)


Lesenswert?

So, danke erstmal für die Antworten.

Udo Schmitt schrieb:
> Eure tollen Rechnungen in Ehren,
> aber das ist doch einfach eine gleitende Mittelwertbildung über die
> letzten 64 und den aktuellen Wert:
> y(k) = 63/64y(k-1) + 1/64x(k)
>
> Der neue Mittelwert ergibt sich aus dem alten Mittelwert mit 63/64
> gewichtet, plus dem neuen Eingangswert mit 1/64 gewichtet.
>
> Auch was daran instabil sein soll kann ich jetzt nicht so richtig
> erkennen.

So war das auch geplant. Obwohl ein gleitender Mittelwert ist es nicht 
direkt. Bin aber für weitere Indormationen dazu dankbar, ob das so 
funktioniert...


Ingo

von Udo S. (urschmitt)


Lesenswert?

Ingo L. schrieb:
> So war das auch geplant. Obwohl ein gleitender Mittelwert ist es nicht
> direkt.
Vieleicht nicht mathematisch korrekt, weil nicht der älteste Wert 
rausfliegt, sondern 1/64 vom Mittel der letzten 64 Werte. Praktisch 
kommt das aufs selbe raus.

Ingo L. schrieb:
> Bin aber für weitere Indormationen dazu dankbar
Darfs auch Outdoor sein? Ist grad so schön draussen :-)

Ingo L. schrieb:
> ob das so funktioniert...
Wenn du eine gleitende Mittelwertbildung willst , ja!

von Ingo L. (Gast)


Lesenswert?

@ Waldo
Joa, das ist genau das was ich auch gemacht habe, nur halt mathematisch 
korrekt beschrieben. Also scheint das so zu passen. Sehr schön :)



Ingo

von Ingo L. (Gast)


Lesenswert?

Udo Schmitt schrieb:
>> Bin aber für weitere Indormationen dazu dankbar
> Darfs auch Outdoor sein? Ist grad so schön draussen :-)
;-)

Udo Schmitt schrieb:
> Wenn du eine gleitende Mittelwertbildung willst , ja!
Nee gleitender Mittelwertbildung mache ich immer wirklich gleitend über 
n Werte, kostet aber aufm AVR Rechenzeit. Das obige ist nicht so 
rechenlastig und Funktioniert auch wenns nur quick & dirty gefilter 
werden soll, z.B. ne LCD Ausgabe oder so...

von Markus (Gast)


Lesenswert?

Also ist diese Gleichung falsch:

Du wolltest also diese realisieren:

von Markus (Gast)


Lesenswert?

Wieso ist eine Mittelwertbildung aufwändig? Da reicht doch eine Addition 
und ein Shift

von Ingo L. (Gast)


Lesenswert?

Markus schrieb:
> Du wolltest also diese realisieren:
Ja, richtig.

Markus schrieb:
> Wieso ist eine Mittelwertbildung aufwändig? Da reicht doch eine Addition
> und ein Shift
Aufwändig habe ich nicht gesagt, nur rechenlastig. Wenn man einen 
gleitenden Mittelwert über 10 Werte macht, dauert das länger also die 
obige Methode. Wie es bei einem gleitenden Mittelwert über 2^n Werte 
aussieht weiß ich nicht, kann man sicher etwas mehr Geschwindigkeit 
rausholen halt wegen dem Shift.


Ingo

von Waldo (Gast)


Lesenswert?

Hallo,

y = (64*y-y+x)/64

2*shift + 2*add/sub

effektiv eben!

Waldo

von Detlef _. (detlef_a)


Lesenswert?

Die Grenzfrequenz von dem Filter beträgt 10.0259Hz bei 4kHz Abtastrate. 
Das Ding ist stabil, als ich oben Gegenteiliges behauptete hatte ich 
partiellen blackout.

Rechnung: Pol bei 63/64. Wenn man dann den Einheitskreis gegen den 
Uhrzeigersinn weitergeht hat man die Grenzfrequenz, wenn der Aufpunkt 
vom Pol sqrt(2)/64 entfernt ist. Also hat man ein Dreieck mit den drei 
Seitenlängen 63/64, 1 und sqrt(2)/64. Das hat mit dem Cosinussatz einen 
Winkel von 0.0157 rad, entnormiert auf Abteastfrequenz 10.0259Hz.

Probe: abs(1/(1-63/64))/abs(1/(exp(j*0.0157)-63/64)))=sqrt(2), passt

math rulez
Cheers
Detlef

von Ingo L. (Gast)


Lesenswert?

Danke :)

von proGit (Gast)


Lesenswert?

Detlef:
Kannst du mir bitte genauer erklären, wie du die Grenzfrequenz 
bestimmst?
Im Z-Bereich, welchen Punkt suchst du da?
Muss der nicht auf dem Einheitskreis liegen?

von Detlef _. (detlef_a)


Angehängte Dateien:

Lesenswert?

Siehe angehängte Skizze: Der Pol liegt im Einheitskreis auf der reelen 
Achse bei 63/64. Zur Berechnung des Frequenzgangs geht man mit den w 
jetzt von w=0 (entspricht 1 auf der rellen Achse) beginnend gegen den 
Uhrzeigersinn los. Für w=0 ergibt sich für den Betrag des Frequenzgangs 
1/(Entfernung zum Pol)=64. Der Betrag ist bei der Grenzfrequenz auf 
64/sqrt(2) abgesunken, da beträgt die Entfernung des Aufpunktes auf dem 
Einheitskreises zum Pol dann sqrt(2)/64. Also habe ich ein Dreieck mit 
drei bekannten Seiten und ich suche den Winkel, das ist schlicht.

So geht das.
Cheers
Detlef

von Ingo (Gast)


Lesenswert?

Ok, nur mal Interessehalber, wie errechne ich die Grenzfrequenz einer 
Gleitenden mittelwertbildung über n Werte wenn neue Werte bzw. die 
Funktion mit 4 kHz berechnet werden?

Ingo

von Waldo (Gast)


Lesenswert?

Hallo,
Ein gleitender Mittelwert ist ein FIR Filter nter Ordnung. Die 
Filterkoeffizienten liegen alle gleich bei 1/n.

Waldo

von Ingo (Gast)


Lesenswert?

Waldo schrieb:
> Ein gleitender Mittelwert ist ein FIR Filter nter Ordnung. Die
> Filterkoeffizienten liegen alle gleich bei 1/n.
Wie kann man damit den Grenzfrequenz errechnen. Kannst du Literatur 
empfehlen?


Ingo

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
Noch kein Account? Hier anmelden.