Laboratorio 3 Pds
Laboratorio 3 Pds
Laboratorio 3 Pds
CURSO :
INTEGRANTES:
PROFESOR:
LABORATORIO Nº 3:
Método de Re-cuantizacion
25 de julio de 2018
PRIMER INFORMDE DE LABORATORIO
I. INTRODUCCIÓN:
II. OBJETIVOS
GENERAL:
ESPECIFICOS:
III. COMPONENTES
Micrófono
Es un transductor electroacústico, que tiene como función transformar o
traducir la presión acústica ejercida sobre su capsula por las ondas sonoras
en energía eléctrica.
MATLAB
MATLAB es el nombre abreviado de “MATrix LABoratory”. Es un
lenguaje de alto nivel y de ambiente interactivo que permite realizar tareas
intensas y con una mayor velocidad que los lenguajes de programación
comúnmente usados. MATLAB se especializa en cálculos numéricos con
vectores y matrices, como casos particulares puede trabajar también con
otras estructuras de información. Aunque cada objeto es considerado como
un arreglo.
Señal de audio
El audio será grabado a través de MATLAB con un micrófono, conectado
a la computadora para luego ser guardado en la misma, en este caso el
sonido de las cuerdas de una guitarra que tendrá una duración de 2
segundos.
Las ecuaciones fundamentales que se aplican en acústica son lineales, por lo que
se pueden utilizar sistemas lineales en el modelado del audio para conseguir una
precisión aceptable.
PREPROCESADO
MUESTREO Y CUANTIFICACIÓN
RE-CUANTIZACION
La re-cuantizacion implica reproducir el número de bits, utilizando técnicas de
procesamiento digital de señal.
V. PROCESAMIENTO EXPERIMENTAL
El alumno deberá ingresar los parámetros: fs = 16000 Hz, numero de bits
r=16 bits y el tiempo de adquisición tAdq = 3s.
Se debe grabar en el disco duro con la función “fwrite”, para ser leida
luego en otro archivo de MATLAB con la función “fread”.
Comprimimos la señal a un numero de bits r’ = 4, rfe = 8bits.
Graficar todas las señales, original y comprimida.
REPRODUCIR, las dos señales.
PRIMERA PARTE
EXPERIMENTO A: Grabación de audio
Capturar una señal de voz con una frecuencia de muestreo de 16 kHz, numero de bits 16,
tiempo de Adquisición de 3 segundos y número de canales 1, r’ = 4, rfe= 8bits.
CODIGO MATLAB:
clc;
clear ALL;
close ALL;
%%%%%%%%%%%%%%%%%%%%%
fs=16000;
r=16;
tadq=3;
numcan=1;
%%%%%%%%%%%%%%%%%%%%%
disp('presione enter para iniciar
grabación');
pause();
x=audiorecorder(fs,r,numcan);
recordblocking(x,tadq);
voz=getaudiodata(x,'double');
%%%%%%%%%%%%%%%%%%%%%
xx=round(voz*32767);
fid=fopen('D:\mensaje.dat','w');
fwrite(fid,xx,'int16');
fclose(fid);
%%%%%%%%%%%%%%%%%%%%%
EXPERIMENTO B
Graficaremos las señales generadas, original y comprimida.
CODIGO MATLAB
clc;
clear all;
close all;
end
end
for i=1:48000
if(fe<abs(i));
fe=abs(i);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%
ff=(2^rfe)-1;
factcod=round(fe*ff/factormax);
factdecod=factcod*factormax/ff;
yp=round(((voz/fe) * 0.48)*7);%transmisor
YP=[factcod;yp];
y=yp*factdecod/((2^(rp-1))-1);%receptor
e=y-voz;
size(y);
size(x);
Ee=(e'*e)+1E-20;
Ex=voz'*voz;
SNR=10*log10(Ex/Ee);
fcomprension=r*length(voz)/(rfe+(rp*length(voz)));
%%%%%%%%%%%%%%%%%%%%graficador las
señales%%%%%%%%%%%%
figure(1);
plot(voz);
title('Señal original');
figure(2);
plot(y);
title('Señal recuantizada');
figure(3);
plot(YP);
title('Señal al ser enviada en el transmisor');
CODIGO MATLAB
clc;
clear all;
close all;
fs=16000; %frecuencia de
muestreo
r=16; %numerode bits
tadq=3; %duracion de la
captura
numcan=1; %numero de canales
rfe=8;
factormax=1;
rp=4;
%%%%%%%%%%%%%%%%%%%abrir
archivo%%%%%%%%%%%%%%%%%%%
fid=fopen('D:\mensaje.dat','r');
x=fread(fid,'int16');
fclose(fid);
voz=x./32767;
max=0;
max=zeros(48,1000);
for i=1:48
bloque(i,1:1000)=voz(1+1000*(i-
1):1000*i);
for j=1:1000
if(bloque(i,j)<0);
max(i,j)=bloque(i,j)*-1;
else
max(i,j)=bloque(i,j);
end
end
end
%%%%%%%%%%%%%%%%%%RECUANTIZACION%%%%%%%%%%%%
%%%%%%%%%%%%
ybp=zeros(48,1000);
for i=1:48%en el transmisor
ybp(i,1:1000)=round((bloque(i,1:1000)/fe1(i,
1))*((2^(rp-1))-1));
end
yb=zeros(48,1000);
for i=1:48%en el receptor
yb(i,1:1000)=round((bloque(i,1:1000)*fe1(i,1
))/((2^(rp-1))-1));
end
UNIDO=zeros(48000,1);%matriz de 48 filas y
1000 columnas
for i=1:48% vector de 1 a 48
for j=1:1000
UNIDO(j+1000*(i-1),1)=ybp(i,j);
end
end
figure(1);
plot(bloque(1,1:1000));
title('Señal por bloques');
figure(2);
plot(voz);
title('Señal original');
figure(3);
plot(ybp(1,1:1000));
title('Señal por bloques recuantizada');
figure(4);
plot(UNIDO);
title('Señal UNIDA recuantizada');
FIGURA 1
FIGURA 2
FIGURA 3
FIGURA 4
VI. RESULTADOS
VII. CONCLUSIONES
En este laboratorio veremos cómo una señal luego de ser comprimida pasa
por un proceso de recuantizacion por factor de escala fijo, y luego se hará
la recuantizacion por bloques.
Se debe generar un determinado muestreo por cada bloque.