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.

Zpoždění je cena, a platí se ve smyčce

Tahle kapitola nepřidává žádný nový filtr. Přidává číslo, které se u filtrů obvykle neuvádí a které rozhoduje o tom, jestli je nasazení filtru zlepšení nebo katastrofa.

Skupinové zpoždění

Zpoždění filtru není jedno číslo, ledaže má lineární fázi. Obecně se ptáme, o kolik se opozdí obálka úzkopásmového signálu kolem frekvence f, a to je záporná derivace fáze:

tg(f) = −1 · dfskupinové zpoždění

U FIR se symetrickými koeficienty je to konstanta (N−1)/2 vzorku. U IIR to konstanta není — u meze bývá výrazně větší než v propustném pásmu, což je právě tam, kde je užitečný signál.

Co dělá zpoždění regulační smyčce

Zpoždění τd ubere na frekvenci f fázi

Δφ = −360°·f·τdlineárně s frekvencí, bez konce

a fázová bezpečnost je to, co smyčku drží stabilní. Filtr, který na frekvenci řezu ubere 30°, smaže třetinu obvyklé bezpečnosti — a udělá to tiše, protože v datech vypadá všechno klidněji než předtím. Přesně tenhle mechanismus popisuje ControlLab v kapitolách o Bodeho charakteristice a o vzorkování.

0.0100200zpoždění [ms]klouzavý průměr120 msexponenciální120 msButterworth 2125 msButterworth 4219 ms
Všechny čtyři filtry v grafu dělají totéž — zmenšují šum 5,0×. Liší se jen v tom, co za to chtějí.
Zvyšuj požadavek a sleduj, jak zpoždění roste rychleji než potlačení. Potlačit šum 10× místo 5× nestojí dvojnásobek, ale čtyřnásobek zpoždění: šum klesá jako odmocnina z délky okna, kdežto zpoždění je půlka té délky. Tenhle obrázek je celý sedmý díl v jednom.
Všechny čtyři filtry potlačí šum stejně. Liší se jen tím, co za to chtějí. Zvyšuj požadované potlačení a sleduj, že cena roste rychleji než užitek.

Pravidlo, které z toho plyne

Potlačení šumu roste s odmocninou z délky okna, kdežto zpoždění lineárně. Zlepšit potlačení dvakrát tedy stojí čtyřikrát víc zpoždění. Proto se v regulační smyčce filtruje co nejméně, a proto se problém řeší přednostně jinde:

  • U senzoru. Analogový filtr před převodníkem nestojí ve smyčce nic navíc — a je jediný, který umí zabránit složení (kapitola 2).
  • Rychlejším vzorkováním. Průměr přes stejný čas zprůměruje víc vzorků, takže se šum zlepší, aniž by se zpoždění změnilo.
  • Modelem místo filtru. Kalmanův filtr dosáhne stejného potlačení s menším zpožděním, protože nečeká na data — předpovídá. To je celý zbytek téhle labky.

Nejčastější příběh z praxe. Zašuměný signál z enkodéru někoho ruší, tak přidá dolní propust. Šum zmizí, smyčka se rozkmitá při zesílení, které dřív prošlo, a ladí se dokola. Filtr přitom nic nepokazil — jen přesunul problém tam, kde ho nikdo nehledá. Když se ve smyčce objeví filtr, musí se s ním znovu spočítat fázová bezpečnost.

A jedna výjimka. V ServoLabu je filtr uvnitř smyčky vítaný — notch na mechanické rezonanci zvedne dosažitelné zesílení. Rozdíl je v tom, proti čemu stojí: notch odstraňuje úzké pásmo, kde je jen rezonance, a fázi jinde skoro nezmění. Dolní propust bere fázi všude. ServoLab k tomu má i ten výsledek, který se nečeká: dolní propust první řádu nikdy nezvedne dosažitelné zesílení.

Vzorce v této kapitole

t_g — skupinové zpoždění
t_g = −(1/2π)·dφ/df [s] definice
Δφ — fáze ubraná zpožděním
Δφ = −360°·f·t_d [°] dopravní zpoždění
— — cena potlačení
potlačení ∝ √N, zpoždění ∝ N [—] průměrování