Está en la página 1de 11

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA ELÉCTRICA

INTRODUCCIÓN AL PROCESAMIENTO DIGITAL DE SEÑALES

LABORATORIO NO. 2
CUANTIZACIÓN

Nombre: (1) Cesar Alvarado, (2) Claudio Salazar


No. de Cédula:(1)9-744-1566, (2)8-850-583
Grupo: 1IT251. Fecha:25-04-2017. Profesor: Daniel Cervantes.

Introducción:

La cuantización se refiere al proceso en el que una señal analógica se aproxima a una señal que puede tomar
solamente un número finito de valores. La señal digital resultado de la cuantificación es diferente a la señal
analógica que la originó debido a lo que se conoce como error de cuantificación. El error de cuantificación se
interpreta como un ruido añadido a la señal tras el proceso de decodificación digital. La cuantificación no
tendrá ninguna consecuencia si el ruido añadido con la cuantificación se mantiene por debajo del ruido
presente en la señal analógica original

Objetivo Generales:
Analizar la relación entre el ruido de cuantización, la frecuencia de muestreo y el paso de cuantización.

Material y Equipo:
Computadora con MATLAB

Procedimiento:
Sea xq[n] la señal obtenida al cuantificar x[n]=sen (2fn). La potencia de error de cuantificación Pq se
define como:

e 2 n   xn  x n


1 1

M 1 M 1
Pq 
2
n 0 n 0 q
M M
La calidad de la señal cuantificada se mide mediante la relación señal-ruido de cuantificación (SQNR)
P 
SQNR  10 log  x 
P 
 q ,

Donde Px es la potencia de la señal sin cuantificar x[n].


Desarrollo:

1. Para f = 1/50 y M = 200, escriba un programa para cuantificar la señal usando truncamiento, con 64,
128 y 256 niveles de cuantificación. En cada caso dibuje las señales x[n], xq[n] y e[n] y calcule la
SQNR correspondiente.
2. Repita el apartado a) usando redondeo en vez de truncamiento.
3. Comente los resultados obtenidos en los apartados a) y b).
4. Compare los valores de SQNR medidos con los obtenidos teóricamente, usando la fórmula dada en
clase. Comente las similitudes y diferencias.

Resultados:

Señal que se utilizara en el laboratorio para realizar la cuantización de 64, 128 y 256.

Gráfica No. 1

Señal Muestreada x[n]


64 Niveles de Cuantización por Truncamiento

Gráfica No. 2
Señal Cuantizada por Truncamiento de 64 bits xq[n]

Gráfica No. 3
Señal de Error por Truncamiento de 64 bits e[n]
64 Niveles de Cuantización por Redondeo

Gráfica No. 4
Señal Cuantizada por Redondeo de 64 bits xq[n]

Gráfica No. 5
Señal de Error por Redondeo de 64 bits e[n]
128 Niveles de Cuantización por Truncamiento

Gráfica No. 6
Señal Cuantizada por Truncamiento de 128 bits xq[n]

Gráfica No. 7
Señal de Error por Truncamiento de 128 bits e[n]
128 Niveles de Cuantización por Redondeo

Gráfica No. 8
Señal Cuantizada por Redondeo de 128 bits xq[n]

Gráfica No. 9
Señal de Error por Redondeo de 128 bits e[n]
256 Niveles de Cuantización por Truncamiento

Gráfica No. 10
Señal Cuantizada por Truncamiento de 128 bits xq[n]

Gráfica No. 11
Señal de Error por Truncamiento de 256 bits e[n]
256 Niveles de Cuantización por Redondeo

Gráfica No. 12
Señal Cuantizada por Redondeo de 256 bits xq[n]

Gráfica No. 13
Señal de Error por Redondeo de 256 bits e[n]
Razón Señal a Ruido

Cálculo de la Razón Señal a Ruido SQNR, se da por la siguiente ecuación:

𝑆𝑄𝑁𝑅 = 1,76 + 6,02 ∗ 𝑏


(Teórico)

Donde b, es la cantidad de bits necesarios para cada nivel.

Para señales sinusoidales se sacan las potencias, este cálculo lo realizamos a partir de la siguiente ecuación:
𝑃𝑥
𝑆𝑄𝑁𝑅 = 10 𝑙𝑜𝑔 𝑃𝑞
(Matlab)

Donde Px es la potencia de la señal y Pq es la potencia de la señal cuantificada.

Tabla No. 1

SQNR SQNR Diferencia Diferencia


