Oorzaak ruis na ADC?

Hoi allemaal,

Ik ben wat aan het knoeien met mijn analoog digitaal conversie op een PIC16F877. Het signaal komt er heel mooi terug uit maar er zit behoorlijk wat ruis op. Ik heb de versterkingen gecontroleerd en daar is de ruis niet van afkomstig. Ik ben dus vrij zeker dat het door de analoog digitaal conversie gebeurd. De ruis lijkt apart te zijn, dus niet Op het signaal te zitten. Wat zou hiervan de oorzaak kunnen zijn?
Misschien mijn referentiespanning? Deze heb ik gewoon gelijk gezet met de voeding. Misschien zet ik de Vref- beter op 300mV ofzo zodat de ruis enzo niet wordt meegeADC'd?

Input is een gitaar die ik door een opamp versterker gestuurd heb (versterkingsfactor 1, inputimpedantie 1Mohm) en wordt dan out geput naar een R2R ladder ...

Alles staat trouwens nog op een breadboardje voorlopig maar ben niet zeker of de ruis wel daardoor veroorzaakt wordt ...

Ik heb trouwens ook enkel de hoogste 8 bits van de 10-bit conversie genomen maar denk opnieuw dat het hier niet aan kan liggen ...

Bedankt voor de hulp!

Mvg,

Pieter-Jan

Hoeveel volt is het signaal uit je gitaar? Is het het signaal direct van de pickups af? Want dit is niet heel sterk, en vrij hoog-impedant. daar moet extra versterking tussen.

Ik heb weleens gehoord dat als je ADC-convertors met te weinig resolutie gebruikt, dat je dan ook ruis hoort. Resolutie (8 bits) lijkt me hier ook behoorlijk aan de lage kant.

Hogepriester in het genootschap der mexicaanse hond. // // Aan 2% van de mensen is 50% van het bezit ; 1% van het bezit is aan 50% van de mensen.
Arco

Special Member

Normaal is dat de ruis die ontstaat bij het samplen van de (altijd) aanwezige zwakke achtergrondgeluiden. Is te voorkomen door input beneden een bepaald nivo gewoon te negeren. (Bijvoorbeeld samples < 8 of zo, hangt van signaal af...)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

D'r zit een versterker tussen - 1 x. Tja...
Als je maar een klein gebied van de ADC gebruikt, ga je maar een klein gebied van de R2R-ladder benutten. Niet ideaal, dus. Ik zou de versterking vóór de ADC zo hoog maken, dat de hoogste spanning net iets minder is dan de referentiespanning.
Na de R2R-ladder plaats je uiteraard een laagdoorlaatfiltertje en zo nodig een verzwakker.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

Op 28 maart 2010 19:46:54 schreef Arco:
Normaal is dat de ruis die ontstaat bij het samplen van de (altijd) aanwezige zwakke achtergrondgeluiden. Is te voorkomen door input beneden een bepaald nivo gewoon te negeren. (Bijvoorbeeld samples < 8 of zo, hangt van signaal af...)

Interessant, <8 hoe bedoel je dan? 8 tov 2^10 (full scale)? En hoe ga ik dan te werk om die te negeren? In het programma schrijven if (sample > 8) ofwat? bedankt!

@pros; dit kan ik ook proberen, had in het begin met grotere versterkingsfactoren (x10 etc.) gespeeld maar maakte weinig verschil, die 1x had ik gedaan om die inputimpedantie te verlagen ...

