Vous êtes sur la page 1sur 7

PROCSAMIENTO DIGITAL DE SEALES LABORATORIO N4

OPERACIONES CON SEALES


Marcos Bernard, Calixto Lpez
1310174@utp.edu.pe

Quiroz Quispe, Max Jos


1320@utp.edu.pe

RESUMEN: En el presente artculo, se presenta


la resolucin del laboratorio N4, en el cual se introduce
el concepto operaciones, muestreo y reproduccin de
seales de audio utilizando el software MATLAB, en los
casos presentados se introducen seales de diversos
tipos a las cuales se les aplicara estos conceptos.

1.2. Una vez aqu damos click en el botn agregar o


podemos arrastrar desde el escritorio el archivo de
audio.

INTRODUCCIN
Muchas veces es necesaria la utilizacin de un software
(herramienta) para poder realizar operaciones con
distintas seales ya sea en el mbito de la msica o el
procesamiento digital de imgenes, para esto en el
presente artculo se da una introduccin a este tema tan
valorado en el mbito de las telecomunicaciones,
ingeniera electrnica y muchos otro mbitos de la
ingeniera utilizando seales de audio.

Figura 1.2. Paso 1.2


1.3. Elegir el formato a convertir (verde) y ruta de
guardado (azul), luego dar click en convertir (morado).

Cmo convertir una seal de audio en un


archivo .txt?
Existen muchas maneras de poder realizar esta
operacin, de las cuales, se presentara la desarrollada
en el presente artculo, para ello es necesario seguir los
siguientes pasos:
1.- Pasos cambiar el formato de audio (OPCIONAL).
Supongamos que tenemos un archivo de audio en
cualquier formato (.mp3; .WAV; .ogg; etc.), para poder
cambiar el formato utilizaremos un software de
conversin, para este caso se utiliz el Atube Catcher, el
cual posee este tipo de herramienta.
1.1. Abrimos el software y nos dirigimos a la pestaa
Video Converter:

Figura 1.3. Paso 1.3


2. Obtener los datos de la seal.
Aqu se obtendrn los datos que sern utilizados para la
realizar la grfica y su posterior operacin (suma,
muestreo, reproduccin).
2.1 Abrir el software Matlab y luego dar click en open,
se abrir la ventana de bsqueda, elegir la ruta de
ubicacin del archivo de audio (verde), si no aparece,
colocar la opcin en all files (rojo) de dicha ventana.
Luego dar click en abrir (morado).

Figura 1.1 Paso 1.1

PROCSAMIENTO DIGITAL DE SEALES LABORATORIO N4

Figura 2.1. Paso 2.1


2.2. En esta ventana se puede cambiar el nombre de los
datos (verde), tener cuidado con cambiar las longitudes
(rojo) esto podra causar errores, dar click en finish
(morado).

Figura 2.3. Paso 2.3


2.4. Finalmente podemos copiar y pegar estos datos
(columna 1 y columna 2) en un archivo de texto.

Figura 2.2. Paso 2.2


2.3. Una vez en la ventana principal se observa una
matriz de dos columnas (verde), damos doble click en
este dato (data) y nos mostrara sus elementos en un
formato tipo Excel (azul).
*Nota: las dos columnas aparecen debido a que la
seal, de alguna manera se ha dividido en dos seales
parecidas, la suma de estas dos generara un audio
fidedigno al original.
Figura 2.4. Datos obtenidos en archivos .txt.

PROCSAMIENTO DIGITAL DE SEALES LABORATORIO N4

Cmo convertir un .txt a un vector de


datos?
Para poder realizar este objetivo se hace
necesario realizar las siguientes instrucciones.

Se abrir una ventana, en la cual se puede importar los


datos manualmente o crear una funcin, hasta un script
si se desea.

1.- Aadir nuestra carpeta a la ruta de trabajo.


Primero debemos guardar nuestros archivos .txt en una
carpeta, luego la aadimos a la ruta de trabajo de
Matlab, este paso se agiliza copiando nuestra carpeta en
la carpeta de trabajo de Matlab, dando click derecho a la
carpeta ya copiada seleccionamos la opcin add to
path.

Figura 3.3. Generando la funcin de importacin.


