FIR Filter
-
Hallo!
Hab ein Problem bei einem FIR Tiefpass:
Anbei eine Skizze wie der Verstärkung(blau).
Der Tiefpass lässt bei niedrigen Frequenzen und bei hohen Frequenzen nahe der Samplerate durch, das ist ja ok.
Aber warum auch bei Samplefrequ./2 ???Das kann doch nicht sein, oder???
-
habs schon, scheint so eine art aliasing gewesen zu sein.
genau dort wo eigentlich die verstärkung 0 hätte sein sollen war sie ein maximum.
-
nach Abtasttheorem geht der nutzbare Freq.Bereich bis 1/2 * Samplefreq(=fs) - epsilon, der Freq.Gang im Bereich (1/2 * fs ... fs - epsilon) ist das Spiegelbild dessen zwischen (0 ... 1/2*fs - epsilon).
-
problem ist doch noch aktuell, hab mich gestern zu früh gefreut:-(.
dass mit dem fs/2 nach abtasttheorem hab ich mir eh gedacht, das erklärt aber nicht diese verstärkung im bereich fs/2.
wenn man sich die übertragungsfunktion anschaut, so schaut die so aus:
f=klein: lässt alles durch
f=grenzfrequ.: lässt immer weniger durch, verstärkung sinkt
f zwischen grenzf. und samplingf.: möglichst wenig verstärkung
f=fs verstärkung ist wieder voll da.Im Grunde ist also mein frequenzverlauf genau ums 2fache zusammengestaucht!
und ich hab immer noch keine ahnung warum!die genaue berechnung kann ich wenn heute abend noch posten!
-
hier ein bild wie es sein sollte!
(achtung, log. skala!):
http://img36.imageshack.us/img36/5092/unbenanntaup.jpg
-
eine Abtasteung mit Samplefreq fs kann eine Sinuskurve mit Freq fs nicht von der Nullfunktion unterscheiden, weil in den Abtastzeitpunkten die Nullstellen der Sinuskurve liegen.
Die Nullfunktion wiederum wird von einem idealen Tiefpaß durchgelassen, da sie einem Grenzübergang f -> 0 (Wellenlänge "unendlich") entspricht.
-
u_ser-l schrieb:
eine Abtasteung mit Samplefreq fs kann eine Sinuskurve mit Freq fs nicht von der Nullfunktion unterscheiden, weil in den Abtastzeitpunkten die Nullstellen der Sinuskurve liegen.
Die Nullfunktion wiederum wird von einem idealen Tiefpaß durchgelassen, da sie einem Grenzübergang f -> 0 (Wellenlänge "unendlich") entspricht.
Du meinst wohl fs/2 statt fs im satz "eine Abtasteung mit Samplefreq fs kann eine Sinuskurve mit Freq fs nicht von der Nullfunktion unterscheiden"???
Danke erstmal für den Tipp, aber was tut man nun um einen größeren Bereich filtern zu können? oder ist das digital nicht möglich?
stell dir vor du willst 10khz als grenzfr.
nun ist durch die symmetrie eine filterung gar nimmer möglich mit tiefpass, weil dass dann wie folgt aussieht:
http://img35.imageshack.us/img35/1273/unbenannttpd.jpgvon links und rechts wandert der durchlassbereich soweit zusammen, dass von tiefpassverhalten keine rede mehr sein kann.
wie kann ich nun bitte sinnvoll audios filtern, sodass ich meinen tiefpass mit grenzfrequ. irgendwo zwischen sagen wir mal 100hz und 15khz anwenden kann, bei fs=44,1khz???
ist ein fir tiefpass hier ungeeignet??? wenn ja, alternativen?
-
fir_nix_kapieren schrieb:
Du meinst wohl fs/2 statt fs im satz "eine Abtasteung mit Samplefreq fs kann eine Sinuskurve mit Freq fs nicht von der Nullfunktion unterscheiden"???
nein, ich meine schon das, was ich geschrieben habe. Das gilt für alle Vielfachen von fs/2 gleichermaßen, fraglich war aber nur der Fall f = fs.
fir_nix_kapieren schrieb:
Danke erstmal für den Tipp, aber was tut man nun um einen größeren Bereich filtern zu können? oder ist das digital nicht möglich?
natürlich geht das.
Beispiel FIR Tiefpaß 1. Ord. bspw. 0.5+0.5*z^-1 => Grenzfreq (-3 dB-Punkt des Betrags der Ü-Funktion) bei 1/4 fs.
fs = 44.1 kHz => -3 dB bei 11.025 kHz
-
Hab den von dir vorgeschlagenen Filter mit meiner Rechnung getestet - da kommt folgendes raus:
http://img197.imageshack.us/img197/2354/unbenanntonr.jpg
Sowas ist ja kein Tiefpass, das hat eher den Namen Bandsperre verdient.
Alles was ich möchte wäre ein normaler Tiefpass - wie man ihn aus der analogen Schaltungstechnik eben auch kennt.
Der Verlauf soll etwa so aussehen:
http://img198.imageshack.us/img198/171/unbenanntjzg.jpgWie kann ich einen digitalen Filter machen der zumindest annähernd so ein Verhalten aufweist? Der mir als KEINE hohen Frequenzen auch durchlässt nahe fs/2?
-
mit FIR liegt die Sache ja so:
je genauer du die Ü Funktion eines analogen RC Tiefpasses mit FIR nachbilden willst, umso mehr Koeffizienten muß der FIR Filter haben - die Koeffizientenfolge fällt dabei exponentiell ab (das ist nötig, weil die Impulsantwort eines RC-Tiefpasses exponentiell abfällt). Je genauer die Impulsantwort sein soll, umso mehr Koeff müssen ins Spiel kommen.
Willst du einen idealen RC Tiefpaß "naturgetreu" nachbilden, mußt du IIR nehmen - der Rückkopplungspfad sorgt dafür, daß das Signal im idealen Fall durch unendlich viele Koeffizienten gewichtet wird (wiederum in exponentiell abfallender Größe), was nötig ist, um die Impulsantwort naturgetreu nachzubilden.
-
formal sieht das so aus:
um die Ü Funktion eines RC-Tiefpaß mit digitalem Filter nachzubilden, muß die Impulsantwort nachgebildet werden.
Impulsantwort eines RC-Tiefpasses ist eine exponentiell abfallende Kurve.
(*) Beispiel FIR:
i[t] = Eingabesignal zur Zeit t
o = outputo = i[t] + 0.5 i[t-1] + 0.25 i[t-2] + 0.125 i [t-3]
=> Impulsantwort unvolkommen, fällt zwar exponentiell ab, aber nur für 4 Taktschritt (und nicht unendlich lang, wie ein idealer RC-Tiefpaß)
(**) Beispiel IIR:
o = i[t] + 0.5 i[t-1] + 0.25 i[t-2] + 0.125 i [t-3] + 0.0625 i [t-4] + ...
(das ist eine UNENDLICHE Reihe dank Rückkopplungspfad !)
=> Impulsantwort ist eine unendlich lange, exponentiell abfallende Kurve
=> Impulsantwort entspricht der von RC
=> naturgetreue Nachbildung des RC Tiefpaß.jetzt ist aber klar, oder ?
-
fir_nix_kapieren schrieb:
Alles was ich möchte wäre ein normaler Tiefpass - wie man ihn aus der analogen Schaltungstechnik eben auch kennt.
Der Verlauf soll etwa so aussehen:
http://img198.imageshack.us/img198/171/unbenanntjzg.jpgprobier mal damit: http://www.dsptutor.freeuk.com/FIRFilterDesign/FIRFilterDesign.html