← Back to CoursesStemExpert
StemExpert
Expert · Handboek · 21. Filters en signaalverwerking
StemExpert · Brecht Corbeel · schoolium.me
StemExpert
E21. Filters en signaalverwerking
EExpert · deel E4 · Elektrotechniek en elektronica

Handboek · hoofdstuk 21Filters en signaalverwerking

Ruis beperken terwijl betekenis en reactietijd behouden blijven

Een glad sensorsignaal kan fout zijn door vertraging of aliasing. Je bouwt RC-filters op, leest hun amplitude en fase en kiest digitale verwerking die bij de fysica en de alarmen van Habitat past.

9× uitleg6× uitgewerkt voorbeeld1× proef1× naslag1× verhaal1× het geheel1× code12 opdrachten in het werkboek± 11 lestijden
Een filterontwerp wordt met zowel amplitude als reactietijd gecontroleerd.
Een filterontwerp wordt met zowel amplitude als reactietijd gecontroleerd.
Na dit hoofdstuk
Uitleg · 21.1

Een sensor meet ook zijn omgeving

1/20

Een NTC-signaal bevat nuttige temperatuurverandering, thermische vertraging, ruis en soms periodieke storing. Schrijf . Een filter kan alleen scheiden als de componenten een verschillend patroon of frequentiegebied hebben. Een trage echte verandering verwijderen maakt het signaal schoner en tegelijk minder juist.

e06 gaf de NTC-ruis als 1,2 ADC-stap, ongeveer 0,10 K per meting. Een ijkfout blijft na middelen bestaan. De CO₂-waarschuwing gebruikt een minuutgemiddelde; de 5000 ppm-grens blijft op losse geldige metingen. Filterontwerp begint daarom bij doel en maximale detectietijd.

signaalmodel, geen garantie van scheidbaarheid
Uitleg · 21.2

RC-laagdoorlaat uit Kirchhoff

2/20

Bij een onbelaste RC-laagdoorlaat loopt door R dezelfde stroom als in C. . Daardoor . De tijdconstante is τ = RC. Na een spanningssprong is ; snelle veranderingen worden beperkt doordat C niet onmiddellijk van lading kan veranderen.

Voor een sinus mag je met complexe impedantie rekenen: . De spanningsdeler wordt . Een laagdoorlaat geeft gelijkspanning vrijwel door, zolang ingang en belasting aan de modelaannames voldoen.

transferfunctie
inRCuitmeet over C
De uitgang staat over de condensator; een aangesloten belasting kan de transferfunctie veranderen.
Uitgewerkt voorbeeld · 21.3

De bestaande batterijdeler heeft 64 Hz

3/20
Een signaalpad volledig doorrekenen.
Gegeven
  • A3: 100 kΩ boven, 33 kΩ onder, 100 nF over de onderste weerstand; de spanningsbron is voor wisselsignalen ideaal.
Gevraagd
  • De genoemde filter- en signaalkenmerken.
Oplossing
  1. 1
    De DC-verhouding is 33/(100+33) = 0,24812. Voor een kleine AC-storing ziet C de Théveninweerstand 100 kΩ parallel 33 kΩ = 24,812 kΩ.
  2. 2
    τ = RthC = 2,481 ms; fc = 1/(2πτ) = 64,144 Hz.
  3. 3
    Een bronimpedantie of ADC-belasting kan dit verschuiven; controleer ook settling wanneer de ADC van kanaal wisselt.
Antwoord
Dit verklaart de afgeronde 64 Hz in e07.
Klopt dit? Niet 100 kΩ en niet 133 kΩ gebruiken. De AC-bron wordt voor het Théveninmodel kortgesloten.
Uitleg · 21.4

Kantelfrequentie is geen harde grens

4/20

De amplitude is en de fase . Bij is de amplitude en de fase −45°. Een component wordt daar dus niet afgesneden maar circa 29 % kleiner.

