Sunteți pe pagina 1din 4

% Conversor Analgico - Digital de seal Senoidal en MATLAB.

A = input ('Ingrese la Amplitud:'); % Amplitud.


fo = input ('Ingrese la Frecuencia:'); % Frecuencia.
p = input ('Ingrese la Fase:'); % Fase.
n = input ('Ingrese el Nmero de Muestras por Periodo:'); % Numero de Muestras por
Periodo.
b = input ('Ingrese el Nmero de Bit desde 2 a 4(Resolucin):'); % Nmero de bits, ya
sea 2, 3 o 4.
disp ('Datos para crear archivo excel, donde se exportarn los datos');
file=input('\n\nCual es el nombre del archivo Excel a crear (slo 1 palabra): ','s
');
hoja=input('Nmero de Hoja en la que deseas trabajar: ','s');
desc=[{'Nmero de muestreo'},{'Tiempo (seg.)'},{'Voltaje (v.)'},{'Valor binario'}]
;
T=1/fo; %Periodo.
Tm=T/n; %Tiempo de Muestra.
switch b
case 2 % Caso dos, representa Resolucin 2 bits a cuantificar.
for x=1:1:n % Ciclo / Inicia en 1, incrementa de 1 en 1 hasta "n".
t=Tm*x;
y=(A/2)*sin(2*pi*fo*t+p)+(A/2);
if y>0 && y<=(A/4)
f=dec2bin(0,2); % 00
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(A/4) && y<=(A/2)
f=dec2bin(1,2); %01
elseif y>(A/2) && y<=(3*A/4)
f=dec2bin(2,2); %10
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(3*A/4) && y<=(A)
f=dec2bin(3,2); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
end
v(x)={f};
end
case 3 %Caso tres representa Resolucin "3" Bits a Cuantificar.
for x=1:1:n % Ciclo / Inicia en 1, incrementa de 1 en 1 hasta "n".
t=Tm*x;
y=(A/2)*sin(2*pi*fo*t+p)+(A/2);
if y>0 && y<=(A/8)
f=dec2bin(0,3);
fprintf('%g %f %f %s \n\n',x,t,y,f)

elseif y>(A/8) && y<=(2*A/8)


f=dec2bin(1,3); %01
elseif y>(2*A/8) && y<=(3*A/8)
f=dec2bin(2,3); %10
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(3*A/8) && y<=(4*A/8)
f=dec2bin(3,3); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(4*A/8) && y<=(5*A/8)
f=dec2bin(4,3); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(5*A/8) && y<=(6*A/8)
f=dec2bin(5,3); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(6*A/8) && y<=(7*A/8)
f=dec2bin(6,3); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(7*A/8) && y<=(A)
f=dec2bin(7,3); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
end
v(x)={f};
end
case 4 %Caso cuatro representa Resolucin "4" Bits a Cuantificar.
for x=1:1:n % Ciclo / Inicia en 1, incrementa de 1 en 1 hasta "n".
t=Tm*x;
y=(A/2)*sin(2*pi*fo*t+p)+(A/2);
if y>0 && y<=(A/16)
f=dec2bin(0,4);
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(A/16) && y<=(2*A/16)
f=dec2bin(1,4); %01
elseif y>(2*A/16) && y<=(3*A/16)
f=dec2bin(2,4); %10
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(3*A/16) && y<=(4*A/16)
f=dec2bin(3,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(4*A/6) && y<=(5*A/16)
f=dec2bin(4,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)

elseif y>(5*A/16) && y<=(6*A/16)


f=dec2bin(5,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(6*A/16) && y<=(7*A/16)
f=dec2bin(6,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(7*A/16) && y<=(8*A/16)
f=dec2bin(7,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(8*A/16) && y<=(9*A/16)
f=dec2bin(8,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(9*A/6) && y<=(10*A/16)
f=dec2bin(9,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(10*A/16) && y<=(11*A/16)
f=dec2bin(10,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(11*A/16) && y<=(12*A/16)
f=dec2bin(11,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(12*A/16) && y<=(13*A/16)
f=dec2bin(12,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(13*A/16) && y<=(14*A/16)
f=dec2bin(13,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(14*A/16) && y<=(15*A/16)
f=dec2bin(14,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
elseif y>(15*A/16) && y<=(16*A/16)
f=dec2bin(15,4); %11
fprintf('%g %f %f %s \n\n',x,t,y,f)
end
v(x)={f};
end
disp(v);
end
t=0:T/n:2*T;
y=(A/2)*sin(2*pi*fo*t+p)+(A/2);
z=A/2*sin(2*pi*fo*t+p)+A/2; %A*sin(2*pi*fo*t+(p));
% Grfica
stem(t,z)

hold;
plot(t,y,'x')
grid
title ('Muestreo (Seal Senoidal)') % Ttulo.
xlabel ('Tiempo (seg.)') % Eje Horizontal.
ylabel ('Amplitud (volt.)') % Eje Vertical.
[estado]=xlswrite(file,desc,hoja,'A1');
if estado==0
disp('La creacin del archivo ha fallado');
end
valor=(1:n)';
[estado]=xlswrite(file,valor,hoja,'A2');
if estado==0
disp('La creacin del archivo ha fallado.');
end
tiempo=(T/n:T/n:T)';
[estado]=xlswrite(file,tiempo,hoja,'B2');
if estado==0
disp('La creacin del archivo ha fallado.');
end
t2=T/n:T/n:T;
voltaje=((A/2)*sin(2*pi*fo*t2+p)+(A/2))';
[estado]=xlswrite(file,voltaje,hoja,'C2');
if estado==0
disp('La creacin del archivo ha fallado.');
end
[estado]=xlswrite(file,v',hoja,'D2');
if estado==0
disp('La creacin del archivo ha fallado.');
end

S-ar putea să vă placă și