[Bericht gewijzigd door Pieter-Jan op zondag 28 maart 2010 19:50:18 (16%)

Arco

Special Member

Als je alleen de hoge 8 bits gebruikt, negeer je waardes < 4 al...
Als je het resultaat nog 1x shift naar rechts, zit je al op 8.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Henry S.

Moderator

Op 28 maart 2010 19:27:27 schreef Pieter-Jan:
Het signaal komt er heel mooi terug uit maar er zit behoorlijk wat ruis op.

En hoe doe je dan weer DAC?

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

Op 28 maart 2010 20:22:32 schreef Henry S.:
[...]
En hoe doe je dan weer DAC?

R2R ladder (zelfgebouwd wel ... maar klinkt behoorlijk vet op de ruis na :p)

Ik heb nu een voorversterking (voor de DAC) van 5 genomen en er een LP filtertje op gezet (200nF) en het begint al heel wat beter te klinken! Bedankt allemaal.

Henry S.

Moderator

Die moet precies worden, welke weerstanden met welke tolerantie heb je gebruikt, en hoeveel bits is je DAC?

de DAC moet zeker een laagdoorlaatfilter bevatten en de ADC en DAC moeten over een zo groot mogelijk bereik benut worden.

Veel ruis raak je al kwijt door de laagste bits weg te schiften, dat houdt wel in dat de resolutie van de DAC ook evenredig kleiner wordt.

http://www.circuitsonline.net/aanbod/5450/overige/ad-da-omzetters-elek… is net in de V&A gepost, hiermee heb je alles op een rijtje.

[Bericht gewijzigd door Henry S. op zondag 28 maart 2010 20:52:11 (17%)

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

8 bits ... ik heb 10K en 20k gebruikt, ben niet bewust van de tolerantie maar met m'n multimeter meten ze toch redelijk OK.

het signaal wordt op 10 bit geconvert' dus laat ik al 2 bits weg.

voor mijn ADC heb ik nu een gepaste versterkingsfactor gevonden die nét de opamp niet doet satureren en die bedraagt ongeveer 220/100. Ga misschien we is een preciezere meting moeten gaan doen op school ofzo want ik heb geen scoop of iets dergelijks ... :( (opamp is op zelfde spanning gevoed als Vref+ zodat ik geen digitale clip krijg, bweik!)

LP filter staat nu op 20nF maar ik denk dat 40 ofzo beter is maar da heb ik hier ni liggen ...

Bedankt voor de hulp hé

Arco

Special Member

In AN616 staat een schema met i/o filtering.
Zijn 3-pole filters voor 3.4kHz, voor andere cut-off frequency onderdelen opnieuw berekenen.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Interessant artikel, ga het morgen zeker eens op 't gemak bekijken want 'tis al laat voor z-transformaties etc. Bedankt!

Pieter-Jan, Stel je gaat van de waarde 01111111111 naar 1000000000, bereken de uitgangs spanningen van je R/2R ladder. En nu nog eens als de weerstand aan je hoogste bitje 1% kleinere weerstand heeft dan nominaal en alle andere weerstanden exact nominaal zijn....

(je moet de string met 111111 niet gaan tellen, ik heb gewoon even met m'n elleboog op een toets gezeten).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 28 maart 2010 19:39:39 schreef (Z)weetvoetje:
Ik heb weleens gehoord dat als je ADC-convertors met te weinig resolutie gebruikt, dat je dan ook ruis hoort. Resolutie (8 bits) lijkt me hier ook behoorlijk aan de lage kant.

Klopt, kwantisatieruis.
http://upload.wikimedia.org/math/3/9/9/3992b93768a9f4bc14bb284d950eb23…

Je kunt ook door sneller te samplen en de juiste processing de virtuele resolutie van de ADC hoger maken.

Anoniem

Wat voor voeding hangt er aan de uC? Ik heb ooit eens wat vergelijkbaars gehad. De boosdoener was een geschakelde voeding.

Ten eerste zit je met voedingsrejectie, ik heb geen idee wat de PowerSupply Rejection Ratio (PSRR) van de interne ADC is. Daarnaast is je PSRR op je Vref dus 0. Als jij 2 mV rimpel op je voeding hebt staat je Vref dus ook 2 mV te klapperen. Dit wil je dus écht niet voor audio. Daarnaast zit je nog met het theorema van ene heer Nyquist. Deze zegt dat je minimale Fsample 2 x hoger moet zijn dan je hoogst te sampelen frequentie. Een heel stevig filter is dus nooit weg asn de ingang van je ADC. Als je micro een aparte analoge VCC heeft moet je die ook niet zomaar aan je digitale voeding hangen, goed filteren is een must op je voeding.

mzzls

Correct me if I'm wrong!
Frederick E. Terman

Honourable Member

Op 28 maart 2010 20:55:41 schreef Pieter-Jan:
nét de opamp niet doet satureren en die bedraagt ongeveer 220/100. Ga misschien we is een preciezere meting moeten gaan doen op school ofzo want ik heb geen scoop of iets dergelijks ... :(

Dan moet je wel verschrikkelijk precies je gitaar aanslaan! Hoe speel je dan?

Je zei dat de ruis "los" was "van het signaal". Bedoel je daarmee dat de ruis er ook is als er geen signaal is? Want dan zou het eigenlijk geen kwantisatieruis kunnen zijn.

Keramisch, kalibratie, parasitair: woordenlijst.org

Zoals justme zegt: Houdt er rekening mee dat de voeding ook voor ruis kan zorgen. Ik heb laatst voor iemand een versterkertje gemaakt om zijn elektrische gitaar op zijn versterker/computer te kunnen hangen. En dan was een 7805 spanningsregelaartje toch te ruiserig.

Hogepriester in het genootschap der mexicaanse hond. // // Aan 2% van de mensen is 50% van het bezit ; 1% van het bezit is aan 50% van de mensen.

sluit je ingang eens kort naat massa, de ruis die je dan hoort is de eigen ruis van het systeem. Een opamp bijvoorbeeld is een geniale ruisbron (ook al zegt het verkooppraatje op blz. 1 van de datasheet dat ie "ultra low-noise" is), net als een 7805 of een lm317. Je R2R netwerk ruist ook van zichzelf. Hoe hoger de weerstand hoe groter zijn ruisbijdrage. Kool en metaalfilm maakt ook weer verschil.

mzzls

Correct me if I'm wrong!

Haha ik wordt hier toch hard bestookt precies ...

Er zit inderdaad een 7805 tussen en een hele oude universele DC converter die in commerciele gitaarpedalen ook veel ruis veroorzaakt. Maar ik heb niets anders. Als ik de analoge ingangspin aan de massa hang hoor ik de ruis ook, als ik de gitaar onmiddellijk van de voorversterkende OpAmp aftak niet, en als ik de DAC onmiddelijk beluister hoor ik ook ruis. Ik vermoed dus de voeding, en vroeg daarom ook in mijn eerste post of de Vref- niet iéts hoger moest zijn ... er zitten genoeg filters op. Sampling frequentie is ongeveer 50khz volgens deze code:

c code:

void ADC(void) {
         __delay_us(19.72);								// Tacq (19.72uS)
	GODONE = 1;									// AD-Conversie Starten
	while(GODONE);
}

waarna ik ADRESH rechstreeks op PORTD schrijf ...

je hebt maar 40khz nodig voor het menselijk gehoor volgens nyquist en een gitaar is maar een fractie hiervan... dit mag dus geen probleem zijn

De commentaar op mijn opamp die satureert vind ik een beetje vreemd? Ik heb gewoon zo hard mogelijk gespeeld, gemeten, en gekeken zodat de piek nét niet aan de saturatiespanning komt. Ik heb nergens gezegd dat mijn opamp continu net onder saturatie is ...

Met de opmerkingen van gisteren en het preciezer maken van mijn LP filter na de ADC (RC netwerk en een opamp) zit ik al bijna aan een gewenst resultaat. De ruis is er nog maar nog helemaal niet meer zo storend. Ik heb commerciele pedalen die meer ruis maken ...

Ik ga wel nog wat verder experimenteren met Vref-, deze bv op 50mV ofzo zetten ipv aan de negatieve klem misschien met wat afvlakcondensatoren ofzo ... als iemand nog concrete tips heeft, laat maar komen!

Ontkoppel je voeding voor je analoge deel goed. De opamp en de Analoge Vcc en Vref en het R2R netwerk. Doe dit door een weerstand en choke in serie op te nemen in je voedingslijn en een condensatortje parallel te plaatsen. Op die manier hou je hoogfrequente zooi buiten. Verder kun je goed opletten met je massaverbindingen. Zorg dat je returnstromen van je processor niet door hetzelfde stukje koper lopen waar ook je analoge returnstromen lopen. Je krijgt "groundbounce" als gevolg van de schakelstromen van je uC. Ik zou een extern referentie IC inzetten. De PSRR van die dingen is wel netjes namelijk.

Je universele adapter is op zich niet zo een ramp. Een 7805 haalt een PSRR van ongeveer -50dB tot -60dB. Het probleem is alleen dat het dingetje zelf hoogfrequente ruis veroorzaakt op je voeding welke je terug hoort. Verder zou ik de samplefrequentie opschroeven en een 3e of 4e orde LDF van +/- 20kHz (of nog lager als je je dat kunt veroorloven) plaatsen. Op die manier zit je minder tegen het Nyquist theorema aan te werken en heb je véél meer bewegingsruimte en véél minder kans op stoorsignalen.

Kun je omschrijven wat voor soort ruis het is? Hoe klinkt ie ongeveer? Misschien dat we dan ongeveer kunnen inschatten waar t probleem zit .

Mzzls

Correct me if I'm wrong!

Op 29 maart 2010 19:31:34 schreef JustME125:
Doe dit door een weerstand en choke in serie op te nemen in je voedingslijn en een condensatortje parallel te plaatsen.

Wow, op die manier heb ik nog nooit ontkoppelt! Ik schakel gewoon altijd een condensatortje van 100nF parallel. Maar een weerstand in serie?? Wat voor een dan? En wat is een "choke" juist? Nog nooit van gehoord!!

Op 29 maart 2010 19:31:34 schreef JustME125
Zorg dat je returnstromen van je processor niet door hetzelfde stukje koper lopen waar ook je analoge returnstromen lopen. Je krijgt "groundbounce" als gevolg van de schakelstromen van je uC. Ik zou een extern referentie IC inzetten. De PSRR van die dingen is wel netjes namelijk.

Opnieuw dezelfde verbaasdheid ... returnstromen? Geen idee hoe ik dit probleem te lijf zou kunnen gaan ...

Op 29 maart 2010 19:31:34 schreef JustME125
Verder zou ik de samplefrequentie opschroeven en een 3e of 4e orde LDF van +/- 20kHz (of nog lager als je je dat kunt veroorloven) plaatsen.

3e 4e orde LPF? Hoe verhoog ik de orde? ...

Sorry voor alle vragen ... misschien heb ik een projectje op mij gepakt dat net iets boven mijn huidig niveau gaat ..

Bedankt toch, het is interessant

Op 29 maart 2010 21:54:51 schreef Pieter-Jan:
Wow, op die manier heb ik nog nooit ontkoppelt! Ik schakel gewoon altijd een condensatortje van 100nF parallel. Maar een weerstand in serie??

In digitale schakelingen doe je normaal ook alleen de C. Die moet nl alleen maar piekstromen opvangen. In een analoge schakeling wil je meer, en wel de voeding schoon houden. Daarvoor kun je dan een laagdoorlaat filter gebruiken. Een R en C dus (of zelfs L en C).

Over die return stromen. Stel je het stukje print voor waar zowel digitale als analoge stromen terug naar de voeding lopen. Die "harde" digitale spijkers geven aardige spanningsverschillen door dat spoor. En dit tilt dan ahw de gnd bij de analoge schakeling op. Die variatie zie je weer terug op je signaal. Vandaar dat vaak een aparte gnd voor analoog en digitaal gebruikt wordt die op een strategische plaats wordt doorverbonden. Voert ver om de hele theorie hier even neer te zetten. Zoek en gij zult vinden.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Henry S.

Moderator

Zet eens een zuivere sinus op de ADC, en vergelijk dat eens met wat er weer uit de DAC komt. Heb je een scoop?

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

Ik heb even snel een plaatje getekend in paint over de returnstromen:
http://www.plaatjesupload.nl/bekijken/2513270.html

Je ziet dat de "digitale" stroom via een massa spoor wegloopt. Dit massa spoor deelt het laatste stukje met het analoge circuit. Wanneer jij nu stroompiekjes hebt op je digitale stroom dan krijg je dus spanningspiekjes over dat stukje spoor (een spoor heeft nu ook eenmaal een weerstand). Hierdoor is dus je analoge ground niet meer netjes 0V maar misschien 0,2V. Je hele voedingsspanning is dus bijvoorbeeld 5V - 0.2V = 4.8V over je analoge stukje. Deze rimpel loopt dus door je hele analoge stukje en zal door een versterker (opamp) bijvoorbeeld mee versterkt worden. Zo heb je dus al ruis te pakken. Door nu je vuile stromen te dwingen een andere weg te kiezen vervuil je de analoge ground niet :D. Dit fenomeen noemen we groundbounce. Let wel op dat je je returnstromen niet je hele print rond gaat leiden om ze apart te houden, zo maak je weer stroomlussen waarin stoorspanningen kunnen inkoppelen (inductie).

Dit plaatje is een voorbeeldje van het ontkoppelen zoals ik beschreef:
http://www.plaatjesupload.nl/bekijken/2513273.html
Op deze manier filter je de voedingsspanning. Het is overigens beter om elk digitaal IC van dit soort filters te voorzien dan juist het analoge stuk te filteren. Als je de digitale IC's voorziet van dit soort filters hou je de troep lokaal (alleen bij je digitaal IC), hierdoor blijft je hele voedingsdomein netjes schoon. De weerstand zit er puur in om eventuele resonantie (LC kringen willen wel eens resoneren bij bepaalde frequenties) te dempen.

Ik hoop dat je er wat aan hebt.
Mzzls

Correct me if I'm wrong!