Bij zeer hoge frequentie wordt . Iedere vertienvoudiging kost een factor tien in spanning. De staprespons en sinusrespons beschrijven hetzelfde systeem in twee domeinen; meer afvlakking betekent een tragere reactie.

RC-kantelfrequentie
10-1100101102103104−50−40−30−20−100f (Hz)versterking (dB)laagdoorlaathoogdoorlaat
De kromme knikt geleidelijk: de hoek in een asymptotische schets is geen scherpe fysieke grens.
Uitleg · 21.5

Hoogdoorlaat: gelijkspanning blokkeren

5/20

Neem de uitgang over R in een seriekring van C en R. . De amplitude is ; fase . Gelijkspanning wordt nul; hoge frequenties gaan door.

Een stap veroorzaakt aanvankelijk een puls die uitdooft. Een hoogdoorlaat kan een ECG-baseline beperken, maar kan ook een langzame echte verandering verwijderen. Hij lost geen hoogfrequente storing op.

hoogdoorlaat
10-1100101102103104−100−75−50−250255075100f (Hz)fase (°)laagdoorlaathoogdoorlaat
Laag- en hoogdoorlaat hebben bij fc even grote amplitudes, maar tegengestelde fasebijdragen.
Uitgewerkt voorbeeld · 21.6

Decibel rekent verhoudingen, geen losse volt

6/20
Een signaalpad volledig doorrekenen.
Gegeven
  • Vergelijk een uitgangsspanning met ingang bij gelijke impedanties; voorbeeldverhouding 0,10.
Gevraagd
  • De genoemde filter- en signaalkenmerken.
Oplossing
  1. 1
    Voor vermogen: L = 10 log10(Puit/Pin). Bij gelijke impedanties geldt P∝U², dus L = 20 log10(Uuit/Uin).
  2. 2
    0,10 in amplitude geeft −20 dB; 0,50 geeft −6,02 dB; 1/√2 geeft −3,01 dB en halveert vermogen.
  3. 3
    Twee onafhankelijke cascades vermenigvuldigen amplitudes, dus dB-waarden tellen op. Twee maal −20 dB geeft 0,01 amplitude = −40 dB.
Antwoord
De eenheid dB zegt alleen een verhouding; een absolute referentie moet apart genoemd worden.
Klopt dit? 20 log gebruiken voor spanning zonder gelijke-impedantievoorwaarde is niet automatisch een vermogensvergelijking.
Uitleg · 21.7

Bode: amplitude én fase lezen

7/20

Een Bodeplot heeft een logaritmische frequentieas. Een eerste-ordelaagdoorlaat benadert 0 dB ver onder fc en een helling van −20 dB per decade erboven. De fase loopt van 0° naar −90°. Een hoogdoorlaat loopt van +20 dB/decade naar 0 dB en van +90° naar 0°.

Bij cascades tel je dB en fase. Twee identieke RC-trappen geven op hun eigen fc samen −6,02 dB en −90°, niet −3 dB. Een tweede-ordefilter kan een andere vorm hebben, afhankelijk van demping; twee simpele RC's zijn niet automatisch een Butterworthfilter.

Een filter in een regelkring voegt fasevertraging toe. De gesloten lus kan daardoor minder stabiel worden. e39's sensor heeft al 60 s thermische vertraging; daarboven nog tientallen seconden middelen vergt een nieuwe luscontrole.

10-1100101102103104−50−40−30−20−100f (Hz)versterking (dB)laagdoorlaathoogdoorlaat
Een Bodeplot maakt onderdrukking zichtbaar, maar de bijbehorende fase bepaalt mede de regelmarge.
Uitgewerkt voorbeeld · 21.8

PWM-storing op A3

8/20
Een signaalpad volledig doorrekenen.
Gegeven
  • PWM van de Mega: f = 16 MHz/(64·510) = 490,196 Hz; A3-filter fc = 64,144 Hz.
Gevraagd
  • De genoemde filter- en signaalkenmerken.
Oplossing
  1. 1
    Amplitudeoverdracht bij de fundamentele PWM-frequentie: 0,1297, dus −17,74 dB.
  2. 2
    Een vóór dit filter aanwezige sinuscomponent 100 mV wordt ongeveer 12,97 mV. Een echte blokvorm bevat ook harmonischen.
  3. 3
    De ±10 mV uit e07 is al de residuele A3-rimpel na het bestaande filter. Daar de RC-onderdrukking nogmaals op toepassen zou dubbel rekenen.
Antwoord
Het filter beperkt de storing, maar is geen garantie tegen elke aliascomponent.
Klopt dit? Reken met het hele storingsbudget, samplefrequentie, harmonischen en ADC-settling; een los fc-getal volstaat niet.
Uitleg · 21.9

Fourier: een signaal als som van frequenties

9/20

Een periodiek signaal kan worden beschreven als DC plus sinussen en cosinussen op f0, 2f0, 3f0, … . Een symmetrische blokgolf bevat oneven harmonischen met amplitudes die als 1/n dalen. Een andere duty-cycle verandert ook de harmonische verdeling.

Een lineair tijdinvariant filter verandert elke sinus apart in amplitude en fase. Hun som levert de uitgang. Dat verklaart waarom een RC een blokgolf afrondt: hoge harmonischen worden veel sterker verzwakt dan de grondtoon.

Een DFT/FFT van een eindige reeks heeft frequentieafstand fs/N. Een niet-geheel aantal perioden in het meetvenster verspreidt energie over meerdere bins: spectrale lekkage. Een venster helpt bij inspectie, maar maakt geen verdwenen frequentie-informatie terug.

Fourierbeschrijving
Uitleg · 21.10

Nyquist: bemonstering maakt frequenties ononderscheidbaar

10/20

Een sinus gemeten op heeft samples . Een frequentie f + mfs geeft exact dezelfde samples, want de extra fase is 2πmk. Daarom kan je uit de monsters alleen een frequentie binnen de gekozen Nyquistband terugvinden.

Voor een bandbegrensd basissignaal tot fmax is fs > 2fmax nodig; op de grens kan een bepaalde fase zelfs overal nul geven. Praktische filters hebben een overgangsband, dus kies marge. Een digitaal filter achter de ADC kan al samengevallen frequenties niet opnieuw uit elkaar halen.

gevouwen frequentie tussen 0 en fs/2
sensoranaloog RCADCdigitaal filter+ decimatiefrequentiebeperking vóór het bemonsteren
De analoge beperking moet vóór de ADC plaatsvinden; achteraf middelen kan reeds ontstane aliasing niet herstellen.
Uitgewerkt voorbeeld · 21.11

490,196 Hz wordt een trage golf

11/20
Een signaalpad volledig doorrekenen.
02468101214161820−1,0−0,50,00,51,0t (s)signaal (relatief)lage schijnfrequentiePWM-sinus eenmaal/s bemonsterd
De punten van de snelle sinus liggen exact op een langzame alias-sinus.
Gegeven
  • Bemonstering fs = 1 Hz; sinuscomponent op de exacte Mega-PWM-frequentie.
Gevraagd
  • De genoemde filter- en signaalkenmerken.
Oplossing
  1. 1
    Kies m = 490. falias = |490,196078−490·1| = 0,196078 Hz.
  2. 2
    De schijnperiode is 1/falias = 5,10 s. Een schijnbare langzame verandering kan daardoor in een regellus terechtkomen.
  3. 3
    De echte code vergelijkt beide monsterreeksen; zij zijn op numerieke afronding na gelijk. Een PWM-blok bevat meer harmonischen en kan een ingewikkelder patroon geven.
Antwoord
Eén sample per seconde maakt de PWM-frequentie onherkenbaar.
Klopt dit? Dit gaat over fasevast samplen, geen werkelijk traag variërende lampstroom.
Uitleg · 21.12

