Lab PCM 2011
Lab PCM 2011
Lab PCM 2011
0.8
0.6
0.4
0.2
Amplitud
-0.2
-0.4
-0.6
-0.8
-1
0.1
0.2
0.3
0.4
0.5 Tiempo
0.6
0.7
0.8
0.9 x 10
1
-3
Elaborador por: M.Sc. Fernando Flores Lugar y Fecha: Managua, 04 de octubre de 2011.
Pgina 1
INTRODUCCION Dentro de un sistema de comunicaciones digital, la primera etapa se encarga de la digitalizacin de la fuente de informacin. Esta funcin recae sobre el bloque de codificacin de fuente. El bloque codificador de fuente permite digitalizar la seal analgica de entrada, que para nuestro caso ser Voz, en una secuencia binaria. En la Unidad 2, se estudiaron diversas tcnicas para alcanzar este propsito. En el presente laboratorio, nos centraremos en la tcnica PCM-Uniforme y PCM-NoUniforme i.e. utilizacin del compander.
OBJETIVOS Analizar la tcnica de PCM utilizada en el bloque de codificacin de fuente haciendo uso de la herramienta computacional Matlab.
Especficos Utilizar Matlab para la simulacin de sistemas PCM. Analizar el fenmeno de cuantizacin y codificacin en el sistema PCM. Verificar los efectos de variar los bits de codificacin. Calcular los valores de SQNR Utilizar adquisicin de datos (Voz) para su digitalizacin. Analizar el comportamiento del sistema PCM de voz al aplicar el compander. Recursos a Utilizar: Laboratorio de Simulacin Matlab Trabajo previo: 1. Leer sobre la tcnica de PCM y el uso de compander. 2. Analizar los script a utilizar en y agregados en Matlab. DESARROLLO 1. Crear un script donde se genere una salida senoidal de 1KHz. 2. Aplicar la digitalizacin con PCM utilizando el script propuesto en anexos. 3. Grafique las dos seales la seal original y la seal cuantizada con un valor de entre 1-8 bits, y graficar la seal de error (error= x-xq), como se muestra en la siguiente grfica
Pgina 2
senal original vs senal cuantizada 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 x 10 1
-3
senal error (error=x-xq) 0.08 0.06 0.04 0.02 0 -0.02 -0.04 -0.06 -0.08
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9 x 10
1
-3
4. Vari la cantidad de bits de 1 a 8 y analice los resultados a travs de las grficas y el SQNRdB 5. Utilice el comando wavread para convertir un archivo de audio wav a un vector de Matlab. 6. Hgalo pasar por un compander usando la ley A y la Ley . 7. Digitalice usando PCM. 8. Grfique y analices los resultados de la seal de audio al hacerla pasar por una compander. 9. Utilice el comando wavrecord para grabar su voz y analizarla desde Matlab. 10. Grfique y reproduzca la seal grabada. 11. Hgalo pasar por un compander usando la ley A y la Ley . 12. Digitalice usando PCM. 13. Grfique y reproduzca las diferentes seales analices los resultados de la seal de audio con y sin un compander. RESULTADOS A REPORTAR 1. Respuesta a cada una de las preguntas de los incisos del desarrollo. 2. Grficas y anlisis de los resultados que se proponen. 3. Los Script desarrollado para el laboratorio.
Pgina 3
ANEXOS Tomados del libro Comtemporary System Communications, Proakis function [sqnr,a_quan,code]=u_pcm(a,n) %U_PCM uniform PCM encoding of a sequence % [SQNR,A_QUAN,CODE]=U_PCM(A,N) % a=input sequence. % n=number of quantization levels (even). % sqnr=output SQNR (in dB). % a_quan=quantized output before encoding. % code=the encoded output. amax=max(abs(a)); a_quan=a/amax; b_quan=a_quan; d=2/n; q=d.*[0:n-1]; q=q-((n-1)/2)*d; for i=1:n a_quan(find((q(i)-d/2 <= a_quan) & (a_quan <= q(i)+d/2)))=... q(i).*ones(1,length(find((q(i)-d/2 <= a_quan) & (a_quan <= q(i)+d/2)))); b_quan(find( a_quan==q(i) ))=(i-1).*ones(1,length(find( a_quan==q(i) ))); end a_quan=a_quan*amax; nu=ceil(log2(n)); code=zeros(length(a),nu); for i=1:length(a) for j=nu:-1:0 if ( fix(b_quan(i)/(2^j)) == 1) code(i,(nu-j)) = 1; b_quan(i) = b_quan(i) - 2^j; end end end sqnr=20*log10(norm(a)/norm(a-a_quan));
Pgina 4