Savitzky-Golayfilter
Een Savitzky-Golayfilter is een wiskundig filter uit de signaalverwerking voor toepassing op equidistante getalsmatige data. De methode is gebaseerd op bestaande wiskundige technieken en werd voor het eerst in 1964 beschreven door Abraham Savitzky en Marcel J. E. Golay.[1] Het filter maakt het oorspronkelijke signaal "gladder", dat wil zeggen vlakt snelle wisselingen af, waardoor ruis wordt gefilterd. Tevens kan het filter gebruikt worden om van het gefilterde signaal afgeleiden te bepalen. De afvlakking gebeurt door in het midden van een venster de gefilterde waarde te bepalen als gewogen som van de oorspronkelijke data in het venster. De wegingsfactoren worden bepaald met een polynoom die in een omgeving van het punt goed bij de data past.
Principe
bewerkenEen signaal is op equidistante afstanden gegeven door de rij:
Rondom het -de punt in de rij wordt een venster
beschouwd, dat dus zicht biedt op de data
Op het venster wordt een polynoom van graad gedefinieerd door
- ,
die zo goed mogelijk bij de data in het venster past in de zin van kleinste kwadraten, dus zo dat
- minimaal is.
De kleinste-kwadratenoplossing voldoet aan de normaalvergelijkingen:
Deze vergelijkingen hebben de vorm:
- ,
met als oplossing
- ,
waarin de -matrix vanwege de equidistante afstanden een eenvoudige vorm heeft, die voor alle punten dezelfde is. De kolommen zijn:
en
is de kolomvector met de waarden van de data in het venster.
De matrix is een matrix met constante antidiagonalen (diagonalen dwars op de hoofddiagonaal), dus bij snijden van de hooddiagonaal met elementen gelijk aan het element op de hoofddiagonaal:
- ,
en bij kruisen van de hoofddiagonaal de waarden 0.
De matrix is alleen afhankelijk van de halve vensterbreedte en de graad van de polynoom, en kan dus berekend worden onafhankelijk van de data.
Voor bijvoorbeeld en is:
- .
Voor en is:
en voor en is:
Het gefilterde signaal bestaat uit de rij:
- ,
met
Het gefilterde signaal is dus een vorm van convolutie van de eerste rij (met rij-index 0) van de matrix en het oorspronkelijke signaal, en wordt gegeven door de gewogen som van de waarden van de data in het venster.
Afgeleiden
bewerkenDe matrix kan ook gebruikt worden om afgeleiden van het gefilterde signaal te berekenen. In het -de punt wordt het gefilterde signaal voorgesteld door de polynoom
Deze heeft de afgeleiden:
- ,
- ,
met in het -de punt de waarde
en
Analoog geldt voor andere afgeleiden:
De rij van met rij-index levert dus de wegingsfactoren voor het berekenen van de afgeleide van orde .
Voorbeeld
bewerkenVoor en is de matrix :
Gewichtsfactor | Waarde gewichtsfactor | ||||||
---|---|---|---|---|---|---|---|
w0 | −0,095238095 | 0,142857143 | 0,285714286 | 0,333333333 | 0,285714286 | 0,142857143 | −0,095238095 |
w1 | 0,087301587 | −0,265873016 | −0,23015873 | 0 | 0,23015873 | 0,265873016 | −0,087301587 |
w2 | 0,05952381 | 0 | −0,035714286 | −0,047619048 | −0,035714286 | 0 | 0,05952381 |
w3 | −0,027777778 | 0,027777778 | 0,027777778 | 0 | −0,027777778 | −0,027777778 | 0,027777778 |
Eigenschappen en beperkingen
bewerkenHet Savitzky-Golayfilter heeft ook zijn beperkingen. Als ruisfilter zijn de eigenschappen vaak eerder cosmetisch dan van praktisch belang omdat het filter het frequentiespectrum van de ruis nadelig beïnvloedt. Het onderdrukt een deel van de hoogfrequentie ruis, maar laat de langzamere componenten die vaak meer de analyse van de gegevens in de war sturen ongemoeid. Het is immers de laagfrequente ruis die het moeilijk maakt een piek van de signaalachtergrond te onderscheiden. Na filtering door middel van Savitzky-Golay is de ruis niet langer 'wit' en de meetfout niet langer normaal verdeeld.
Het aantal punten en het aantal termen in het filter met zorg gekozen moeten worden. De eigenschappen van een S-G filter hangen in belangrijke mate af van het gekozen venster en de gekozen orde van de polynoom. Als het model niet past is de uitkomst van de regressie niet te vertrouwen en komen er soms volkomen verkeerde getallen uit de berekening. Dit geldt eveneens in sterke mate voor de aanwezigheid van uitbijters in het signaal: een enkel volkomen fout punt (bijvoorbeeld ten gevolge van een schakelpuls in de stroom). Hoe groter het venster des te meer middeling en des te meer de ruis onderdrukt wordt. Hoe meer termen in de polynoom, hoe meer het oorspronkelijke signaal (inclusief ruis) benaderd wordt. Het benodigde venster voor het berekenen van de gekozen polynoom mag eveneens niet kleiner zijn dan het meetsignaal.
- ↑ A. Savitkzy and M.J.E. Golay (1964). Smoothing and differentiation of data by simplified least squares procedures. Analytical Chemistry, 36(8): 1627-1964