Grenzfrequenz Filter

Gast #2603197
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).
Gast #2603218
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
#2603262
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.
Angehängte Dateien:
#2603274
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.
Gast #2603304
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
Gast #2603309
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
#2603313
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!
Gast #2603317
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...
Gast #2603338
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
#2603360
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
#2603437
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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren