Laboratórium 2 - 7. Mérés: A/D D/A átalakítók vizsgálata

A VIK Wikiből
A lap korábbi változatát látod, amilyen Mp9k1 (vitalap | szerkesztései) 2014. március 16., 12:15-kor történt szerkesztése után volt. (új házi kidolgozás)


Gondolatok a mérésről, tippek és tapasztalatok

  • A Matlab ábráinak tengelyeit érdemes szépen feliratozni és normálisan skálázni, mert ha lemarad, azt nem szeretik.
  • A DNL-es mérésénél egymás után következő pontok között kell meghatározni a DNL-t. Érdemes úgy trükközni, hogy felhasználjuk az INL mérési adatvektorát, majd mérünk még egyet, ahol ugyanakkora lépésköz mellett, pont 1-el elcsúsztatott kódvektorral gerjesztjük a DAC-ot. így széles tartományban kapunk egymás mellett lévő kódpárokhoz tartozó kimeneti értékeket.
  • A glitch mérésénél, a DAC0 kimenetről le lehet venni egy szinkron trigger jelet. Érdemes ezt a szkóp 2-es csatornájára kötni és erre triggerelni, mert önmagában a DAC1-en megjelenő glitch néhány milivoltjára elég nehéz rátriggerelni.
  • A glitch mérésnél a szkópra AC csatolással kell rákötni a DAC1 kimenetet! Így ugyanis kiszűrődik a körülbelül 1-1,5V nagyságú egyenkomponens, így közvetlenül meghatározható a néhány millivolt amplitúdójú glitch területe, akár a szkóp integrál funkciójával is.

Beugró kérdések

  • Ellenőrző kérdések kidolgozása - Szerkesszétek, bővítsétek!
  • Beugró kérdések voltak:
    • Szinte csak az ellenőrző kérdésekből kérdeztek, viszont elég kevés időt adtak rá.
    • Kérdezték bónuszban, hogy mi a Glitch!

Házi feladathoz segítség

Egy kompakt Matlab kód a házihoz, katt a jobb oldali "kinyit" linkre! - Hibák lehetnek benne!!!
% Szinuszjel illesztése a mintavételezett jelre

% Ha hibát találsz, vagy ez alapján csinálod, de nem valamit hibásnak vélnek
% a mérésen, akkor kérlek javítsd!

N = 5;      % ADC bitszáma
fin = 5;    % a jel frekvenciája
fs = 1024;  % mintavételi frekvencia
M = 1024;   % minták száma
U = 2.5;    % referencia feszültség

load ad1.txt;
omin = 2 * pi * fin / fs;
i=1:M;
u1=cos(omin * i)'; u2=sin(omin * i)';
u = [u1 u2 ones(M,1)];
p = u \ ad1;
a=sqrt(p(1)^2 + p(2)^2);
fi = atan2(-p(2),p(1));
offs=p(3);
b = a*cos(omin*i + fi)+ offs;

fprintf('A jel amplitudoja: a = %f\n', a);
fprintf('A jel fazistolasa: fi = %f\n', fi);
fprintf('A jel offsetje: offs = %f\n', offs);

e = 1/M * sum((ad1 - b').^2);                  % szumma hibanégyzet
sinad = 10* log10((a^2 / 2)/e);                % signal-to-noise and distrotion ratio
Neff = N - log2( sqrt(e) / (1/sqrt(12)));      % effektív bitszám (ez nem biztos, hogy jó! )

disp('sinad = ');disp(' ');disp(sinad);
disp('Effektív bitszám Neff = ');disp(' ');disp(Neff);

figure; plot(i,ad1,i,b);grid;
title('A mintavételezett és illesztett jel');
  • Kidolgozott házi feladat - Hibák vannak benne!
    • A koherens mintavételezés egyedüli feltétele, hogy egész számú teljes periódust mintavételezzünk, azaz hogy J és M pozitív egész számok legyenek. Az hogy J és M relatív prímek legyenek (minden periódusban más fázisban mintavételezünk), csak egy méréstechnikai fícsőr, ami pontosabb mérést eredményez, de nem szükséges feltétele a koherens mintavételezésnek.
    • Az effektív bitszám számítása a PDF-ben rossz. A másik kidolgozás Matlab kódjában viszont helyesen szerepel.

Ellenőrző mérés


  • Ide jöhetnek kitöltött jegyzőkönyvek
  • Ide lehet gyűjteni:
    • Milyen feladatot adtak az ellenőrző mérésen
    • Mire érdemes figyelni
    • Hibák, amiket nem kéne elkövetni és megoldási javaslat/trükk