Amor Gignit Amorem Forum
Niet ingelogd [inloggen ]
Ga naar beneden

Printbare versie  
Auteur: onderwerp: Digitale techniek: bemonstering en reconstructie
dekkersj
Junior Member
**




Posts: 48
Registreerde: 28-10-2012
lid Is Offline


[*] Gepost op 27-3-2013 op 02:25 PM
Digitale techniek: bemonstering en reconstructie


Beste,

Deze post wil graag gebruiken om de basisprincipes van de digitale techniek toe te lichten. Ik hoop door eenvoudige voorbeelden te geven de lezer een goede introductie te verschaffen in deze tak van sport.

De bemonstering
Laten we beginnen bij de bemonstering. Dit is in feite niets meer of minder dan het opschrijven van de functiewaarde van een signaal op een bepaald tijdstip. Dit tijdstip wordt bepaald door de oscillatorklok. Als ingangssignaal kiezen we voor een signaal dat gesampled moet worden een cosinus met een frequentie van 1. Als klokfrequentie waarmee het gesampled moet worden kiezen we 3. Dit betekent dat het ingangssignaal 3 keer bemonsterd wordt. Dit ziet er als volgt uit:


Afbeelding 1.

Dus om de 120 graden wordt er "gekeken" naar de functiewaarde van het ingangssignaal (=rood) en dat wordt opgeschreven. In dit geval is dus de reeks getallen die na bemonstering ergens opgeschreven is:
1, -0.5 en -0.5. (correspondeert met de groene balletjes)

Merk op dat ik er van uitga dat het signaal er altijd is geweest en ook altijd zal zijn. De reeks zet zich dan voort, dwz na de eerste 1, -0.5, -0.5 komt gewoon weer dezelfde reeks 1, -0.5 en -0.5. Enzovoort. Ook voor deze reeks komt weer diezelfde reeks.

Het bemonsteringstheorema



We zien een sommatie van een oneindige reeks. Elk element van die reeks bestaat uit een product van twee termen. De eerste term, f[n], is een weegfactor en dit komt overeen met de waarde die bij de groene bolletjes hoort (zie afbeelding 1). De tweede term is de Sinc-functie en de waarde daarvan hangt af van de tijd. Is de tijd een veelvoud van de bemonsteringsperiodetijd, wordt deze term precies 1 (met een beetje wiskunde is dat eenvoudig te zien door t nadert naar nT). Ofwel, op de bemonsteringstijdstippen geeft elk element van de sommatie zijn weegfactor f[n]. Het groene bolletje dus. Hiermee is aangetoond dat op de bemonsteringstijdstippen het ingangssignaal exact is gereconstrueerd, ongeacht de lengte van de reeks met bemonsteringsgetallen. Aangenomen dat de klok stabiel genoeg is.

In de tekst boven de sommatie staat er zoveel als: "het te reconstrueren signaal mag in frequentie niet hoger zijn dan de helft van de bemonsteringsfrequentie". Maar dan in een wat deftiger taal. Het is dus van belang dat het ingangssignaal eerst goed gefilterd wordt voordat er bemonsterd wordt.

Een artikel met achtergrond info is hier te vinden: Sampling Theorem

De reconstructie of interpolatie
Dit is natuurlijk het belangrijkste. We gaan weer uit van de situatie als in afbeelding 1. Maar dan met de vraag of de functiewaarde van het ingangssignaal ook gevonden (gereconstrueerd) kan worden bij een willekeurige tijd. Tussen de oorspronkelijke groene bolletjes dus, want op de oorspronkelijke groene bolletjes lukt het zeker.

De situatie is dan als in afbeelding 2:


Afbeelding 2. Gevraagd wordt de functiewaarde bij de vraagtekens, op 40 graden. (antwoord: cos(40) = 0.766044...)

De oplossing blijkt verrassend simpel en volgt direct uit het bemonsteringstheorema. Het enige wat we hoeven te doen is het signaal te resamplen. Of up te samplen zoals sommigen het noemen. Soms wordt er ook oversamplen tegen gezegd. Ik houd het op resamplen.

40 graden is 1/9 deel van 360. We hadden al een samplefrequentie van 3 en dit gaat dan naar 3*3 = 9. In de digitale techniek worden dan nullen toegevoegd tussen de reeds bekende bemonsteringswaarden in. De reeks wordt dan 1, 0, 0, -0.5, 0, 0, -0.5, 0, 0. En dit herhaalt zich dan. De nieuw toegevoegde nullen zullen in bovengenoemde sommatie geen betekenis hebben omdat ze als weegfactor f[n] fungeren. Dat komt ook heel goed uit, we willen geen informatie toevoegen of weghalen wat er eerst nog niet was. In afbeelding 2 beschouwen we voor het gemak alleen de eerste toegevoegde nul.

Na interpolatie, dwz na het laten uitwerken van de bemonsteringssommatie, krijg je voor de afzonderlijke bijdragen van n (waarbij de reeks van n uit afbeelding 1 is gebruikt):
* n = -2 (weegfactor = -0.5): -0.059071
* n = -1 (weegfactor = -0.5): 0.103374
* n = 0 (weegfactor = 1): 0.826993
* n = 1 (weegfactor = -0.5): -0.206748
* n = 2 (weegfactor = -0.5): 0.0826993

Als we dit allemaal bij elkaar optellen, komen we op 0.7472473. Dat is al aardig dicht in de buurt van de waarde die het moet zijn, nl. 0.766044. Door meer termen in de sommatie mee te nemen, wordt het steeds nauwkeuriger en nauwkeuriger. Hoeveel termen we moeten meenemen, is uit te rekenen en in de praktijk zijn hier standaard bouwblokken voorhanden.

In de praktijk zijn nog wel wat meer stappen noodzakelijk, maar de kern is dit. Ieder willekeurig tijdstip kan dus worden gereconstrueerd als we genoeg voorgeschiedenis en nageschiedenis meenemen. Het feitelijke reconstructieproces verloopt iets anders, maar dit is het digitale equivalent. Belangrijk om te onthouden is dat er geen informatie verloren is gegaan: we hebben de functiewaarde op het willekeurige tijdstip gereconstrueerd aan de hand van de waarden die we al wisten.

Groet,
Jacco
Bekijkt gebruikers profiel Bekijk deze gebruiker zijn posts

  Ga naar boven

Powered by XMB
XMB Forum Software © 2001-2012 De XMB Group
[Tekens: 17] [PHP: 51.9% - SQL: 48.1%]