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 (vitalap) 2012. október 22., 11:55-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Villanyalap|Labor2Meres7}} Sziasztok! {{InLineFileLink|Villanyalap|Labor2Meres7|Labor_2_07_FKA.zip|itt}} egy kis segédanyag: ell kérdések kidolgo…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

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
Hiba a bélyegkép létrehozásakor: Nem lehet a bélyegképet a célhelyre menteni
@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.