Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introducción a LATEXy
MATLAB:procesamiento de señales
J EFERSON A LEXANDER C RUZ
A NALISIS DE SEÑALES
i resumen
En la práctica de laboratorio se aprenden a leer audios, imágenes y videos desde MATLAB, para realizar una
transformación y almacenamiento de esas señales, en dominio del tiempo y de la frecuencia, se implementan
herramientas de software que permiten el fácil manejo y procesamiento; también se presenta la manera de
presentación de los resultados obtenidos, así como las bases que se usaran a lo largo del curso.
palabras clave
WAV, PNG, RGB, Frecuencia, video.
ii marco teorico
¿Qué son en LATEX los packages? Se llama paquete a una extensión del sistema básico que añade
nuevas funciones. Hay, literalmente, cientos de paquetes con muy diversas funciones: inserción de imágenes
(graphicx), paquetes gráficos (TikZ), internacionalización (babel, polyglossia), color (xcolor), música, ajedrez,
ediciones críticas, secuencias de amninoácidos, etc. Todos estos paquetes deberán ser declarados con ’\usepac-
kage[opciones][paquete]’.Donde entre los corchetes estará el nombre del paquete a usar.
¿Que es una distribución TEX/LATEX? A menos que se recurra un sistema en línea, el primer paso para usar
LaTeX es instalarlo en el sistema. Al ser código abierto no hay un único instalador, incluso en un determinado
sistema. A cada uno de los instaladores existentes (que difieren en detalles sobre lo que se incluye y la forma
como se gestiona y se actualiza) se lo llama distribución. La mayoría de las distribuciones actuales instalan
todo lo necesario para trabajar con LaTeX, incluyendo entornos de edición.
Comandos MATLAB:
• PRINT: Imprime una figura o guarda un archivo en un formato especificado.
• CLEAR: Quitar elementos del espacio de trabajo, liberar memoria del sistema.
• ClOSE: Borra una figura especificada.
• CLC: limpia la ventana de comando.
• ROUND: redondea al decimal o entero más cercano.
• SIN: Genera un seno, con un argumento en radianes.
• COS: Genera un coseno, con un argumento en radianes.
• LINEWIDTH: Se determina el tamaño de las líneas trazadas.
• COLOR: Cambia el color de las siguientes comandos de iconos de las máscaras.
• XLABEL: Permite darle una etiqueta al eje x.
• YLABEL: Permite darle una etiqueta al eje y.
• LEGEND: Añade una leyenda a un grafico.
• XLIM: establece los limites del eje x.
• YLIM: establece los limites del eje y.
• GRID: Muestra o oculta líneas de cuadricula de los ejes.
Para guardar variables del espacio de trabajo en el disco se utiliza el comando save. Sintaxis:
save archivo: Guarda todas las variables en el archivo especificado.
save archivo variable: Guarda solamente las variables especificadas (separadas por espacios) en el archivo
especificado.
save archivo opciones : Guarda todas las variables en el archivo especificado, utilizando alguna de las siguientes
opciones. [-append, -ascii, -mat].
ii marco teorico 2
A pesar de que el formato WAV es compatible con casi cualquier códec de audio, se utiliza principalmente
con el formato PCM (no comprimido) y, al no tener pérdida de calidad, es adecuado para uso profesional.
Para tener calidad CD de audio se necesita que el sonido se grabe a 44100 Hz y a 16 bits por cada canal de
audio. Por cada minuto de grabación de sonido se consumen unos 10 megabytes de espacio en disco. Una de
sus grandes limitaciones es que solo se pueden grabar archivos de 4 gigabytes como máximo, lo cual equivale
aproximadamente a 6,6 horas en calidad de CD de audio.
Las funciones de audio de MATLAB® leen y almacenan datos de audio de un solo canal (mono) en
un vector de columna de mx1 y datos estéreo en una matriz de mx2. En cualquier caso, m es el número
de muestras. Para los datos estéreo, la primera columna contiene el canal izquierdo y la segunda columna
contiene el canal derecho.
Los formatos .BMP y .JPG que no realiza gran esfuerzo para comprimir el gráfico (la tabla de colores
se guarda, casi, tal cual); PNG tiene algoritmos más inteligentes de compresión, pero no reducen en absoluto
la calidad del gráfico. Éstos son los que se llaman mapas de bits de compresión sin pérdida, PNG es el mejor
formato pues fue creado para mejorar y reemplazar al GIF, además de que puede ser reconocido directamente
por LaTeX.
Modelo de color RGB: Este espacio de color es el formado por los colores primarios luz, Rojo, Verde
y Azul. De hecho, RGB son las siglas en inglés de los colores Red, Green y Blue. Este sistema es el más
adecuado para representar imágenes que seránmostradas en monitores y que, finalmente, serán impresas en
impresoras de papelfotográfico.
El modo RGB asigna un valor de intensidad a cada píxel que oscila entre 0 (negro) y 255 (blanco)
para cada uno de los componentes RGB de una imagen en color. Por ejemplo, un color rojo brillante podría
tener un valor R de 246, un valor G de 20 y un valor B de 50. El rojo más brillante que se puede conseguir
es el R: 255, G: 0, B: 0.
MODELO DE COLOR CMYK: Los colores del modo CMYK son los que se corresponden con los
colores primarios luz, es decir, el amarillo al que se le suma el color negro. Este modelo se basa en la cualidad
de absorber y rechazar luz de los objetos. Si un objeto es rojo esto significa que el mismo absorbe todas las
longitudes de onda componentes de la luz exceptuando la componente roja. Los colores sustractivos (CMY) y los
aditivos (RGB) son colores complementarios. Cada par de colores sustractivos crea un color aditivo y viceversa.
Una señal aleatoria es una señal acerca de la cual existe cierto grado de incertidumbre antes de que se
presente en la realidad. La certeza y la incertidumbre de una señal aleatoria están determinadas por la
probabilidad de ocurrencia, en un transmisor, de cada valor de la fuente deseñales aleatoria.
Una señal aleatoria, tiene mucha fluctuación respecto a su comportamiento. Los valores futuros de una
señal aleatoria no se pueden predecir con exactitud, solo se pueden basar en los promedios de conjuntos de
señales con características similares.
iii desarrollo de la practica 3
El ruido blanco es una señal aleatoria, caracterizada porque sus valores en instantes de tiempo distintos no
tienen relación alguna entre sí, es decir, no existe correlación estadística entre sus valores.
El ruido blanco Gaussiano será aquel cuya función de densidad responde a una distribución normal.
Gaussiano se refiere a la distribución de voltaje de la fuente de ruido. Blanco es la fuente de ruido de potencia
de densidad espectral, que es idealmente plano con la frecuencia. En realidad, en algún punto (debido al
desfase) hay una reducción en el nivel de ruido medible.
Espectro de una señal: Es aquel que según el análisis de Fourier, cualquier señal se puede descomponer en un
número específico de señales con diferentes características. A todo este grupo de frecuencias en las que se
descompuso la señal original se le llama espectro.
Las entidades que regulan el espectro de radio son: El Ministerio de tecnologías de la información y
la comunicación, la agencia nacional del espectro, la autoridad nacional de televisión, la comisión de
regulación de comunicaciones, la superintendencia de industria y comercio y la comisión sexta del senado.
La signal processing toolbox en matlab, permite encontrar las transformadas de una señal, incluidas la
transformada rápida de Fourier (FFT), la transformada de Fourier de tiempo corto (STFT) y la transformada
de Hilbert; recibe la señal, la frecuencia de muestreo, Y retorna la magnitud de la transformada de Fourier y
el eje de frecuencias en Hz.
Antes de empezar a crear variables o funciones en Matlab, se debe asegurar que el workspace este vacio,
para esto utilizamos los siguientes comandos:
Debido que Matlab no trabaja con variables continuas en su dominio, se toma un intervalo de muestreo que
tienda a cero, con esto se emulara una señal de tiempo continuo, es decir, a simple vista la señal parecerá como
de tiempo continuo, es decir aparentemente aproximadamente continua. Este parametro de matlab aprarece
como fs .
A continuación se generará el vector de tiempos. Este se puede generar tomando un tiempo incicial de 0 y un
tiempo final de 0.1, a razon de aumento de la frecuencia aparente de Matlab y una duracion determinada.
Las señales a generar son dos sinusoidales a diferentes frecuencias f1 =2.42kHz y la otra con el doble de f1 , y se
procede a generar la grafica de la señal 1 en una primera figura 1 con color azul, de acuerdo con la distribucion
de valores RGB que usa Matlab.
Para dibujar las dos gráficas superpuestas y con la señal 2 de color naranja se utilizan los comandos:
Se recreó los parametros del gráfico de tipo tamaño de la caja y las rejillas, etiquetas y leyendas, ademas se
guarda la imagen en formato .png
Obteniendo como resultado una grafica con las dos señales, donde sus ejes X y Y esta limitados a los parametros
enviados, se aprecia tambien la cuadricula y el cuadro de leyenda:
Ahora se procede a crear una señal aleatoria, la cual debe ser guardada en un archivo tipo .DAT porque cada
vez que se ejecuta el codigo, generará una señal diferente a la anterior. Este ruido se le añadira a la señal 1 y
se graficara el total junto a la señal de ruido mas su histograma.
Durante esta seccion del laboratorio se genero y grafico una señal sinusoidal continua con una frecuencia fm
= 10kHz, con una frecuencia de muestreo fs = 500kHz para emular una señal continua.
Con esto se genera una señal sinusoidal y su espectro graficandose en el mismo plot,"(vea Figura 4)". Por otra
parte, si se quiere trabajar con señales de tiempo discreto, en lugar del comando plot se utiliza stem. Para
dar un ejemplo de esto se representara la siguiente secuencia:
x[n]=. . . , 0,0,0,0.5,1,1.5,2,2.5,3,2.5,2,1.5,1,0.5,0,0,0, . . .
Para ello primero debemos definir el vector tiempo n,para visualizar completamente la señal, se crea un vector
temporal entre [-8,8], con un paso(step) de una unidad.En codigo de Matlab seria lo siguiente:
iii desarrollo de la practica 7
Se grafican las siguientes señales en tiempo discreto con un intervalo adecuado para que se puedan apreciar
sus caracteristicas.
Funcion sign.
Funcion sawtooth.
1 fs=500;
2 t=-1:1/fs:5;
3 x1=sawtooth(2*pi*50*t);
4 stem(t,x1);
5 axis([0 0.2 -1.2 1.2]);
6 xlabel('n,[sample]');
7 ylabel('Amplitud');
8 title('Senal de tiempo discreto');
Funcion rectpuls.
Funcion tripuls.
iii desarrollo de la practica 9
Funcion gauspuls.
El comando [y, fs ]=audioread(’filename.wav’) lee un archivo con nombre filename de tipo .wav que genera
un vector como una variable en Matlab, y ademas obtiene la frecuencia de muestreo fs .
El comando y=audiowrite(’filename.wav’,x, fs ) permite crear un audio a partir de un vector x un archivo de
iii desarrollo de la practica 10
sonido con una frecuencia de muestreo fs . El archivo se guarda dentro de la carpeta donde Matlab esta
trabajando.
Se debe generar y guardar una señal sinusoidal con una amplitud de A = 0,1, una frecuencia f =100Hz, para
N =100000 muestras, y una frecuencia de muestreo de fs =22050Hz.
Al abrir un archivo .png, Matlab lo almacena en una matriz de 1x3 donde las dos primeras columnas van a
ser la dimension de la imagen y la tercera columna corresponde a los canales, para este caso en particular es
una imagen RGB, deberá tener 3 canales (512 512 3). Se obtuvo los 3 histogramas correspondienes a los datos
de las tres matrices con el siguiente script.
Las dimensiones que toma la variable gray se mantienen en proporcion 512x512 pero los canales RGB
desaparecen y se convierte en escala de grises. El histograma generado con sus valores es el siguiente:
Al ser una imagen en RGB implica que se utilizan tres colores o canales para reproducir la gama entera de
colores que componen a la imagen.Por lo que se busca ver por separado cada uno de estos canales gracias al
siguiente script.
La conversion de una imagen ya sea de color o en escala de grises a una imagen en blanco y negro
se puede hacer de una manera más manual, es decir, sin utilizar la funcion rgb2bw, escribiendo un script. El
funcionamiento de este consiste en extraer los canales RGB de la imagen por separado e inicialmente convertirla
a una imagen en escala de grises, seguido a esto se procede a hacer el tratamiento de umbralizacion(thresholding)
a la imagen en escala de grises, este metodo consiste en convertir una imagen en escala de grises a una nueva
con sólo dos niveles, de manera que los objetos queden separados del fondo.
MATLAB permite leer y reporudcir archivos de video tipo .avi, .mpg y .wmv. Para reproducir un archivo de
video en MATLAB se necesita de la siguiente linea de codigo:
además se puede almacenar el archivo en una variable y obtener información sobre el mismo
1 General Properties:
2 Name: 'rbsp_launch_720p.mp4'
3 Path: 'C:\Users\Danie\Documents\Analisis de Senales\Matlab'
4 Duration: 126.1653
5 CurrentTime: 0
6 Tag: ''
7 UserData: []
8
9 Video Properties:
10 Width: 1280
11 Height: 720
12 FrameRate: 24
13 BitsPerPixel: 24
14 VideoFormat: 'RGB24'
MATLAB permite analisar un video de manera que se puedan visualizar cada una de sus frames, visualmente
da la sensacion que se trata de una sucesion de imagenes.
iv resultados 14
La informacion del video oneCCC.wmv es la siguiente, además de esto se visualizó 4 frames en especifico f1 =1,
f2 =35, f3 =70, f4 =101
1 General Properties:
2 Name: 'oneCCC.wmv'
3 Path: 'C:\Users\Danie\Documents\Analisis de Senales\Matlab'
4 Duration: 3.3810
5 CurrentTime: 0
6 Tag: ''
7 UserData: []
8
9 Video Properties:
10 Width: 640
11 Height: 480
12 FrameRate: 29.9700
13 BitsPerPixel: 24
14 VideoFormat: 'RGB24'
iv resultados
Se evidenció durante la generación de señales, cómo se puede analisar por trozos señales como las presentadas
en la Figura 1b, que en la cual no se puede ver de manera adecuada su comportamiento o propiedades, y mediante
la limitacion de sus ejes X y Y, se obtiene un resultado más visible.Figura 2.
En el procedimiento de generar un ruido, se omitio el paso de guardar y cargar para detectar el cambio en
la grafica resultante, pues Matlab maneja un algoritmo que genera señales aleatorias cada vez que se ejecuta.
El ruido generado en la Figura16 es diferente al obtenido en la Figura3
v conclusiones 15
Por medio de la escritura de un script para amanipular imagenes, se comprobó que se puede utilizar las
funciones implementadas por Matlab tales como rgb2gray u rgb2bw o elaborar un codigo en el cual manipule
las propiedades de la imagen.
Durante la manipulacion de videos y sus frames, se consiguió extraer un frame determinado en caso de ser
necesitado, tal como esta en la Figura 15 donde se extrajeron 4 frames del archivo de video.
v conclusiones
Por medio de los códigos presentados en la guía e investigación adicional, fue posible generar, realizar
modificaciones de una señal ya sea en su tiempo continuo o discreto, sobre su vector de tiempos,limitando sus
ejes de manera grafica o enviando los parametros RGB o tipo de linea para obtener resultados más agradables
para la vista o para analizar en un punto exacto.
A raíz de los comandos presentados en MATLAB y de su forma vectorial en la que trabaja , fue posible realizar
la transformación de las señales,escribiendo los scripts correspondientes en base a las propiedades de la señal
o utilizando el comando proporcionado de la ayuda de MATLAB, ademas se comprendió el almacenamiento
de archivos tipo audio(name,nBits,nChannels) o video(width,height,nFrames).
Partiendo de las plantillas en latex proporcionadas, se logró entender y apropiar la metodología del lenguaje,el
esquema del documento, para poder hacer el presente informe, y compilarlo.
vi bibliográfia
[1] https://es.mathworks.com/products/signal/features.html
[2] https://es.wikibooks.org/wiki/Manual_de_LaTeX/Texto_completo
[3] https://www.mathworks.com/help/matlab/ref/audioread.html
[4] https://www.mathworks.com/help/matlab/ref/audiowrite.html
[5]https://www.lpi.tel.uva.es/ nacho/docencia/ing_ond_1/trabajos_03_04/sonificacion/cabroa_archivos/umbralizacion.html
[6] https://es.wikipedia.org/wiki/M %C3 %A9todo_del_valor_umbral
referencias
[1] Edward R. Tufte. Beautiful Evidence. Graphics Press, LLC, first edition, May 2006.
[2] Edward R. Tufte. The Visual Display of Quantitative Information. Graphics Press, Cheshire, Connecticut, 2001.
[3] Edward R. Tufte. Envisioning Information. Graphics Press, Cheshire, Connecticut, 1990.
[4] Edward R. Tufte. Visual Explanations. Graphics Press, Cheshire, Connecticut, 1997.
[5] Robert Bringhurst. The Elements of Typography. Hartley & Marks, 3.1 edition, 2005.
[6] Frank Mittelbach and Michel Goossens. The LATEX Companion. Addison–Wesley, second edition, 2004.
[7] Hideo Umeki. The geometry package. http://ctan.org/pkg/geometry, December 2008.