offsetkompensering vid ökad upplösning?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

offsetkompensering vid ökad upplösning?

Inlägg av tobbetabbe »

Jag använder en 16-bitars D/A kopplat till 18f458 de mätvärden som jag skickar till D/A:n vill jag se analogt på ett oscilloskop.Nu vill jag kunna öka upplösningen(förstoring) av signalen utan att ändra oscilloskopet.Problemet blir när talet multipliceras med 2 ökar också "DC-nivån" finns det någon bra algoritm för att skala bort denna nivån så att enbart skillnaderna syns.annars slår D/A:n snart i "taket" Glad påsk
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Vilken DAC ?
Vilka nivåer har du nu ?
Vilka värder skickar du nu till DAC'en och vilka vill du skicka sen ?
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

Inlägg av tobbetabbe »

jag använder DAC 8501? rail2rail 16-bitars (65535) 0-5 V från ELFA tex samplade värden 1:a=40000 skickas sedan 2:a=40100 3:e=40250 osv. om jag tar x2 med dessa värden ökas upplösningen men även DC nivån slår i taket dvs långt över 65535.därför behövs nån kompensering
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg av Kaggen »

Jag är inte helt säker på att jag förstår ditt problem, men du kan ju begränsa signalen dels mjukvarumässigt eller "elektroniskt". Du kan ju aldrig ge ett större värde än 65535 till en 16-bits D/A. När du multiplicerar med 2 och produkten blir större än 65535 så beror det på din mjukvara vad som händer. Antingen så får du en "wrapp around" vilket resulterar i ett tal mindre än 65535 (i fallet 80000 blir det 14464) eller så kollar du och "klipper" du mjukvarumässigt allt över 65535 så t.ex 40000 * 2 = 80000 blir "klippt" 65535.

Annars om det är själva utspänningen du vill ändra, antar jag att du kan använda en op-amp, vridpott eller liknande.
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

Inlägg av tobbetabbe »

jag vill att kurvan syns inom området men vill kunna se förstoringen dvs skillnaden mellan de samplade värdena jag vill göra detta i mjukvaran för att hålla reda på vad 0V och 5V utgång motsvarar de riktiga värdena problemet med offseten gör att talet blir väldigt stort
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Då är det ju bara att du subtraherar DC-offsetten eller hur?

Ett exempel är att du kan räkna ut medelvärdet över ett större antal mätningar och integrera ett medelvärde på dessa som du sedan subtraherar innan du multiplicerar med önskad faktor.

Hur du ska göra beror ju totalt på vilken applikation du har, hur signalen används osv.
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

Inlägg av tobbetabbe »

låter intressant hade tänkt i dessa banor låter lite svårt att hinna räkna ut medelvärdet i realtid men kanske funkar. En ide jag hade var att detektera det lägsta värdet och subtrahera med detta så att kurvan hamnar längst ner i området men det snyggaste vore att få kurvan att hamna i mitten vore tacksam om någon har löst detta förut eller har detaljerad algoritmh
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

(Högsta värdet - lägsta värdet)/2 = Center

32767 - Center = Offset
tobbetabbe
Inlägg: 35
Blev medlem: 2 februari 2005, 17:18:12
Ort: Göteborg

Inlägg av tobbetabbe »

ok får testa o se va som händer tack!
Skriv svar