Está en la página 1de 5

%GENERACIÓN, MUESTREO, CUANTIZACIÓN, CODIFICACIÓN Y RECONSTRUCCIÓN DE

SEÑALES
%MARIA CAMILA VARÓN Y YAMID ESPINEL
%CIRCUITOS V
%INGENIERIA ELECTRONICA
%UNIVERSIDAD DE IBAGUE

clear all; % CIERRA TODA LAS FUENTES GRÀFICAS


close all; % LIMPIA LAS VARIABLES DE ENTORNO
clc; % LIMPIA EL INTERPRETE DE COMANDOS

To=1e3; %PERIODO FUNDAMENTAL EN SEGUNDOS


N = 15; %NUMERO MAXIMO DE ARMONICOS
Wo = 2*pi*(1/To); %FRECUENCIA ANGULAR
A= 1; %AMPLITUD DE LA SEÑAL
ta = 0:To/100:(2*To); % TIEMPO MAXIMO (2*T), VECTOR EN TIEMPO CONTINUO
Fa= zeros(1,length(ta)); % DEFINICIÓN DE LA FUNCIÓN DE TIEMPO CONTINUO

%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

% CICLO DE F(INDT) CON a0


for indta=1:length(ta), % CICLO PARA TIEMPO CONTINUO
Fa(indta)=A/2-(Fa(indta)); % SUMATORIA DE a0
end % FINALIZACIÓN DE ESE CICLO
%GRAFICAR LA SEÑAL

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

% CICLO DE F(IND) CON a0


for indtn=1:length(tn),
Fn(indtn)=A/2-(Fn(indtn)); %SUMATORIA DE a0
end% FINALIZACIÓN DE ESE CICLO
%GRAFICAR LA SEÑAL
subplot(2,3,2);
stem(tn,Fn);
title('SEÑAL MUESTREADA');
xlabel('tiempo');
ylabel('amplitud');

% 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

for indtn=1:length (tn)


ecuantizacion(indtn)= abs(Fn(indtn)-fc(indtn));
end

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

MARIA CAMILA VARÓN


2420081033
YAMID ESPINEL LÓPEZ
2420081023

DOCENTE:
ING. LEONARDO FABIO YÉPES

UNIVERSIDAD DE IBAGUÉ
2010

También podría gustarte