Analoog filter, oversampling en decimatie

12/20

Een traag logtempo hoeft geen traag ADC-tempo te betekenen. Neem eerst voldoende snelle monsters, beperk digitale bandbreedte en geef pas daarna bijvoorbeeld één gemiddelde per seconde door. Dat laatste verlagen van het tempo heet decimatie.

Anti-aliasontwerp specificeert toegelaten rimpel in de passband en maximaal residu in de stopband. Een RC met 64 Hz is een bruikbare bestaande A3-voortrap, maar niet automatisch voldoende voor sampletempo 1 Hz. Sample sneller of gebruik aanvullende geschikte analoge beperking. PWM-harmonischen en breedbandruis blijven onderdeel van de controle.

Analog Devices beschrijft waarom ingangfilters nodig zijn. Voor INA226-stroommeting geldt bovendien de interne conversie-/middeltijd uit i30, geen nieuw A3-schema. Verschillende sensoren krijgen verschillende signaalpaden.

sensoranaloog RCADCdigitaal filter+ decimatiefrequentiebeperking vóór het bemonsteren
De logfrequentie is geen bewijs voor de gebruikte acquisitiefrequentie.
Uitgewerkt voorbeeld · 21.13

Voortschrijdend gemiddelde: ruis versus groepsvertraging

13/20
Een signaalpad volledig doorrekenen.
Gegeven
  • N = 10 monsters, Δt = 1 s, onafhankelijke witte ruis σ = 0,10 K.
Gevraagd
  • De genoemde filter- en signaalkenmerken.
Oplossing
  1. 1
    y[k] = (x[k]+…+x[k−9])/10. Onafhankelijke varianties tellen op: var(y) = Nσ²/N² = σ²/N.
  2. 2
    σy = 0,10/√10 = 0,03162 K. Correlatie of een ijkfout verlaagt niet volgens deze regel.
  3. 3
    Het midden van het venster ligt (N−1)Δt/2 = 4,5 s terug. Een stap heeft tien nieuwe monsters nodig om volledig in het venster te liggen.
Antwoord
Een vlak gemiddelde verlaagt witte ruis, maar vertraagt een echte verandering.
Klopt dit? Een gecentreerd offline-gemiddelde gebruikt toekomstige data en is geen uitvoerbare online-regelaar.
Uitleg · 21.14

Exponentieel filter afleiden

14/20

Een eerste-ordeproces met constant x gedurende een sampleinterval heeft exact . Definieer α = 1−exp(−Δt/τ). Zo blijft de tijdconstante betekenis houden wanneer Δt verandert.

Voor witte ruis geldt in rust . Oplossen geeft . Dit voorspelt de statistische spreiding, geen garantie op iedere afzonderlijke meting.

exponentiële smoothing
Code · 21.15

Filters vergelijken op een bekende modelstap

15/20

De voorbeeldreeks start om 12:00 UTC+1. De echte temperatuur springt na 40 s van 20 naar 21 °C; de sensorruis is synthetisch met vaste seed. Het voortschrijdende gemiddelde begint pas na een volledig venster. De code toont echte uitvoer en de ononderscheidbaarheid van aliasmonsters.

