Hoi C0'ers
Ik ben bezig met het bouwen met een spectrum analyzer. Deels gebaseerd op deze die onder artikelen staat. Hiermee bedoel ik tot en met de filters. Nu heb ik een filter gemaakt en deze analoge waarde lees ik binnen met een PIC. De analoge waarde wordt naar een digitale waarde omgezet in dede PIC (tot daar nog altijd geen probleem) Nu wil ik met de PIC 12 leds aansturen maar ik ksnap niet zo goed hoe ik aan een schaal verdeling kom in dB uitgedrukt. Ik heb enkel als referentie dat als de ingang van de AD convertor maximaal is ik aan de uitgang een waarde 0xFF (hex) heb.
Hoe kan ik dat nu verdelen over 12 leds zodat ik het gekende patroon krijg van een spectrum analyzer?
Kan iemand mij hiermee helpen?
Alvast bedankt
Fuzzbass
Mijn echte naam: Joris | Mijn elektronica website: Fuzzcraft.com
De deciBel is een logarithmische schaal. Elke verdubbeling van het signaalniveau is een toename van 6 dB. Elk bit van de A/D converter is een verdubbeling van de resolutie. Dus voor elk bit van de A/D staat voor 6 dB. Met een 10 bit A/D heb je dus een bereik van 60 dB.
Stel dat je 12 stappen van 3 dB wil weergeven, dan ga je eerst uit van de volle schaal en dan reken je elke keer 3 dB terug. Stel je hebt een 10 bit A/D. Dan is
0 dB = 1024
-3 dB = 725
-6 dB = 512
-9 dB = 363
etc.
X = 1024 * 10^(dB/20)
Als je in deze vergelijking elke keer -3, -6, -9 invult, dan kun je alles uitrekenen.