Documentos de Académico
Documentos de Profesional
Documentos de Cultura
NOMBRE CODIGO
I.- Objetivos:
II.- Materiales
Computador personal con tarjeta de sonido, SO Win7 (o mayor) y MATLAB 2013 (o mayor).
Audífonos y micrófono
Experiencia 1
1. Capturar una frase vía micrófono. La frase a pronunciar durante el tiempo de captura será:
“Laboratorio número 1 de procesamiento digital de señales”. Utilice los parámetros de la
siguiente tabla, en un rango de captura de 95%.
Frecuencia de muestreo 10000
Tiempo de captura 4 segundos
Número de canales 1
Bits/muestra 16
Formato ‘double’
1
2. Grabar la señal a utilizar en un archivo como se indica a continuación
audiowrite (' senal . wav ,' x , Fs)
Donde: senal, es el nombre del archivo con que se almacena la señal en el disco duro; x,
es el vector donde está la señal a almacenar; y Fs, es la frecuencia de muestreo con que se
almacena.
2
5. Graficar la señal capturada en el tiempo, utilizando el comando “plot”. El eje de abscisas
debe estar en segundos.
yp=round
(
x∗( 2(rp−1 )−1 )
fe )
yp∗fe
y=
(2 ( rp−1 )
−1 )
e= y−x
3
Ee=∑ (e .∗e)+10
−20
Ex=sum( x .∗x )
Ex=0.013 Ee=0.013
4
11. Obtenga el factor de carga aplicando la formula teórica
5
13. Recuantizar la señal a rp=6 utilizando el procedimiento anterior.
6
16. Obtenga el factor de carga aplicando la formula teórica
7
18. Recuantizar la señal a rp=9 utilizando el procedimiento anterior
8
21. Obtenga el factor de carga aplicando la formula teórica
23. Realice en MATLAB la gráfica SNR (eje ordenadas) vs. rp (eje abscisas). con las SNR
obtenidas para cada valor de rp. Graficar la curva de rp (eje de abscisas) vs SNR dB (eje de
ordenadas). Utilizar el comando stem y en cada valor de rp poner el valor de SNR con “data
tips”.
9
24. ¿De acuerdo a los factores de carga obtenidos en cada proceso de recuantización?
Pregunta: ¿Son iguales?, ¿Deben ser iguales o no? Justifique.
Sí, los factores de carga son iguales ya que solo dependen de la señal de entrada.
Sin embargo, el SNR si varia, ya que esta relacionado con el ruido que se genera al
momento de cuantizar. Dependiendo directamente de la cantidad de bits de recuantizacion.
%% Captura de Audio
recorder = audiorecorder(Fs, r, nc, 1); % Objeto para la
grabación de audio
disp('Start speaking.')
recordblocking(recorder, tc); % Permite que se complete el audio
sin un pause
disp('End of Recording.');
2. LECTURA DE AUDIO
close all; clear; clc;
%% Carga de la señal
[x, Fs] = audioread('senal.wav');
%% Cantidad de Muestras
tam = length(x);
fprintf('Cantidad de muestras: %i\n', tam);
%% Ploteo
tc = 4;
T = 1/Fs;
t = 0:T:tc - T;
plot(t, x);
grid on;
xlabel('Tiempo (s)');
ylabel('Amplitud');
title('Señal capturada');
%% Recuantización
rp = 3;
vmax = 2^(rp - 1);
fe = 1; % Factor de Escala -> 1 para double
yp = round(x*(vmax - 1)/fe); % Vector de Enteros
y = yp*fe/(vmax - 1); % Vector reproducible [-1, 1]
e = y - x; % Ruido de Recuantización
y_max = 1;
y_min = -1;
y_L = 2^rp - 1;
ICy = (y_max - y_min)/(y_L - 1);
fprintf('El intervalo de cuantizacion del vector de enteros es:
%0.3f\n', ICy);
%% Factor de Carga
x_max = 1; % Valor máximo de la señal de entrada -> Es 1 para
doubles en Matlab
mean_x = mean(x); % Media para el cálculo de la varianza
var_x = sum(x.*x) - mean_x^2; % Varianza de la señal de entrada
sigma_x = sqrt(var_x); % Desviación estándar de la señal de
entrada
%% Recuantización
rp = 6;
vmax = 2^(rp - 1);
fe = 1; % Factor de Escala -> 1 para double
yp = round(x*(vmax - 1)/fe); % Vector de Enteros
y = yp*fe/(vmax - 1); % Vector reproducible [-1, 1]
e = y - x; % Ruido de Recuantización
y_max = 1;
y_min = -1;
y_L = 2^rp - 1;
ICy = (y_max - y_min)/(y_L - 1);
fprintf('El intervalo de cuantización del vector de enteros es:
%0.3f\n', ICy);
%% Factor de Carga
x_max = 1; % Valor máximo de la señal de entrada -> Es 1 para
doubles en Matlab
mean_x = mean(x); % Media para el cálculo de la varianza
var_x = sum(x.*x) - mean_x^2; % Varianza de la señal de entrada
sigma_x = sqrt(var_x); % Desviación estándar de la señal de
entrada
%% Recuantización
rp = 9;
vmax = 2^(rp - 1);
fe = 1; % Factor de Escala -> 1 para double
yp = round(x*(vmax - 1)/fe); % Vector de Enteros
y = yp*fe/(vmax - 1); % Vector reproducible [-1, 1]
e = y - x; % Ruido de Recuantización
y_max = 1;
y_min = -1;
y_L = 2^rp - 1;
ICy = (y_max - y_min)/(y_L - 1);
fprintf('El intervalo de cuantización del vector de enteros es:
%0.3f\n', ICy);
%% Factor de Carga
x_max = 1; % Valor máximo de la señal de entrada -> Es 1 para
doubles en Matlab
mean_x = mean(x); % Media para el cálculo de la varianza
var_x = sum(x.*x) - mean_x^2; % Varianza de la señal de entrada
sigma_x = sqrt(var_x); % Desviación estándar de la señal de
entrada
6. GRAFICA SNR VS rp
close all; clear; clc;
[x, Fs] = audioread('senal.wav');
x_max = 1; % Valor máximo de la señal de entrada -> Es 1 para
doubles en Matlab
mean_x = mean(x); % Media para el cálculo de la varianza
var_x = sum(x.*x) - mean_x^2; % Varianza de la señal de entrada
sigma_x = sqrt(var_x); % Desviación estándar de la señal de
entrada
%pepito= (x_max^2 *2^(-2*rp))/3;
gamma = x_max/sigma_x; % Factor de Carga
rp=[3,6,9];
SNR_gamma = 6*rp + 10*log10(3/gamma^2);
x=[rp];
y=[SNR_gamma];
grid on
stem(x,y,'ro-','markersize',5,'linewidth',2);
xlabel('(rp)'); 14
ylabel('SNR');
title('Gráfica SNR vs. rp');
15