Documentos de Académico
Documentos de Profesional
Documentos de Cultura
NOMBRE CODIGO
Alexander Javier Llanos Rodríguez 20160717E
20164163D
Tomairo Laura,Meik Kevin
20162226I
Tello Trujillo,Ketsmell Jheydol
I.- Objetivos:
II.- Materiales
Frecuencia de 8000
muestreo
Tiempo de captura 3 segundos
Número de canales 1
Bits/muestra 8
Formato ‘Int16’
pause(0.5);
Fs = 8000;
tc = 3;
Nc = 1;
r = 16;
record(audio,tc);
pause(tc+0.5);
x=getaudiodata(audio, 'int16');
x=x';
tam=length(x);
%Graficamos 50 muestras
figure(1)
[val, idx] = max(x);
x1=x(idx:idx+50);
subplot(2,1,1),stem(x1),xlabel('muestras'),ylabel('Señal
Capturada al 90%')
axis([0 50 -3.5e4 3.5e4]);
fe=¿ 32768
L−1
1
x́ 2= ∑ x2 (n)
L n=0
σ 2X = x´2− x́ 2
σ X = √σ 2X
X max
γ X=
σX
X=[];
for i=1:1:length(x)
X(i) = x(i)^2;
end
x1 = 1/length(x)*sum(x);
x2 = 1/length(x)*sum(X);
var_x = x2-x1^2;
desv_x = sqrt(var_x);
Fc = fe/desv_x;
x∗( 2 rp−1 −1 )
( )
yp=round ( fe )
yp∗fe
y=
( rp−1 )
(2 −1 )
e= y−x
Ee=∑ ( e .∗e)+10−20
Ex=sum( x .∗x )
SNR=10*log 10 ( ExEe )
rp = 14;
%Vector de Enteros
yp=[];
for i=1:1:tam
yp(i)=round(1/fe*x(i)*(2^(rp-1)-1));
end
%Vector reproducible
y=[];
for i=1:1:tam
y(i)=yp(i)*fe/(2^(rp-1)-1);
end
%Vector de error
e=y-x;
%Energía del ruido
Ee = sum(e.*e)+10^(-20);
%Energía de la señal
Ex = sum(x.*x);
%SNR
SNR = 10*log10(Ex/Ee);
SNR =80.75
Ex=3581757342300.00 Ee=32287.12
Ex=725305861815.75 Ee=31839.39
Experiencia 2
1. Capturar una señal de silbido vía micrófono, utilizando los parámetros de la
siguiente tabla, en un rango del 90%
Frecuencia de 8000
muestreo
Tiempo de captura 3 segundos
Número de canales 1
Bits/muestra 16
Formato ‘double’
Fs= 8000; %frecuencia de muestreo 8000 es el estandar
r=16;%bits de muestra
Nc=1;%numero de canales
tc=3;%tiempo de captura
%%captura
pepito=audiorecorder(Fs,r,Nc,1);
record(pepito,tc)
pause(tc+0.5)
j=0.9*getaudiodata(pepito,'double')
audiowrite('senal.wav',x,Fs);
u =0:1/Fs:49*(1/Fs);
n1= 13
yp1=round(x*(2^(n1-1)-1))
ya1=yp1/((2^(n1-1)-1));
e1=ya1-x;
figure,
plot(u,yp1)
title('reacuantizacion1')
hold on
plot(u,ya1)
scatter(u,e1,'filled');
hold off
legend('yp','y','e')
%%intervalo de cuantizacion
intervalo1=2/(2^n1-2)
%%SNR1
Ex1=sum(x.*x)
Ee1=sum(e1.*e1)+10^-20
SNR1=10*log(Ex1/Ee1)
∆=2.4420∗10−4
1−(−1)
ecuacion :∆=
2 rp −2
%%SNR1
Ex1=sum(x.*x)
Ee1=sum(e1.*e1)+10^-20
SNR1=10*log(Ex1/Ee1)
SNR=158.7350 dB
u =0:1/Fs:49*(1/Fs);
n2= 11
yp2=round(x*(2^(n2-1)-1))
ya2=yp2/((2^(n2-1)-1));
e2=ya2-x;
figure,
plot(u,yp2)
title('reacuantizacion2')
hold on
plot(u,ya2)
scatter(u,e2,'filled');
hold off
legend('yp','y','e')
%%intervalo de cuantizacion
intervalo2=2/(2^n2-2)
∆=1
vector de enteros , por definicion en el vector de enteros el intervalo
siempre es 1.
∆=9.7752∗10−4
1−(−1)
ecuacion :∆=
2 rp −2
Ex2=sum(x.*x)
Ee2=sum(e2.*e2)+10^-20
SNR2=10*log(Ex2/Ee2)
SNR=131.7861dB
12. Verifique la mejora en la SNR respecto a rp=13. ¿En cuántos dBs mejora?
baja en 26.9490 dB
u =0:1/Fs:49*(1/Fs);
n3= 7
yp3=round(x*(2^(n3-1)-1))
ya3=yp3/((2^(n3-1)-1));
e3=ya3-x;
figure,
plot(u,yp3)
title('reacuantizacion3')
hold on
plot(u,ya3)
scatter(u,e3,'filled');
hold off
legend('yp','y','e')
Y VS e
15. Obtenga el intervalo de cuantización en el vector reproducible y en el vector
de enteros. Indique la operación para obtener lo requerido.
∆=1
vector de enteros , por definicion en el vector de enteros el intervalo
siempre es 1.
∆=0.0159
1−(−1)
ecuacion :∆=
2 rp −2
%%SNR1
Ex3=sum(x.*x)
Ee3=sum(e3.*e3)+10^-20
SNR3=10*log(Ex3/Ee3)
SNR=75.6692dB
17. Verifique la mejora en la SNR respecto a rp=11. ¿En cuántos dBs mejora?
baja en 56.1169 dB
18. Realice en MATLAB la gráfica SNR vs. rp. con los datos obtenidos en los
puntos 7, 11 y 16. ¿Qué puede comentar al respecto? En el eje de ordenadas
va la SNR.
SNR VS rp
Ejercicio 1
Paso 1: Capturar una señal de audio
pause(0.5);
Fs = 8000;
tc = 3;
Nc = 1;
r = 16;
audio = audiorecorder(Fs, r, Nc);
record(audio,tc);
pause(tc+0.5);
x=getaudiodata(audio, 'int16');
x=x';
tam=length(x);
Paso 2: Ajuste la señal de entrada entre un 80% a 90% del rango total.
%Como estamos usando el formato int16, el rango es de -32768 to 32767
if(max(abs(x)))>0.8*32768 && (max(abs(x)))<0.9*32768
Cálculo de la Recuantización
rp = 14;
%Vector de Enteros
yp=[];
for i=1:1:tam
yp(i)=round(1/fe*x(i)*(2^(rp-1)-1));
end
%Vector reproducible
y=[];
for i=1:1:tam
y(i)=yp(i)*fe/(2^(rp-1)-1);
end
%Vector de error
e=y-x;
%Energía del ruido
Ee = sum(e.*e)+10^(-20);
%Energía de la señal
Ex = sum(x.*x);
%SNR
SNR = 10*log10(Ex/Ee);
Paso 9
fprintf('El valor de Ee es: %.2f\n', Ee)
fprintf('El valor de Ex es: %.2f\n', Ex)
Paso 10
fprintf('El valor del SNR es: %.2f\n', SNR)
fprintf('El valor del Factor de Carga es: %.2f\n', Fc)
Paso 11
%Repetir para una señal al 45%
xx = 0.45*x;
subplot(2,1,2),stem(xx(idx:idx+50),'color','r'),xlabel('muestras'),ylabel('Señal Capturada
al 45%')
axis([0 50 -3.5e4 3.5e4]);
fprintf(' \n');
fprintf('~ PARA LA SEGUNDA SEÑAL ~\n');
fprintf(' \n');
fprintf('El valor mínimo de la señal es: %.2f\n', min(xx))
fprintf('El valor máximo de la señal es: %.2f\n', max(xx))
fprintf('Factor de Escala: %.2d\n', fe)
XX=[];
for i=1:1:length(x)
XX(i) = xx(i)^2;
end
xx1 = 1/length(xx)*sum(xx);
xx2 = 1/length(xx)*sum(XX);
var_xx = xx1-xx1^2;
desv_xx = sqrt(var_xx);
Fc2 = fe/desv_xx;
rp = 14;
%Vector de Enteros
yp2=[];
for i=1:1:tam
yp2(i)=round(1/fe*xx(i)*(2^(rp-1)-1));
end
%Vector reproducible
y2=[];
for i=1:1:tam
y2(i)=yp2(i)*fe/(2^(rp-1)-1);
end
%Vector de error
e2=y2-xx;
%Energía del ruido
Ee2 = sum(e2.*e2)+10^(-20);
%Energía de la señal
Ex2 = sum(x2.*x2);
%SNR
SNR2 = 10*log10(Ex2/Ee2);
fprintf('El valor de Ee es: %.2f\n', Ee2)
fprintf('El valor de Ex es: %.2f\n', Ex2)
fprintf('El valor del SNR es: %.2f\n', SNR2)
fprintf('El valor del Factor de Carga es: %.2f\n', Fc2)
else
fprintf('El valor máximo fue: %.2f\n', max(x))
fprintf('Intente otra vez\n');
end
50 muestras
x=j(1:50)
1 recuantizar la señal
u =0:1/Fs:49*(1/Fs);
n1= 13
yp1=round(x*(2^(n1-1)-1))
ya1=yp1/((2^(n1-1)-1));
e1=ya1-x;
figure,
plot(u,yp1)
title('reacuantizacion1')
hold on
plot(u,ya1)
scatter(u,e1,'filled');
hold off
legend('yp','y','e')
%%intervalo de cuantizacion
intervalo1=2/(2^n1-2)
%%SNR1
Ex1=sum(x.*x)
Ee1=sum(e1.*e1)+10^-20
SNR1=10*log(Ex1/Ee1)
2 recuantizar la señal
u =0:1/Fs:49*(1/Fs);
n2= 11
yp2=round(x*(2^(n2-1)-1))
ya2=yp2/((2^(n2-1)-1));
e2=ya2-x;
figure,
plot(u,yp2)
title('reacuantizacion2')
hold on
plot(u,ya2)
scatter(u,e2,'filled');
hold off
legend('yp','y','e')
%%intervalo de cuantizacion
intervalo2=2/(2^n2-2)
%%SNR1
Ex2=sum(x.*x)
Ee2=sum(e2.*e2)+10^-20
SNR2=10*log(Ex2/Ee2)
3 recuantizar la señal
u =0:1/Fs:49*(1/Fs);
n3= 7
yp3=round(x*(2^(n3-1)-1))
ya3=yp3/((2^(n3-1)-1));
e3=ya3-x;
figure,
plot(u,yp3)
title('reacuantizacion3')
hold on
plot(u,ya3)
scatter(u,e3,'filled');
hold off
legend('yp','y','e')
%%intervalo de cuantizacion
intervalo3=2/(2^n3-2)
%%SNR1
Ex3=sum(x.*x)
Ee3=sum(e3.*e3)+10^-20
SNR3=10*log(Ex3/Ee3)
%%grafica obtenida entre SNR y rp
f=[SNR1 SNR2 SNR3]
g=[n1 n2 n3]
figure,
scatter(g,f,'filled');
title('SNR VS rp')