No. De No. De SQNR
Truncado Redondeo SQNR (Teórico – SQNR (Teórico
Niveles Bits (Teórico)
(Matlab) (Matlab) Truncado) –Redondeo)
64 6 31,3341 39,2021 37,88 6,5459 -1,3221
128 7 37.3590 46,5270 43,90 6,541 -2,627
256 8 43,7739 51,4120 49,92 6,1461 -1,492

Discusión:

Conclusión:
Anexo

%% a parte 1 64 bits
clear; clc;
n=0:1:200; %M=200
f=1/50;
s1= sin(2*pi*f*n);
Xq1=floor(s1*32)/32; %señal cuantizada por truncamiento a 64 (32 hacia arriba y
abajo)
eq1= s1-Xq1; %error por truncamiento
Xr1=round(s1*32)/32; %señal cuantizada por redondep a 64 (32 hacia arriba y
abajo)
er1= s1-Xr1; %error por redondeo

figure

stem (n, s1,'-b', 's'); xlabel('Frecuencia'); ylabel('Amplitud');


title('Señal Muestreada'); grid minor;

figure
stem (n, Xq1, '-b', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal Cuantizada por Truncamiento a 64 bits'); grid minor;

figure
stem (n, eq1, '-k', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal de Error por Truncamiento de 64 bits'); grid minor;

figure
stem (n, Xr1, '-b', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal Cuantizada por Redondeo a 64 bits'); grid minor;

figure
stem (n, er1, '-k', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal de Error por Redondeo de 64 bits'); grid minor;

%sqnr (dB)
Z1=sum(s1.^2); Y1=sum(eq1.^2);
Sq1=10*log10((Z1)/(Y1)); %Error por truncamiento 64bits

Z11=sum(s1.^2); Y11=sum(er1.^2);
Sq11=10*log10((Z11)/(Y11));%Error por redondeo 64bits

%error formula (dB)


sqf=1.76+6.02*6;

%% b parte 1 128 bits


clear; clc;
n=0:1:200; %M=200
f=1/50;
s1= sin(2*pi*f*n);
Xq1=floor(s1*64)/64; %señal cuantizada por truncamiento a 64 (32 hacia arriba y
abajo)
eq1= s1-Xq1; %error por truncamiento
Xr1=round(s1*64)/64; %señal cuantizada por redondep a 64 (32 hacia arriba y
abajo)
er1= s1-Xr1; %error por redondeo

figure
stem (n, Xq1, '-b', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal Cuantizada por Truncamiento a 128 bits'); grid minor;
figure
stem (n, eq1, '-k', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal de Error por Truncamiento de 128 bits'); grid minor;

figure
stem (n, Xr1, '-b', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal Cuantizada por Redondeo a 128 bits'); grid minor;

figure
stem (n, er1, '-k', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal de Error por Redondeo de 128 bits'); grid minor;

%sqnr (dB)
Z1=sum(s1.^2); Y1=sum(eq1.^2);
Sq1=10*log10((Z1)/(Y1)); %Error por truncamiento 128bits

Z11=sum(s1.^2); Y11=sum(er1.^2);
Sq11=10*log10((Z11)/(Y11));%Error por redondeo 128bits

%error formula (dB)


sqf=1.76+6.02*7;

%% c parte 1 256 bits


clear; clc;
n=0:1:200; %M=200
f=1/50;
s1=sin(2*pi*f*n);
Xq1=floor(s1*128)/128; %señal Cuantizada por truncamiento a 256 (128 hacia
arriba y abajo)
eq1= s1-Xq1; %error por truncamiento
Xr1=round(s1*128)/128; %señal Cuantizada por redondeo a 256 (128 hacia arriba y
abajo)
er1= s1-Xr1; %error por redondeo

figure
stem (n, Xq1, '-b', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal Cuantizada por Truncamiento a 256 bits'); grid minor;

figure
stem (n, eq1, '-k', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal de Error por Truncamiento de 256 bits'); grid minor;

figure
stem (n, Xr1, '-b', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal Cuantizada por Redondeo a 256 bits'); grid minor;

figure
stem (n, er1, '-k', 's'); xlabel('Frecuencia'); ylabel('Amplitud');
title('Señal de Error por Redondeo de 256 bits'); grid minor;

%sqnr (dB)
Z1=sum(s1.^2); Y1=sum(eq1.^2);
Sq1=10*log10((Z1)/(Y1)); %Error por truncamiento 256bits

Z11=sum(s1.^2); Y11=sum(er1.^2);
Sq11=10*log10((Z11)/(Y11));%Error por redondeo 256bits

%error formula (dB)


sqf=1.76+6.02*8;

También podría gustarte