Automticamente se generara una funcin que importara
los datos cuyos parmetros sern, la ruta del archivo .txt
(verde), el inicio de lectura de informacin (rojo) y el fin
de lectura de informacin (azul) que generalmente es
reemplazada por la constante inf, la cual dar una
lectura de todos los datos del arreglo sin importar su
longitud, luego, guardamos la funcin en la carpeta de
trabajo de Matlab.
En este caso nuestra funcin se llama importdata y
nuestro archivo creado es importdata.m (morado).
Notar que el nombre de la funcin debe coincidir con el
nombre del archivo (morado).

Figura 3.1. Aadiendo nuestra carpeta de archivos.


2.- Crear la funcin de conversin.
El hecho de crear la funcin no es un tanto cierto, ya que
Matlab nos da la opcin de poder crearla, ahorrndonos
trabajo y tiempo al momento de la programacin.

Figura 3.4. Parmetros de la funcin importdata.


Figura 3.2. Importando datos de un archivo .txt.

PROCSAMIENTO DIGITAL DE SEALES LABORATORIO N4

.
Luego, a modo de ejemplo probamos la funcin tomando
el archivo data1.txt que obtuvimos en el primer manual
(pgina 1) accin que se aprecia en la siguiente figura.

2. Abrir uno de los archivos para verificar que se


trata de datos numricos. Enseguida se
muestra el contenido del archivo

Figura 4.2. Verificacin de datos contenidos en el


archivo data1.txt.
3. Cargar los datos del sonido digitalizado (archivo
de texto) al Workspace de Matlab. Guardar en
una variable con el nombre respectivo.

Figura 3.5. Vector obtenido al importar el archivo


data1.txt.

%%%%%%%%%%%%%%%%%%%%%%%%%%%

data1=importdata('data1.txt',1,inf);
data2=importdata('data2.txt',1,inf);
data3=importdata('data3.txt',1,inf);
%%%%%%%%%%%%%%%%%%%%%%%%%

En la Fig. 3.5 se puede notar que luego de llamar a la


funcin con sus parmetros antes mencionado, se crea
un vector llamado en este caso ans, el cual contendr
a los elementos del archivo data1.txt.

DESARROLLO DE ENUNCIADOS
Para los siguientes enunciados, debido a la falta de
informacin se utilizaron audios aleatorios (tono, msica,
voz).
1. Guardar los archivos de texto con el sonido
digitalizado en la carpeta work de Matlab.
Figura 4.3. Datos obtenidos de los archivos de audio.
4. Generar el vector n1, n2, n3 correspondiente
al tiempo de las variables. Deben tener el
mismo nmero de elementos que los que tiene
la variable.
%%%%%%%%%%%%%%%%%%%%%%%%%%%

n1=1:length(data1);
n2=1:length(data2);
n3=1:length(data3);

%%%%%%%%%%%%%%%%%%%%%%%%%%%
Figura 4.1. Aadiendo carpeta LAB4PDS al Path
de Matlab.

PROCSAMIENTO DIGITAL DE SEALES LABORATORIO N4

Figura 4.4. Vectores dominio correspondientes a los


vectores data.
5. Graficar cada una de las seales usando la
funcin stem (usar puntos en la grfica).
%%%%%%%%%%%%%%%%%%%%%%%%%%%

n1=1:length(data1);
n2=1:length(data2);
n3=1:length(data3);

Figura 5.3. Seal 3 (msica).


6. Reproducir las seales como sonido a una
frecuencia de muestreo de 44100 Hz utilizando
la funcin de Matlab sound(seal, Fs). Fs es la
frecuencia de muestreo, en este caso
Fs=44100.

%%%%%%%%%%%%%%%%%%%%%%%%%%%

7.

Reproducir las mismas seales con una


frecuencia de muestreo de 30000 y observar la
diferencia en el sonido. Anotar lo que sucede y
dar una explicacin.

La seal suena lenta, esto puede ser debido a que el


muestreo al no cumplir el criterio de Nyquist toma
valores muy lejanos a los valores consecutivos de la
seal.
8.

Figura 5.1. Seal 1 (tono).

Reproducir las mismas seales con una


frecuencia de muestreo de 60000 y observar la
diferencia en el sonido. Anotar lo que sucede y
dar una explicacin.

La seal suena rpida, esto puede ser debido a que el


muestreo al no cumplir el criterio de Nyquist toma
valores muy cercanos provocando un solapamiento
entre los valores de amplitud de la seal.

