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 David14 (vitalap | szerkesztései) 2013. február 9., 22:00-kor történt szerkesztése után volt. (David14 átnevezte a(z) A/D és D/A átalakítók vizsgálata lapot a következő névre: Laboratórium 2 - 7. Mérés: A/D D/A átalakítók vizsgálata)

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


Sziasztok!

Ezen a helyen volt linkelve a(z) Labor_2_07_FKA.zip nevű fájl ("itt" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/Labor2Meres7 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)
egy kis segédanyag: ell kérdések kidolgozás + HF

Chris

2011.03.27.



Egy kompakt megoldás a házira, de ugyanazt csinálja, mint az alsó

% szinuszjel illesztese a mintaveteleztett jelre
N = 5; %ADC bitszáma
fin = 5; % a jel frekvenciája
fs = 1024; % mintavételi frekvencia
U = 2.5; % referencia feszültség

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

disp('A jel amplitudoja: a =');disp(' ');disp(a);
disp('A jel fazistolasa: fi =');disp(' ');disp(fi);
disp('A jel offsetje: offs =');disp(' ');disp(offs);

e = sum((ad1 - b').^2 / size(b,2)) * U/(2^N); % szumma hibanegyzet
sinad = 10* log10((a^2 / 2)/e); % signal-to-noise and distrotion ratio
Neff = N - log2(e / ((U/2^N)/sqrt(12))); % effektív bitszám

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');

-- jantek - 2007.04.21.

y=load('G:\labor2_7\ad8.txt');

Q=1; N=5;

u=ones(1024,3);

for i=1:1024

 u(i,1)=cos(2*pi/1024*5*i);

end;

for i=1:1024

 u(i,2)=sin(2*pi/1024*5*i);

end;

p=u\y

p1=(u'*u)^(-1)*(u'*y)

p2=zeros(3,1);

for i=1:1024

 p2(1,1)=2*cos(2*pi/1024*5*i)*y(i)+p2(1,1);
 p2(2,1)=2*sin(2*pi/1024*5*i)*y(i)+p2(2,1);
 p2(3,1)=y(i)+p2(3,1);

end;

p2=p2/1024

A=sqrt(p(1,1)^2+p(2,1)^2)

fi=atan2(-p(2,1),p(1,1))

C=p(3,1)

i=1:1024;

x=A*cos(2*pi*5/1024*i+fi)+C;

figure(1); plot(i,x,i,y); grid;

eq=sum((y-x').^2)/1024

SINAD_dB=10*log10(A^2/2/eq)

N_eff=N-log2(eq/Q/sqrt(12))

f=19.531250; %f=20;

i=0:4095; z=sin(2*pi/8000*i*f+pi/2);

figure(2); plot(z);

sz=fft(z);

figure(3); plot(abs(sz));

fm=4000*10/2048

-- ken - 2007.03.12.


-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

p, p1, p2 ugyanaz, csak 3 féleképpen kiszámolva, elég a legegyszerűbbet használni, p=u\y, a többi kihagyható!

U kiszamolása helyesen (Laboron így csináltuk):

for i=1:mintákszáma u(i,1)=cos(2*pi*f_jel/f_mintavétel*i); end; for i=1:mintákszáma u(i,2)=sin(2*pi*f_jel/f_mintavétel*i); end;

x helyesen: x=A*cos(2*pi/mintákszáma*i*periódusokszáma+fi)+C;

N_eff szintén: neff=(SINAD-20*log10(A*2/mintákszáma)-1.76)/6.02;

Koherens mintavétel feltétele: fi=J/M*fs, ahol fi a jel frekvenciája , J a mintavett periódusok száma, M a vett minták száma, fs a mintavételi frekvencia. A koherecia teljesül, ha J=fi/fs*M egész szám.

-- Miki - 2007.03.20.