Pythonfilters.py23 regelsDownload
# filters.py — modelreeks; t=0 bij 12:00 UTC+1, geen echte sensormetingimport numpy as npdt, tau, N = 1.0, 5.0, 10t = np.arange(0,121)*dtwaar = np.where(t<40,20.0,21.0)x = waar + np.random.default_rng(21).normal(0,0.10,len(t))alpha = 1-np.exp(-dt/tau)y = np.empty_like(x)y[0] = x[0]for k in range(1,len(x)):    y[k] = y[k-1]+alpha*(x[k]-y[k-1])# causaal, pas na volledig venster een geldig gemiddeldema = np.convolve(x,np.ones(N)/N,mode="valid")print(f"alpha {alpha:.6f}; theoretische witte-ruisfactor {np.sqrt(alpha/(2-alpha)):.4f}")print(f"ruis standaardafwijking N={N}: {0.10/np.sqrt(N):.4f} K")print(f"vertraging gemiddelde: {(N-1)*dt/2:.1f} s")for s in (40,45,50,60):    print(f"t={s:3d} s: ruw {x[s]:.4f}, exponentieel {y[s]:.4f} °C")fs, f = 1.0, 16e6/64/510sample = np.sin(2*np.pi*f*np.arange(21)/fs)laag = np.sin(2*np.pi*(f-round(f/fs)*fs)*np.arange(21)/fs)print(f"PWM {f:.6f} Hz wordt {abs(f-round(f/fs)*fs):.6f} Hz")print(f"zelfde monsters: maximale afwijking {max(abs(sample-laag)):.2e}")
alpha 0.181269; theoretische witte-ruisfactor 0.3157
ruis standaardafwijking N=10: 0.0316 K
vertraging gemiddelde: 4.5 s
t= 40 s: ruw 21.0189, exponentieel 20.1790 °C
t= 45 s: ruw 20.9712, exponentieel 20.6924 °C
t= 50 s: ruw 20.9732, exponentieel 20.8679 °C
t= 60 s: ruw 20.9278, exponentieel 20.9458 °C
PWM 490.196078 Hz wordt 0.196078 Hz
zelfde monsters: maximale afwijking 6.78e-12
02040608010012019,820,020,220,420,620,821,021,221,4t sinds 12:00 UTC+1 (s)T (°C)ruwe modelreeksexponentieel τ=5 sgemiddelde N=10
Vergelijk ook de vertraging na de stap, niet alleen hoe glad de lijn eruitziet.
Uitgewerkt voorbeeld · 21.16

Een NTC-filter met vijf seconden tijdconstante

16/20
Een signaalpad volledig doorrekenen.
Gegeven
  • Δt = 1 s, τ = 5 s; onafhankelijke σin = 0,10 K; sensor zelf heeft nog een thermische tijdconstante van 60 s.
Gevraagd
  • De genoemde filter- en signaalkenmerken.
Oplossing
  1. 1
    α = 1−exp(−1/5) = 0,181269. De theoretische ruisfactor is 0,3157, dus σuit ≈ 0,0316 K.
  2. 2
    Zonder extra sensorvertraging bereikt een gefilterde stap 95 % na −5 ln(0,05) = 14,98 s.
  3. 3
    De 60 s-sensor en het 5 s-filter staan in cascade. Een totale detectietijd kan je niet uit het filter alleen halen; simuleer beide.
Antwoord
Vijf seconden beperkt ruis met bescheiden extra traagheid tegenover de sensor.
Klopt dit? Bij ontbrekende data niet dezelfde sample tweemaal meetellen. Herstart/initieer op een geldige waarde en leg de tijdstempel vast.
Proef · 21.17

Een RC meten zonder de opstelling te belasten

17/20
Onderzoeksvraag
Een demonstratie vergelijkt amplitude en fase met het model.
Materiaal
  • functiegenerator op veilige laagspanning
  • R = 10 kΩ, C = 1 µF
  • oscilloscoop met hoge ingangsimpedantie
VeiligheidUitsluitend laagspanning; verbind oscilloscoopmassa correct, geen netomvormer meten met een geaarde probe.
inRCuitmeet over C
De meetprobe moet een veel hogere impedantie hebben dan de kring om het onbelaste model te volgen.
Werkwijze
  1. 1Bouw de laagdoorlaat en controleer R/C.
  2. 2Meet ingang en uitgang bij 1, 16, 160 en 1600 Hz met gelijke ingangs-amplitude.
  3. 3Bepaal Uuit/Uin en fase uit tijdverschil: φ = 360°·Δt/T, met teken.
  4. 4Vergelijk met fc≈15,9 Hz; onderzoek daarna een eindige uitgangsbelasting.
