FilterLab šum a odhad stavu

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Klouzavý průměr a exponenciální filtr

Dva nejjednodušší filtry, jaké existují, a v praxi dvě nejčastěji použité věci vůbec. Stojí za to je znát pořádně, protože většina úloh na nic složitějšího nedojde.

Klouzavý průměr

y[k] = 1N Σi=0N−1 x[k−i]N posledních vzorků, stejná váha

Šum nezávislých vzorků klesne √N×, zpoždění je (N−1)/2 vzorku a je na každé frekvenci stejné — filtr má lineární fázi, takže tvar signálu nezkresluje, jen ho posune. To je vlastnost, kterou žádný IIR filtr nemá a která se v měřicí technice cení.

Jeho frekvenční charakteristika je Dirichletovo jádro:

|H(f)| = |sin(πfN/fs) / (N·sin(πf/fs))|první nula při f = f_s/N

Má hluboké zářezy na násobcích fs/N — a toho se dá schválně využít: průměr přes přesně jednu periodu síťového brumu ho vyřízne úplně. Zato postranní laloky jsou jen −13 dB pod propustným pásmem a víc vzorků je nezlepší.

Exponenciální filtr

y[k] = y[k−1] + α·(x[k] − y[k−1])jedno násobení, jedna paměťová buňka

Nejlevnější filtr, jaký jde napsat: jedna proměnná, žádné pole. Váhy klesají geometricky, takže si „pamatuje" nekonečně dlouho, ale čím dál slaběji.

0.200.501.02.05.0102050-30-20-100.0−3 dBfrekvence [Hz]dBklouzavý průměrexponenciální filtr
Průměr N = 16: šum × 0,250, zpoždění 75,0 ms, mez −3 dB 2,77 Hz.
Exponenciální τ = 80 ms (α = 0,1175): šum × 0,250, zpoždění 75,1 ms, mez −3 dB 1,99 Hz.
Nastav je na stejnou mez −3 dB a porovnej zbytek. Průměr má hlubší první zářez, ale za ním se vrací nahoru — jeho postranní laloky jsou jen −13 dB. Exponenciální filtr klesá pomalu, zato monotónně a stojí jedno násobení a jednu paměťovou buňku.
Nastav obě na stejnou mez −3 dB a porovnej zbytek charakteristiky. Průměr má hlubší první zářez a horší postranní laloky; exponenciální klesá pomaleji, zato monotónně.

Past: α z časové konstanty se počítá dvěma způsoby

A nedávají totéž:

α = 1 − e−Δt/τ   (přesně)   |   α = Δtτ+Δt   (v každém katalogovém listu)shodují se jen pro Δt ≪ τ

První je přesná v tom smyslu, že se odezva shoduje se spojitým článkem prvního řádu ve vzorkovacích okamžicích. Druhá je z bilineární náhrady a je to ta, kterou najdeš všude. Při Δt = τ/10 se liší o víc než 3 % a při Δt = τ/2 už výrazně. Není to chyba — jsou to dva různé filtry se stejným jménem. Vědět, který se používá, je důležité v okamžiku, kdy někdo mění vzorkovací frekvenci a diví se, že se chování změnilo.

Který z těch dvou zvolit? Klouzavý průměr, když jde o měření a záleží na tom, aby se tvar nezkreslil, nebo když chceš zářez na známé frekvenci. Exponenciální všude, kde je málo paměti a nezáleží na fázi. V regulační smyčce ani jeden bez rozmyslu — kapitola 7 říká proč.

Vzorce v této kapitole

|H| — charakteristika klouzavého průměru
|H(f)| = |sin(πfN/f_s)/(N·sin(πf/f_s))| [—] Dirichletovo jádro
α — koeficient z časové konstanty
α = 1 − exp(−Δt/τ) [—] přesná shoda se spojitým článkem
g_n — šumové zesílení exponenciálního filtru
g = √(α/(2−α)) [—] bílý šum jednopólem