You are on page 1of 9

Table of Contents

TRABAJO 2 PARTE 2 CUANTIZADOR UNIFORME ............................................................. 1


GRÁFICAS PARA 8 NIVELES DE CUANTIZACIÓN ............................................................. 1
GRÁFICAS PARA 16 NIVELES DE CUANTIZACIÓN ........................................................... 4
GRÁFICAS PARA 32 NIVELES DE CUANTIZACIÓN ........................................................... 6

TRABAJO 2 PARTE 2 CUANTIZADOR UNI-


FORME
%Programa en que vamos a muestrear y cuantizar una señal sinusoidal

%Constantes Utilizadas en todas las gráficas


clc
clear all
close all

fc = 1; %Frecuencia de la señal en Hz
N = 64; %Número de muestras;

fs = 1000*fc; %Frecuencia de muestreo


ts = 1/fs; %Periodo de la muestra
t = 0:ts:1; %Intervalo de muesreo
y = sin(2*pi*fc.*t); %Función sinusoidal continua

% Función para Gráfica de muestras en la señal


n = 0:1/(N):1; %Número de muestras en la señal
yn = sin(2*pi*fc.*n); %Función utilizada para muestrear la señal

GRÁFICAS PARA 8 NIVELES DE CUANTIZA-


CIÓN
figure(1)

L = 8; %Niveles de Cuantización
l = linspace(-1,1,L+1); %Vector con N numeros de valores segun en
numero de niveles de cuantización

for i = -1 :2/L:1 %Bucle para graficar los niveles(líneas


horizontales) de cuantización
p1=plot([0 1],[i i], 'Color', 'g');
hold on
grid on
grid minor
end

% Obtencion de los valores para Cuantización Uniforme


for j = 1:65

1
r = abs(yn(j) - l); %Vector con valores absolutos de la
diferencia entre amplitud de la muestra y nivel de cuantización
S(j) = l(find(r == min(r))); %Vector con los valores tales que la
diferencia entre los niveles de cuantización sean los mínimos
r = 0; %Reinicio del vecto diferencia para nuevos valores con
otra muestra
end

% GRAFICA
p2 = plot(t, y, 'LineWidth', 1.3,'Color', 'k'); %Gráfica de
la función a cuantizar
hold on
p3 = stem(n, S,'LineWidth',1.2,'Color','b'); %Grafica de las muestras
cuantizadas en la función sinusoidal
title(['Onda Original x(t) y Onda Cuantizada x[n] de ' ,num2str(L), '
niveles']);
yticks(l)
xlabel('Numero de muestras (n);tiempo(t)');
ylabel('Amplitud (A) y Numero de niveles (L)');
legend([p2 p3 p1], {'Funcion sin Cuantizar','Funcion
Cuantizada','Numero de Niveles'})

% ERROR DE CUANTIZACION DE 8 NIVELES

e1 = yn - S; %Error de cuantización en función de los niveles "e[n]


= x[n] - ^x[n]"
% GRAFICA
figure(2)
plot(n, e1)
grid on
title(['Error de cuantizacion para ' ,num2str(L), ' niveles']);
xlabel('Numero de muestras (n)');
ylabel('Error (e)');
legend('Error de cuantizacion')

2
3
GRÁFICAS PARA 16 NIVELES DE CUANTIZA-
CIÓN
figure(3)

L = 16; %Niveles de Cuantización


l = linspace(-1,1,L+1); %Vector con N numeros de valores segun en
numero de niveles de cuantización

for i = -1 :2/L:1 %Bucle para graficar los niveles(líneas


horizontales) de cuantización
p1=plot([0 1],[i i], 'Color', 'g');
hold on
grid on
grid minor
end

% Obtencion de los valores para Cuantización Uniforme


for j = 1:65
r = abs(yn(j) - l); %Vector con valores absolutos de la
diferencia entre amplitud de la muestra y nivel de cuantización
S(j) = l(find(r == min(r))); %Vector con los valores tales que la
diferencia entre los niveles de cuantización sean los mínimos
r = 0; %Reinicio del vector diferencia para nuevos valores
con otra muestra
end

% GRAFICA
p2 = plot(t, y, 'LineWidth', 1.3,'Color', 'k'); %Gráfica de
la función a cuantizar
hold on
p3 = stem(n, S,'LineWidth',1.2,'Color','b'); %Grafica de las muestras
cuantizadas en la función sinusoidal
title(['Onda Original x(t) y Onda Cuantizada x[n] de ' ,num2str(L), '
niveles']);
yticks(l)
xlabel('Numero de muestras (n);tiempo(t)');
ylabel('Amplitud (A) y Numero de niveles (L)');
legend([p2 p3 p1], {'Funcion sin Cuantizar','Funcion
Cuantizada','Numero de Niveles'})

% ERROR DE CUANTIZACION DE 16 NIVELES

e2 = yn - S; %Error de cuantización en función de los niveles "e[n]


= x[n] - ^x[n]"
%GRAFICA
figure(4)
plot(n, e2)
grid on
title(['Error de cuantizacion para ' ,num2str(L), ' niveles']);
xlabel('Numero de muestras (n)');
ylabel('Error (e)');

4
legend('Error de cuantizacion')

5
GRÁFICAS PARA 32 NIVELES DE CUANTIZA-
CIÓN
figure(5)

L = 32; %Niveles de Cuantización


l = linspace(-1,1,L+1); %Vector con N numeros de valores segun en
numero de niveles de cuantización

for i = -1 :2/L:1 %Bucle para graficar los niveles(líneas


horizontales) de cuantización
p1=plot([0 1],[i i], 'Color', 'g');
hold on
grid on
grid minor
end

% Obtencion de los valores para Cuantización Uniforme


for j = 1:65
r = abs(yn(j) - l); %Vector con valores absolutos de la
diferencia entre amplitud de la muestra y nivel de cuantización
S(j) = l(find(r == min(r))); %Vector con los valores tales que la
diferencia entre los niveles de cuantización sean los mínimos

6
r = 0; %Reinicio del vector diferencia para nuevos valores
con otra muestra
end

% GRAFICA
p2 = plot(t, y, 'LineWidth', 1.3,'Color', 'k'); %Gráfica de
la función a cuantizar
hold on
p3 = stem(n, S,'LineWidth',1.2,'Color','b'); %Grafica de las muestras
cuantizadas en la función sinusoidal
title(['Onda Original x(t) y Onda Cuantizada x[n] de ' ,num2str(L), '
niveles']);
yticks(l)
xlabel('Numero de muestras (n);tiempo(t)');
ylabel('Amplitud (A) y Numero de niveles (L)');
legend([p2 p3 p1], {'Funcion sin Cuantizar','Funcion
Cuantizada','Numero de Niveles'})

% ERROR DE CUANTIZACION DE 32 NIVELES

e3 = yn - S; %Error de cuantización en función de los niveles "e[n]


= x[n] - ^x[n]"
% GRAFICA
figure(6)
plot(n, e3)
grid on
title(['Error de cuantizacion para ' ,num2str(L), ' niveles']);
xlabel('Numero de muestras (n)');
ylabel('Error (e)');
legend('Error de cuantizacion')

7
8
Published with MATLAB® R2018b

You might also like