Laboratórium 2 - 7. Mérés: A/D D/A átalakítók vizsgálata
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!
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.