9. Obtener la suma de las cuatro seales y


guardarla en una variable con nombre
datosuma.
Para generar la suma se necesit obtener vectores
con igual dimensin, debido a que no se
encontr una funcin adecuada, se decidi
copiar y pegar el vector ms largo en la
segunda columna de los otros vectores para
luego eliminarlo de cada vector y as obtener
vectores de la misma dimensin con ceros
aadidos.

Figura 5.2. Seal 2 (tono).

PROCSAMIENTO DIGITAL DE SEALES LABORATORIO N4

CONCLUSIONES
1. Existe un valor nominal para cada seal de audio,
este es al que fue muestreado, en este caso fue de
44100Hz determinado por el software de conversin de
audio (aTubeCatcher).
2. La velocidad del audio reproducido depende de la
frecuencia de muestreo aplicado, esta reproduccin se
escuchara rpida y aguda si la frecuencia de
muestreo es mayor al valor nominal (en este caso
44100Hz) o lenta y grave si es menor a este.

Figura 9.1. Generacin del vector datosuma.

3. Al realizar la suma de las cuatro variables da como


resultado una sola grfica y en el audio reproducido se
escuchan todas estas variables mezcladas.

10. Graficar la seal datosuma y reproducirla como


sonido.

4. Se concluy que existen maneras ms efectivas de


desarrollar los enunciados, siendo el mostrado en el
presente artculo un modelo bsico de este desarrollo.

%%%%%%%%%%%%%%%%%%%%%%%%%%%
datosuma=data1Copy+data2Copy+data3Copy;
%%%%%%%%%%%%%%%%%%%%%%%%%%%

Figura 10.1. Suma de seales.

PROGRAMA
clc
clear
close all
%% Procesamiento Digital De Seales
%
Laboratorio N3
%%
OPERACIONES CON SEALES

%%
%
%%

%% 3. Cargar los datos del sonido digitalizado (archivo de texto) al


%
Workspace de Matlab. Guardar en una variable con el nombre respectivo.
data1=importdata('data1.txt',1,inf);
data2=importdata('data2.txt',1,inf);
data3=importdata('data3.txt',1,inf);
%%Esperar aproximadamente 1 minuto por cada archivo importado.
%% 4. Generar el vector n1, n2, n3 correspondiente al tiempo de las
%
variables. Deben tener el mismo nmero de elementos que los que tiene
%
la variable.
n1=1:length(data1);
n2=1:length(data2);
n3=1:length(data3);
%% 5.Graficar cada una de las seales usando la funcin stem.
%
(usar puntos en la grfica).
stem(n1,data1,'.');
figure
stem(n2,data2,'.');
figure
stem(n3,data3,'.');
%%6. Reproducir las seales como sonido a una frecuencia de muestreo de
%
44100 Hz utilizando la funcin de Matlab sound(seal, Fs). Fs es la
%
frecuencia de muestreo, en este caso Fs=44100.
%
%% sound(data1,44100);
Suena sonido 1
%% sound(data2,44100);
Suena sonido 2
%% sound(data3,44100);
Suena sonido 3
%
%%7. Reproducir las mismas seales con una frecuencia de muestreo de 30000
%
y observar la diferencia en el sonido. Anotar lo que sucede y dar una
%
explicacin.
%
%% sound(data1,30000);
Suena sonido 1
%% sound(data2,30000);
Suena sonido 2
%% sound(data3,30000);
Suena sonido 3
%
%%8. Reproducir las mismas seales con una frecuencia de muestreo de 60000
%
y observar la diferencia en el sonido. Anotar lo que sucede y dar una
%
explicacin.
%% sound(data1,60000);
%Suena sonido 1
%% sound(data2,60000);
%Suena sonido 2
%% sound(data3,60000);
%Suena sonido 3
%%9. Obtener la suma de las cuatro seales y guardarla en una variable con
%
nombre datosuma.
%%%%%%%%%%
LA SEALES data1Copy, SE OBTIENEN MANUALMENTE %%%%%%%%%%%%%
datosuma=data1Copy+data2Copy+data3Copy;
%%10. Graficar la seal datosuma y reproducirla como sonido.
nsuma=[1:length(datosuma)];
figure
stem(nsuma,datosuma,'.');
sound(datosuma,44100);