![]() |
[NK]Resolutie en bits
Kan iemand mij uitleggen hoe ik het volgende moet berekenen:
Een AD-omzetter heeft een resolutie van 0,06 V. Met deze AD-omzetter wil men spanningen van 0,00 tot 5,00 V kunnen omzetten in een binaire code. Bereken het minimale aantal bits dat men daarvoor nodig heeft. == Het zal waarschijnlijk heel simpel zijn. Ik weet wel hoe ik een resolutie moet berekenen met een gegeven aantal bits, maar hoe keer ik het om? Ik hoef geen rechtstreeks antwoord, als iemand mij maar op weg kan helpen. |
Ik ga de berekeningen beschrijven, niet geven in formules:
Gegeven: Je AD-convertor heeft een bereik van 5V en een resolutie van 0.06V. Oplossing: Hoe veel verschillende waarden kan hij meten? (Bv. als je resolutie 0.5 V is en je kan 2V meten, dan heb je 5 waardes: 0, 0.5, 1, 1.5 en 2V) Hoe veel bits heb je nodig om zoveel verschillende stappen op te slaan? (Bv. als je een byte (8bits) hebt, kan je 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 waardes opslaan zonder de 0 meegeteld, dus in totaal 256). Als je niet op een mooie uitkomst uitkomt, moet je natuurlijk ook 1 bit meer nemen: om 257 op te slaan, heb je 9 bits nodig). Normaal moet je er daar wel mee uitkomen, de uiteindelijke uitkomst die ik bekom is 7 bits. |
Citaat:
|
Okee, ik snap hem. Na berekenen kom ik op 84,33 stapjes, wat dus neerkomt op inderdaad 7 bits (want
Volgende vraag is nu: als ik de binaire code (zelfde aantal bits) voor een spanning van 3,76 V moet berekenen, kom ik op 96,256 (5/128 X 5 = 0,0390625 -> 3,76/0,0390625 = 96,256) Moet ik dat getal dan afronden 96? (Wordt binair dus 1100000, toch?) |
Je aanpak is alleen wel fout, want je gaat nu voorbij aan de originele resolutie van 0,06. Je maakt dus opeens van de 84 benodigde stapjes 128... Dat kan niet zomaar :)
Van die 128 mogelijke codes worden er dus maar 84 gebruikt. |
Uhm, okee, nu raak ik in de war. Waar ga ik precies de mist in met mijn aanpak? Er moeten dus 7 bits gebruikt worden, want met 6 bits kom je niet verder dan 64. Ik neem aan dat dat goed is.
Moet ik bij het berekenen van die binaire code dan uitgaan van die 84 stapjes? En zo ja, hoe bereken ik dan die binaire code, want die gaat toch uit van 7 bits? Of moet ik dan die 5 V delen door 84 in plaats van door 128? |
Je hebt net vastgesteld dat je voltmeter maar 84 stapjes onderscheid tussen 0V en 5V.
Je hebt ook net vastgesteld dat je 7 bits nodig hebt om die 84 stapjes allemaal te kunnen benoemen. Dat 7 bits kan worden gebruikt om tot 128 te gaan heeft echter helemaal geen invloed op de resolutie van je voltmeter. Die blijft dus gewoon met 84 stapjes werken. Je binaire code loopt dus van 0.00.00.00 tot en met 1010100. Aan jou nu te bepalen welke code hoort bij het stapje dat hoort bij die 3,76 V. |
En nogmaals, om het er in te hameren:
Het aantal bits dat je gebruikt heeft GEEN invloed op hoe en wat je meet. Het beinvloed alleen wat je weer kan geven als meetresultaat. Voorbeeld: Zou jou voltmeter, met zijn resolutie van 0,06 maar met 1 bit werken, dan komt ie met zijn output niet verder dan 0,06V. Hij kan wel verder meten, maar hij kan het niet weergeven. Dat, of de boel wordt zo geprogrammeerd dat ie alleen 0V of 5V weer kan geven, want dat zijn ook maar twee waardes. |
Zoals CailinCoilleach al zegt: het hangt af van het programmeerwerk hoe dat alles weergegeven wordt:
je zou een programma kunnen schrijven dat die 84 waardes zo evenwichtig mogelijk verdeelt over je beschikbare 128 waardes. Dat is dus dat 000000 = 0V en 1111111 = 5V. Maar het kan net zo goed geprogramemeer worden dat elk stapje van 0.06V overeenkomt met 1 eenheid in je bitschaal: 0000000 = 0V, 0000001 = 0.06V en 1010100 = 84*0.06V = 5.04V als 5V. Het nadeel van die eerste schaal is natuurlijk dat je mogelijk nog eens een afronding krijgt, ook al weer omdat je meetbereik van 5.00V geen exact veelvoud is van 0.06V (wat dus ook weer een punt is waarop gezegd kan worden dat het meetbereik ofwel verkeerd gegeven is, ofwel de resolutie: want ofwel is je meetbereik eigenlijk geen 5V, maar 5.04V ofwel is die 4.98V en geen 5V). Verder zal een meting van een voltage zoals 3.76V (= 62.333 stapjes) afhankelijk van de werking van je voltmeter en de aanpak daarin een andere waarde weergeven in bits: mogelijk 62, mogelijk 63. De opgave die je gekregen hebt is ofwel niet goed opgesteld dus, ofwel heb je ook ergens eigenschappen gekregen die je dan moet bekijken om te zien of hij naar beneden of naar boven gaat afronden. Bij een dual-ramp voltmeter (dubbel-integrerend), denk ik dat hij naar boven afrondt, maar ik kan me vergissen (het is al enkele maanden geleden dat ik die theorie daarvan bekeken heb). Als dat type voltmeter je niets zegt, dan zal je leerkracht waarschijnlijk wel tevreden zijn met het antwoord dat het soms 62 en soms 63 is; net zoals je bereik mogelijk 83 of 84 stapjes lang is (maar dat laatste is eerder een fout in de opgave omdat je meetbereik zeker op een digitaal toestel een veelvoud van je resolutie moet zijn). Bij een analoog toestel hoeft dat niet zo, je afleesresolutie is dan wel beperkt (plus zit er steeds een instrumentfout op), maar de naald kan op oneindig veel plaatsjes komen, terwijl een digitale meter slechts een beperkt aantal stapjes heeft). |
*zwijmelt weg* Ah! De oude, analoge multimeter van mijn vader. Dat was nog eens een mooi ding :) Groot ook, maar wel erg cool. Leuker dan zo'n klein, digitaal ding dat je tegenwoordig hebt. Net als z'n osciloscope: dat was ook al zo'n mooi, reusachtig ding uit de Jura :)
|
Okee, ik heb even stap voor stap gekeken. Er zijn 84 stapjes tussen 0 en 5 V. Dat betekent dat er per stapje dus "gewoon" die 0,06 V zit. Voor 3,76 V kom ik dus op 3,76/0,06 = 62,67 -> 63 stapjes.
De binaire code hiervoor wordt dan 0111111. Klopt dit? Nu is de vraag alleen hoe het zit met die afronding. Moet ik nou uitgaan van 63 of 62? Citaat:
De opgave is dus als volgt: Een AD-omzetter heeft een resolutie van 0,06 V. Met deze AD-omzetter wil men spanningen van 0,00 tot 5,00 V kunnen omzetten in een binaire code. a. Bereken het minimale aantal bits dat men daarvoor nodig heeft. b. Bereken de binaire code die hoort bij een spanning van 3,76 V. Dit is alle info die er staat. |
Wat mij betreft rondt je af naar boven. In de digitale wereld kennen we geen halve stapjes :) Alles boven de 62,0 wordt dus gewoon 63,0
|
Even off-topic: nieuwerwetse digitale multimeters (bv. Fluke 170-series) hebben soms ook een semi-analoge schaal waarbij je een soort van wijzertje krijgt. Ideaal dus om wisselingen in je meting te bekijken. Ik ben zelf iemand van de digitale periode, dat naaldje vind ik vaak te veel werk in aflezing, hoewel analoge meters natuurlijk nog genoeg voordelen bieden die digitale meters niet bieden. Met een scope speel ik wel graag, maar ik vind het al even leuk een digitale scope aangesloten op computer te gebruiken, daarmee kun je veel meer uit je metingen halen dan vanuit een analoge meting.
Afronding hangt af van hoe de meting uitgevoerd wordt, daar kan je gewoon niet buiten. Is dat niet gegeven, mag je natuurlijk zelf de keuze maken in principe: dus 62 of 63. Afronden lijkt me dan ook het beste: 0.01V zal weergegeven worden als 0, 0.030....01V net als 1. Dus gewoon afronden lijkt me de meest ideale manier, maar hoeft niet steeds bij alle toestellen zo te zijn. |
Bedankt voor alle info en hulp! Dit onderdeel moet gaan lukken!
|
Alle tijden zijn GMT +1. Het is nu 22:21. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.