Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEÑALES
%MARIA CAMILA VARÓN Y YAMID ESPINEL
%CIRCUITOS V
%INGENIERIA ELECTRONICA
%UNIVERSIDAD DE IBAGUE
%CICLOS
for n=1:N,
for indta=1:length(ta),
% SUMATORIA DE FOURIER DE LA SEÑAL EN TIEMPO CONTINUO
Fa(indta)=Fa(indta) + ((A/pi)*(sin(n*Wo*ta(indta))/n));
end
end
% FINALIZACIÓN DE CICLOS
subplot(2,3,1);
plot(ta,Fa)
title('SEÑAL EN TIEMPO CONTINUO');
xlabel('tiempo');
ylabel('amplitud');
% MUESTREO
fmax=N*(1/To); % FRECUENCIA MÁXIMA ECUACIÓN PARA HALLARLA
Fs=2.1*fmax; %CRITERIO DE NYQUIST
tn=0:1/Fs:(2*To); % TIEMPO DISCRETO
Fn= zeros(1,length(tn)); % DEFINICIÓN DE LA FUNCIÓN DE MUESTREO
for n=1:N,
for indtn=1:length(tn),
% SUMATORIA DE FOURIER EN TIEMPO DISCRETO
Fn(indtn)= Fn(indtn) + ((A/pi)*(sin(n*Wo*tn(indtn))/n));
% FINALIZACIÓN DE CICLOS
end
end
% CUANTIZACIÓN
Numbits=8; %NÚMERO DE BITS
niveles=(2^8); %NÚMERO DE NIVELES DE CUANTIZACIÓN
tc=0:A/niveles:A; %TIEMPO DISCRETO
%CICLOS PARA CUANTIZAR
for indc=1:(length(tc)-1)
for indtn=1:length (tn)
if((Fn(indtn)>tc(indc))&&(Fn(indtn)<tc(indc+1))) %APROXIMACIÓN AL NIVEL
MENOR MÁS CERCANO
fc(indtn)=tc(indc);
elseif(Fn(indtn<tc(1)));
fc(indtn)=tc(1); %APROXIMACIÓN A CERO PARA VALORES NEGATIVOS
elseif(Fn(indtn)>tc(length(tc)))
fc(indtn)=tc(length(tc)); %APROXIMACIÓN AL NIVEL MÁXIMO PARA
VALORES MAYORES A ÉSTE
end
end
end %FINALIZACIÓN DE CICLOS
%GRAFICAR LA SEÑAL
subplot(2,3,3);
stem(tn,fc)
title('SEÑAL CUANTIZADA');
xlabel('tiempo');
ylabel('amplitud');
%ERROR DE CUANTIZACIÓN
subplot(2,3,4);
stem(tn,ecuantizacion)
title('ERROR DE CUANTIZACIÓN');
xlabel('tiempo');
ylabel('amplitud');
% CODIFICADOR
%CICLOS
for indtn=1:length(tn),
for indc=1:(length(tc)),
if(fc(indtn) == tc(indc)) %COMPARACIÓN ENTRE EL VALOR DE SEÑAL
CUANTIZADA Y EL VALOR DE NIVEL ACTUAL
div(indtn) = indc; %SE ASIGNA AL VECTOR DE CODIFICACIÓN EL
VALOR ACTUAL DE indc (CONTADOR), SI EL VALOR DE LA SEÑAL CUANTIZADA ES
IGUAL AL VALOR DEL NIVEL ACTUAL
end
end
end
div
%CONVERSIÓN A BINARIO
for indtn=1:length(tn), %CICLO TIEMPO DISCRETO
a=1; %INICIALIZACIÓN DE MULTIPLICADOR
c=div(indtn); %CAMBIO DE VARIABLE DEL VALOR ACTUAL CODIFICADO A C
d(indtn)=0; %INICIALIZACIÓN DEL ACUMUADOR BINARIO
while (c>=1) %DIVIDE HASTA QUE EL NÚMERO LLEGUE A 1
b=rem(c,2); %RESIDUO DE LA DIVISIÓN DEL NÚMERO ACTUAL C ENTRE 2
c=c/2; %COCIENTE DE LA DIVISIÓN DEL NÚMERO ACTUAL C ENTRE 2
c=floor(c); %APROXIMACIÓN AL MENOR MÁS CERCANO DEL COCIENTE
HALLADO ANTERIORMENTE
d(indtn)=d(indtn)+(b*a); %ACUMULACIÓN DE NÚMERO BINARIO
a=a*10; %AUMENTO DE 10 VECES EN EL MULTIPLICADOR
end
end
d
%RECONSTRUCCIÓN
Wmax = 2*pi*fmax; %FRECUECIA ANGULAR MÁXIMA
Fx=zeros(1,length(ta)); % DEFINICIÓN DE LA FUNCIÓN DE RECONSTRUCCIÓN
%CICLOS
for indtn=1:(length(tn))
for indta=1:(length(ta))
% SUMATORIA DE FOURIER CON LA SAMPLING PARA LA SEÑAL RECONSTRUIDA
Fx(indta) = Fx(indta) + (Fn(indtn)*((sin(Wmax*(ta(indta)-
(indtn/Fs))))/(Wmax*(ta(indta)-(indtn/Fs)))));
end
end
% FINALIZACIÓN DE CICLOS
%GRAFICAR LA SEÑAL
subplot(2,3,5);
plot(ta,Fx);
title('SEÑAL RECONSTRUIDA');
xlabel('tiempo');
ylabel('Amplitud');
grid;
CIRCUITOS V
LABORATORIO DE MUESTREO, CUANTIZACIÓN,
CODIFICACIÓN Y RECONSTRUCCIÓN DE SEÑALES
DOCENTE:
ING. LEONARDO FABIO YÉPES
UNIVERSIDAD DE IBAGUÉ
2010