Waarneming
Bij ongeveer 16 Hz is Uuit≈0,707 Uin en loopt de uitgang circa 45° achter.
Verklaring
De condensatorimpedantie wordt vergelijkbaar met R; de uitgang is complex, niet enkel kleiner.
Verhaal · 21.18

Een goed opgenomen signaal kan toch de verkeerde frequentie tonen

18/20

Een nauwkeurige ADC bewaart alleen de waarde op zijn meettijdstippen. Daardoor kan een spectaculair rustige meetreeks nog een snelle storing als langzaam gedrag weergeven. Dat is een informatieprobleem, niet alleen een probleem van sensorresolutie.

De technische uitleg van Analog Devices over bandbegrensde bemonstering verbindt de samplekeuze met het frequentiegebied dat je wil bewaren. Voor Habitat is de praktische les eenvoudig: controleer bij de logger ook het analoge ingangspad, de feitelijke ADC-tijdstippen en het PWM-schema. Een mooi grafiekprogramma herstelt een verkeerd opgenomen signaal niet.

02468101214161820−1,0−0,50,00,51,0t (s)signaal (relatief)lage schijnfrequentiePWM-sinus eenmaal/s bemonsterd
De punten zijn correct gemeten; de frequentie-interpretatie kan zonder ingangkennis toch verkeerd zijn.
Naslag · 21.19

Filterregels met geldigheidsvoorwaarden

19/20
RC-kantelpunt
symboolbetekeniseenheid
effectieve bronweerstandΩ
capaciteitF
decibel
symboolbetekeniseenheid
relatief niveaudB
onafhankelijke ruis middelen
symboolbetekeniseenheid
aantal onafhankelijke monsters1
exponentieel filter
symboolbetekeniseenheid
sampleintervals
tijdconstantes
KeuzeWinstPrijs
analoog RCstoring vóór ADCfase, settling, beperkte filterorde
gemiddelde Neenvoudig, σ/√N bij witte ruis(N−1)Δt/2 vertraging
exponentieelweinig geheugen, instelbare τstapvertraging, init nodig
decimatieminder logdataeerst digitale bandbreedte beperken
Het geheel · 21.20

Het geheel: filters in het brein

20/20

e07 beschreef sinus en fasor, i25 de ADC/PWM. e06 scheidde ruis van ijkonzekerheid. Hier kies je een uitvoerbaar signaalpad. e40 zal sensoren samenvoegen: filtering lost een foutieve sensor niet op en maakt twee afgeleide signalen niet onafhankelijk.

PWM en samplevalkuil.

Meetruis en toestandsschatting.

Filterfase en alarmvertraging.

Habitat

A3 behoudt 100 kΩ/33 kΩ plus 100 nF, effectieve fc = 64,144 Hz. Voor de NTC is Δt = 1 s, τfilter = 5 s, α = 0,181269 een getoetst ontwerpvoorstel, geen wijziging van de sensorvertraging van 60 s. Log ruwe geldige en gefilterde waarde naast elkaar. De 5000 ppm-CO₂-grens en sensorvaliditeit blijven afzonderlijk beoordeeld.

Samenvatting

In het kort

Begrippen

Wat je nu kent

kantelfrequentie
Frequentie waarbij een enkel RC-filter 1/√2 van de passbandamplitude geeft.
aliasing
Ononderscheidbaarheid van verschillende bronfrequenties na bemonstering.
decimatie
Verlagen van een digitale samplefrequentie na passende bandbreedtebeperking.
Bode-diagram
Amplitude in dB en fase tegen logaritmische frequentie.
groepsvertraging
Tijdsvertraging van de omhullende van componenten in een bepaald frequentiegebied.
Aan de slag in het werkboek12 opdrachten, van oefenen tot uitdagen