PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD...

61
PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER ´ IA DEPARTAMENTO DE INGENIER ´ IA EL ´ ECTRICA Y ELECTR ´ ONICA Para obtener el t´ ıtulo de: INGENIERO ELECTR ´ ONICO Por: SAMUEL EDUARDO ROZO S ´ ANCHEZ odigo: 200520425 T ´ ITULO: ORDENAMIENTO DE SE ˜ NALES LINEALES A TROZOS Y FILTRO MEDIANA AN ´ ALOGO Sustentado el d´ ıa 17 de junio del 2011 frente al jurado: Composici´ on del Jurado: Asesor: Alfredo Restrepo. Profesor Asociado, Universidad de los Andes. Jurado: Mario Valderrama. Universidad de los Andes. 1

Transcript of PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD...

Page 1: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

PROYECTO FIN DE CARRERA

Presentado a:

LA UNIVERSIDAD DE LOS ANDES

FACULTAD DE INGENIERIA

DEPARTAMENTO DE INGENIERIA ELECTRICA Y ELECTRONICA

Para obtener el tıtulo de:

INGENIERO ELECTRONICO

Por:

SAMUEL EDUARDO ROZO SANCHEZ

Codigo: 200520425

TITULO: ORDENAMIENTO DE SENALES LINEALES A TROZOS YFILTRO MEDIANA ANALOGO

Sustentado el dıa 17 de junio del 2011 frente al jurado:

Composicion del Jurado:

Asesor: Alfredo Restrepo. Profesor Asociado, Universidad de los Andes.

Jurado: Mario Valderrama. Universidad de los Andes.

1

Page 2: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Indice

1 INTRODUCCION 4

2 OBJETIVOS 52.1 Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Alcance y productos finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 DESCRIPCION DE LA PROBLEMATICA Y JUSTIFICACION DEL TRA-BAJO 5

4 MARCO TEORICO, CONCEPTUAL E HISTORICO 64.1 Marco teorico, conceptual e historico . . . . . . . . . . . . . . . . . . . . . . . 6

4.1.1 Reordenamiento no decreciente y calculo de la mediana para senalesanalogas. Aspectos teoricos . . . . . . . . . . . . . . . . . . . . . . . . 6

4.1.2 RND de senales analogas y filtro mediana analogo, nocion matematica 64.1.3 La mediana como un funcional lineal . . . . . . . . . . . . . . . . . . . 84.1.4 Funciones monotonas discontinuas . . . . . . . . . . . . . . . . . . . . 104.1.5 Tipos de discontinuidades . . . . . . . . . . . . . . . . . . . . . . . . . 104.1.6 Funciones monotonas . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.1.7 Acerca de los funcionales lineales sobre el espacio de funciones discon-

tinuas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5 DEFINICION Y ESPECIFICACION DEL TRABAJO 175.1 Definicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.2 Especificaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

6 METODOLOGIA DE TRABAJO 186.1 Plan de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186.2 Busqueda de informacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

6.2.1 Alternativas de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . 19

7 TRABAJO REALIZADO 197.1 Descripcion del resultado final y trabajo computacional . . . . . . . . . . . . 197.2 RND y mediana analoga de senales lineales a trozos . . . . . . . . . . . . . . 197.3 Reordenamiento de senales lineales a trozos . . . . . . . . . . . . . . . . . . . 207.4 Calculo del RND de una senal con ventana movil. . . . . . . . . . . . . . . . 21

7.4.1 Cambios en el RND con ventana movil . . . . . . . . . . . . . . . . . . 237.4.2 Cambios en los valores de la mediana con ventana movil . . . . . . . . 25

7.5 Algoritmos para el calculo del RND y mediana movil de senales lineales a trozos 297.6 Algoritmo para el calculo del RND de una senal lineal a trozos . . . . . . . . 297.7 Algoritmo para el calculo del RND de una senal vista por una venta de ancho w 307.8 Algoritmo para calcular la mediana de una senal cuando la ventana es movil 30

7.8.1 Algoritmo para identificar los puntos de cambio cualitativo . . . . . . 317.8.2 Algoritmo para el calculo de la mediana con ventana movil . . . . . . 31

7.9 Pequena aplicacion de los algoritmos implementados . . . . . . . . . . . . . . 32

2

Page 3: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

8 VALIDACION DEL TRABAJO 358.1 Metodologıa de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358.2 Validacion de los resultados de trabajo . . . . . . . . . . . . . . . . . . . . . . 368.3 Evaluacion del plan de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . 37

9 DISCUSION 38

10 CONCLUSIONES 39

11 AGRADECIMIENTOS 40

12 BIBLIOGRAFIA 41

13 APENDICES 4113.1 Algoritmo de Ordenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4113.2 Interfaz grafica y ventana movil . . . . . . . . . . . . . . . . . . . . . . . . . . 4313.3 Algoritmo de mediana movil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4913.4 Resumen Ejecutivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

13.4.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5813.4.2 Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5813.4.3 Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5813.4.4 Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5813.4.5 Conceptos claves del reordenamiento no decreciente . . . . . . . . . . 5813.4.6 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3

Page 4: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

1 INTRODUCCION

El filtro mediana analogo hace parte de una familia de filtros conocidos como L-filtros, ofiltros de estadısticas de orden. El estudio de estos filtros, para el caso de senales discretas,ha sido ampliamente desarrollado por largo tiempo y es bastante comun, oir hablar del filtromediana discreto, para el procesamiento de senales. Sin embargo, el caso continuo al que serefiere este trabajo ha sido, comparativamente, poco desarrollado.

Uno de los mayores retos a la hora de plantear un L-filtro analogo, consiste en el desa-rrollo del concepto de ordenamiento del rango de una senal. A diferencia del caso discreto,en el cual, la ventana del filtro contiene un conjunto finito de datos, el rango de una senalanaloga es infinito, haciendo necesaria una aproximacion diferente al problema de formularuna estadıstica de orden. Por esta razon se hace necesario el estudio de algunos conceptosmatematicos y el estudio de algunas definiciones importantes que permitan el correcto desa-rrollo del tema. Las referencias [1] y [3] constituyen la mayor fuente bibliografica referentes aeste asunto.

Por otra parte, las senales lineales a trozos, brindan ciertas propiedades que facilitan elcalculo del reordenamiento de la senal y posteriormente su mediana, es por esto que este tipode senales son las principales protagonistas del presente trabajo. Cabe anotar que una senallineal a trozos, bajo ciertas condiciones, puede constituir una buena aproximacion de unasenal analoga, y que por lo tanto el estudio del filtro mediana analogo para senales lineales atrozos, resulta ser una aproximacion del problema mas general.

El trabajo comienza con el analisis de los pasos necesarios para el calculo de la mediana deuna senal analoga. Este proceso incluye hacer un reordenamiento monotono de la senal originaly, posteriormente, tomar el valor de la senal reordenada a mitad del dominio. Por esta razon,para estudiar el filtro mediana analogo y sus generalizaciones, en terminos matematicos, bastaestudiar las propiedades de los funcionales sobre el espacio vectorial de funciones discontinuasmonotonas, definidas dentro de un intervalo finito.

Primero se consideraran algunos elementos basicos de estos funcionales que constituyenel marco teorico de este trabajo. Posteriormente se analizaran los tipos de discontinuidadesposibles en el reordenamiento no decreciente de una senal, que seran utilizados para el calculode la mediana. Para abreviar el termino Reordenamiento No Decreciente de una senal, sedenotara de ahora en adelante como RND.

En la seccion 7, se estudia el calculo del RND de una senal lineal a trozos, ası como loscambios que se presentan en el caso de contar con la presencia de una ventana movil (filtromediana analogo). Se analizan los efectos de la ventana y de su posicion sobre el valor finalde la mediana.

Teniendo en cuenta que una senal analoga tiene un dominio continuo que puede ser, enprincipio infinito, es necesario el estudio y caracterizacion de la salida del filtro, para reducirel numero de operaciones necesarias y poder hacer una implementacion practica del resultado.Dentro de esta misma seccion se lleva a cabo este estudio y se brinda la deduccion matematicadel comportamiento a la salida del filtro durante ciertos intervalos, denominados intervalosde cambios no cualitativos.

Una vez hecha la descripcion y fundamentacion matematica del problema, se presentanlos algoritmos elaborados durante el proyecto e implementados en MATLAB. Las pruebas delos algoritmos y un ejemplo con datos reales se encuentran en la parte final del documento.

4

Page 5: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

2 OBJETIVOS

2.1 Objetivo general

Desarrollar algoritmos que permitan ordenar una senal de parametro continuo (la funcionpuede ser discontinua), y a partir de una ventana movil, calcular la mediana movil (filtromediana) de la senal.

2.2 Objetivos especıficos

1. Estudiar el proceso de reordenamiento de senales lineales a trozos.

2. Desarrollar e implementar un algoritmo que permita aproximar una senal uniformemen-te continua por medio de segmentos lineales.

3. Desarrollar e implementar un algoritmo que permita calcular el ordenamiento de unasenal lineal a trozos.

4. Desarrollar un algoritmo que calcule los ordenamientos que resultan al observar a travesde una ventana movil una senal lineal a trozos.

2.3 Alcance y productos finales

El trabajo descrito en la propuesta, tiene como proposito fundamental, la construccion dealgoritmos que permitan el calculo de la mediana de una senal de parametro continuo, usandola aproximacion de la senal original por medio de senales lineales a trozos. El resultado de estetrabajo es la caracterizacion de la salida del filtro mediana analogo en el caso de este ultimotipo de senales y los algoritmos que permiten calcularla. El algoritmo de aproximacion de unasenal arbitraria por medio de una senal lineal a trozos no fue realizado por restricciones detiempo.

3 DESCRIPCION DE LA PROBLEMATICA Y JUSTIFI-CACION DEL TRABAJO

Una estadıstica es una funcion que asigna un numero a un conjunto de datos, o muestra,con el fin de obtener una informacion resumida y relevante. Tal es el caso de las estadısticasmas conocidas, como el promedio, la mediana y la moda de un conjunto de datos (finito, o¨discreto¨). Sin embargo, en la vida diaria, la informacion proviene de un mundo analogo yresulta de interes el extender el concepto de estadıstica a conjuntos continuos (no contablesy acotados) de numeros reales.

Una forma de analizar una senal de parametro continuo, consiste en realizar un ordena-miento de la senal (de menor a mayor), de tal forma que se pueda definir una estadıstica conbase en los datos ordenados de ella y alisarla de una manera natural y robusta definiendo unfiltro mediana analogo. El calculo de estos reordenamientos, se simplifica si se tiene que lasenal es lineal a trozos. En este orden de ideas, se busca obtener una aproximacion lineal atrozos de la senal original y construir a partir de esta aproximacion, una senal no decrecienteque permita obtener facilmente su mediana.

5

Page 6: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Con esta idea, se podrıa hablar entonces de la mediana de datos continuos, como porejemplo: la mediana de la temperatura de un dıa, la mediana de la velocidad de un vehıculodurante un trayecto, etc. Entendida la mediana entonces como el valor para el cual, el tiempoque la senal permanece por debajo de este es igual al tiempo durante el cual la senal esta porencima del valor.

4 MARCO TEORICO, CONCEPTUAL E HISTORICO

4.1 Marco teorico, conceptual e historico

La siguiente seccion hace un resumen de los conceptos utilizados para el desarrollo del pro-yecto. Contiene la informacion recolectada de las fuentes bibliograficas e incluye conceptos decalculo y analisis , estos ultimos, como parte del marco teorico. Los resultados y desarrollosprevios del tema, fueron consultados de las referencias [1], [2] y [3], y constituyen el marcohistorico del trabajo.

4.1.1 Reordenamiento no decreciente y calculo de la mediana para senales analo-gas. Aspectos teoricos

La asignacion de un valor real a una funcion, como en este caso lo es el obtener la medianade una senal dada, es un ejemplo de lo que en matematicas se conoce como funcional. Otrosejemplos bastante comunes, son las integrales definidas o la evaluacion de la funcion en unpunto fijo dado. Ası, estudiar la mediana de senales analogas, se convierte teoricamente en unaparte del estudio de funcionales acotados sobre el espacio vectorial de funciones con soportecompacto. El estudio se restringe a funcionales lineales por facilidad del tema, dejando para unfuturo trabajo, el considerar otros casos. La siguiente seccion desarrolla las nociones teoricasnecesarias para el calculo de esta mediana, como lo son: el RND de una senal, sus propiedadesy el estudio de funcionales sobre el espacio de funciones discontinuas monotonas y de variacionacotada.

4.1.2 RND de senales analogas y filtro mediana analogo, nocion matematica

Antes de dar la definicion de RND para una senal analoga, es necesario establecer el conceptode funcion de distribucion. Para hacerlo, basta la siguiente definicion y saber que la medidade Lebesgue λ de un intervalo real (a, b) es

λ{(a, b)} = b− a.

Definicion 4.1. Sea f : R → R una funcion real y λ la medida de Lebesgue. La funcion dedistribucion F : R→ R+ asociada a f se define como:

F (y) = λ{x ∈ R : f(x) ≤ y}.

Algunas propiedades importantes de la funcion de distribucion se resaltan a continuacion.

Nota 4.1. El comportamiento de f en conjuntos de medida cero no afecta su funcion dedistribucion. Ası, si f es discontinua en un conjunto de puntos discretos, el valor de f(x) enestos puntos no afecta a F (y).

6

Page 7: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Nota 4.2. La funcion de distribucion F (y) asociada a f(x) es invariante bajo traslacionestemporales de la funcion original, es decir, f(x) y f(x − τ) tienen la misma funcion dedistribucion. Para verlo es suficiente notar que si (a, b) es el intervalo en el que f(x) ≤ y,entonces (a − τ, b − τ) es el intervalo en el que f(x − τ) ≤ y. Es claro que ambos intervalostienen la misma medida.

A partir de una funcion dada f(x) y su respectiva funcion de distribucion F (y), es posibleconstruir otras funciones con igual distribucion. Para hacerlo, basta dividir el dominio de f enintervalos disyuntos y posteriormente, reordenar a gusto los pedazos de funcion sin superponersus dominios ni dejar espacios entre ellos. Por la propiedad descrita en la ultima nota, la nuevafuncion tiene la misma funcion de distribucion que f . Dos funciones con la misma funcion dedistribucion se conocen como funciones equimedibles.

Es de notar que no todo par de funciones equimedibles provienen de reordenar el dominiode una misma funcion, por ejemplo, tomemos las funciones: f1 : [0,∞) → [0,∞) dada porf1(x) = x, y f2 : (−∞, 0] → [0,∞) dada por f2(x) = −x. Si calculamos sus funciones dedistribucion respectivas, ambas resultan ser iguales a:

F (y) =

{y si y ≥ 00 si y < 0

,

y es claro que no es posible obtener f1 a partir def2 utilizando unicamente traslaciones en eleje x de segmentos de funcion.

El RND de una funcion f se define intuitivamente como la inversa de su funcion de dis-tribucion, sin embargo, la funcion de distribucion F (y) asociada a f(x) no es necesariamenteinvertible, es por esta razon que la la definicion de RND es un tanto mas elaborada.

Definicion 4.2. Sea f : (a, b)→ R, F su funcion de distribucion, la RND de f denotada porf ′ : [0, b− a]→ R se define como:

f ′(x) = ınf{y : F (y) ≥ x}.

Las siguientes son dos graficas que presentan la funcion de distribucion de dos funcionesdistintas, en el primer caso F no es invertible, en el segundo sı. Funcion 1:

Funcion 2:

7

Page 8: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Las siguientes son algunas propiedades del reordenamiento de una senal, ver [1].

Proposicion 4.1. Sea f : (a, b)→ R una funcion real, y α una constante, entonces (f+α)′ =f ′ + α

Demostracion. Tomemos F (y) la funcion de distribucion de f , calculando la funcion de dis-tribucion de (f + α) se obtiene

Fα(y) = λ{x | f(x) + α ≤ y} = λ{x | f(x) ≤ y − α} = F (y − α)

Ahora, tomando el ınfimo para la RND,

(f + α)′ = ınf{y | Fα(y) ≥ x} = ınf{y | F (y − α) ≥ x} = ınf{y | F (y) ≥ x}+ α

Haciendo uso de las definiciones anteriores, es posible entonces describir la salida del filtromediana analogo de forma matematica. Pero primero, la nocion de ventana de un filtro.

Cuando se habla de una senal f(x), vista a traves de una ventana de ancho w con posiciont, se refiere a considerar la senal dada por

ft(x) =

{f(x) si t ≤ x ≤ t+ w0 de lo contrario

Definicion 4.3. La mediana de una senal analoga f(x), vista a traves de una ventana deancho w, es igual al valor de su reordenamiento f ′(x) a mitad de la ventana:

f = f ′(w/2).

Debido a la utilizacion de la ventana de tiempo de ancho w, es posible definir la salidadel filtro mediana analogo g(t) dependiendo de la posicion t de la ventana. Ası, si ft(x) esla senal f(x) vista dentro de una ventana de ancho w cuando la ventana se encuentra en laposicion t, la salida del filtro mediana analogo serıa:

g(t) = f ′t(w/2).

4.1.3 La mediana como un funcional lineal

Las siguientes secciones tienen como proposito estudiar la mediana de una senal analoga desdeel punto de vista de un funcional. Para hacerlo, vamos a restringirnos a funciones de variacionacotada, un tipo de funciones que resultan mas cercanas a las senales presentes en aspectospracticos, y a funcionales lineales. Las siguientes son algunas definiciones matematicas nece-sarias para introducir el tema [7].

Definicion 4.4. Una particion de un intervalo real [a, b], es un conjunto de puntos {x0, x1, . . . , xn}tales que:

a ≤ x0 < x1 < . . . < xn ≤ b.

8

Page 9: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Definicion 4.5. Una funcion f definida en un intervalo [a, b], es de variacion acotada, siexiste un M real positivo, tal que para toda particion P[a, b] = {x0, . . . , xn},

n∑i=1

|f(xi)− f(xi−1)| ≤M.

Una caracterıstica importante de las funciones de variacion acotada, es que se puedenescribir como la resta de dos funciones crecientes. Esto es de gran utilidad en el estudio de lamediana como un funcional, debido a que nos permite restringirnos al estudio de funcionesmonotonas. Las siguientes definiciones estan orientadas la caracterizacion de las funciones devariacion acotada [7].

Definicion 4.6. Sea f(x) una funcion de variacion acotada en [a, b]. Si denotamos por∑P

a la suma∑n

i=1 |f(xi) − f(xi−1)| correspondiente a la particion P[a, b] = {x0, . . . , x1}. Lavariacion total de f en [a, b] es:

Vf (a, b) = sup{∑

P : con P particion de [a, b]}

.

La variacion total presenta una propiedad aditiva importante que se enuncia a continua-cion.

Teorema 4.1. Sea f una funcion de variacion acotada en [a, b] y sea c ∈ (a, b), entonces

Vf (a, b) = Vf (a, c) + Vf (c, b).

Demostracion. Ver teorema 6.11 de [7].

Si en la definicion 4.6, dejamos variar el extremo final del intervalo [a, b], tenemos entoncesuna funcion de variacion dada por:

V (x) = Vf (a, x),

con x ∈ (a, b). Esta funcion es la que permite escribir a f(x) como la resta de dos funcionescrecientes.

Teorema 4.2. Sea f(x) una funcion de variacion acotada en [a, b], y x ∈ (a, b). EntoncesV (x) y V (x)− f(x) son funciones crecientes.

Demostracion. Para probar que V (x) es creciente, tomemos x, y ∈ (a, b) con x < y. Por 4.1,Vf (a, y) = Vf (a, x) +Vf (x, y), luego Vf (a, y)−Vf (a, x) = Vf (x, y). Como Vf (x, y) ≥ 0 por seruna suma de valores absolutos, se tiene entonces que Vf (a, y)−Vf (a, x) ≥ 0 o lo que es igual,

V (y) ≥ V (x).

Para probar que V (x)− f(x) es creciente, tomemos la siguiente resta con x, y cumpliendolas mismas condiciones del caso anterior,

(V (y)− f(y))− (V (x)− f(x)) = (V (y)− V (x))− (f(y)− f(x))

= Vf (x, y)− (f(y)− f(x))

9

Page 10: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Como Vf (x, y) es el supremo de la suma sobre todas las posibles particiones del intervalo [x, y],en particular la particion que tiene unicamente los puntos x y y, se cumple la desigualdad,

Vf (x, y) ≥ (f(y)− f(x)).

Por lo tanto (V (y)− f(y))− (V (x)− f(x)) ≥ 0, mostrando que V − f es creciente.

Ası, f se puede escribir como la resta de 2 funciones crecientes:

f = V − (V − f).

Con este resultado, el estudio del calculo de la mediana de senales con variacion acotada, setraduce en analizar el comportamiento de los funcionales lineales reales sobre el espacio defunciones monotonas. En el caso de funciones continuas y de soporte compacto, el teorema derepresentacion de Riesz brinda la caracterizacion completa para los funcionales lineales. En lassiguientes secciones se explora el caso de funciones monotonas discontinuas y los funcionaleslineales actuando sobre ellas.

4.1.4 Funciones monotonas discontinuas

Las funciones monotonas tienen algunas propiedades de especial importancia en lo que se re-fiere a sus discontinuidades. Para enunciarlas es necesario revisar los tipos de discontinuidadesposibles dentro de una funcion con valores reales.

4.1.5 Tipos de discontinuidades

Existen dos tipos de discontinuidades posibles para una funcion f con valores en los reales:

1. Tipo 1: Se presenta cuando f es discontinua en un punto a, pero sus lımites porizquierda y por derecha existen, es decir:

lımx→a+

f(x) = b y lımx→a−

f(x) = c

Notese que el valor en f(a) no es importante y que los lımites por la izquierda y por laderecha no deben ser necesariamente iguales. Un buen ejemplo de una funcion con estetipo de discontinuidad es la funcion escalon unitario definida por

U(x) =

{1 si x ≥ 00 si x < 0

(1)

Ası, lımx→0+ U(x) = 1 y lımx→0− U(x) = 0. En este caso U(0) = 1 pero podrıa tomarcualquier otro valor. La siguiente es la grafica de la funcion escalon unitario:

10

Page 11: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Las discontinuidades de tipo 1 son conocidas tambien como discontinuidades de salto.

2. Tipo 2 Las discontinuidades de tipo 2 son todas aquellas que no son de tipo 1. Unafuncion con discontinuidades de este tipo es:

f(x) =

{1 si x es racional0 si x es irracional

Esta funcion tiene discontinuidades de tipo 2 en cada uno de sus puntos pues paraningun x, lımx→0+ f(x) ni lımx→0− f(x) existen.

4.1.6 Funciones monotonas

En el caso de funciones monotonas, existen algunas propiedades que son de especial impor-tancia con respecto al tipo y la cantidad de discontinuidades que puede presentar. Antes demostrar los resultados, recordemos algunas definiciones.

Definicion 4.7. Una funcion f en un intervalo (a, b) es monotona no decreciente (no cre-ciente) si para todo x ,y con a ≤ x ≤ y ≤ b se tiene que f(x) ≤ f(y) (f(x) ≥ f(y))

Una funcion es monotona si es no creciente o no decreciente. Algunos resultados importan-tes relacionados con las discontinuidades de funciones monotonas se presentan a continuacion,para mayor informacion ver [5].

Teorema 4.3. Una funcion monotona f en (a, b) no tiene discontinuidades de tipo 2.

Nota 4.3. El no tener discontinuidades de segundo tipo implica que los lımites por izquierday por derecha de f existen para todo c ∈ (a, b). De hecho, se tiene que:

lımx→c−

f(x) = supa<t<c

f(t) ≤ f(c) ≤ lımx→c+

f(x) = ınfc<t<b

f(t).

Demostracion. Sin perdida de generalidad, supongamos que f es monotona creciente. Sequiere ver entonces que

lımx→c−

f(x) = supa<t<c

f(t).

Tomemos el conjunto de los puntos f(t) con t ∈ (a, c). Como f es monotona creciente, esteconjunto esta acotado por arriba por f(c) y por lo tanto tiene una mınima cota superiorA = supa<t<c f(t) tal que A ≤ f(c). Como A es la mınima cota superior, para un ε > 0cualquiera, existe un δ > 0 tal que:

A− ε < f(c− δ) ≤ A, (2)

con a ≤ c− δ ≤ c. Como f es monotona creciente, para todo t que cumpla c− δ < t < c, setiene que f(c− δ) ≤ f(t) ≤ A, utilizando esto ultimo y la ecuacion (2) resulta,

A− ε < f(c− δ) ≤ f(t) ≤ A con c− δ < t < c.

Restando A en cada una de las desigualdades tenemos,

−ε < f(t)−A ≤ 0 < ε,

11

Page 12: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

O equivalentemente |f(t)−A| < ε con c− δ < t < c. Ası

lımx→c−

f(x) = supa<t<c

f(t).

La prueba de la igualdad:lımx→c+

f(x) = ınfc<t<b

f(t),

es analoga a la anterior al igual que para funciones monotonas decrecientes.

Otra propiedad importante de las funciones monotonas tiene que ver con la cantidad dediscontinuidades que puede tener dentro de un intervalo (a, b).

Teorema 4.4. Una funcion f monotona en (a, b), tiene a lo sumo un numero enumerable dediscontinuidades.

Demostracion. Sea D el conjunto de discontinuidades de f , se pueden definir los siguientesconjuntos:

Dn =

{c ∈ D : lım

x→c−f(x)− lım

x→c+f(x)| > 1/n

}Como la suma de las distancias de los saltos de f no puede ser mayor a |f(b) − f(a)|, cadauno de los Dn tiene finitos elementos, y ya que D =

⋃nDn, se tiene entonces que D es

enumerable.

El siguiente es un ejemplo de una funcion monotona no decreciente que aunque parecieratener un numero no enumerable de discontinuidades, resulta ser una funcion continua, paramayores detalles consultar [4].

Ejemplo 4.1. Funcion no decreciente y constante en casi toda parte. Para la cons-truccion de la funcion, primero estudiemos su dominio de definicion. Tomemos el intervalo[0, 1], dividamoslo en 3 partes iguales y quitemos en la primera etapa, el segmento de la mitad.Para la segunda etapa, tomemos cada uno de los intervalos restantes, dividamoslos en 3 yretiremos de nuevo las partes de la mitad. Este proceso continua indefinidamente. La figura 1ilustra la situacion para los primeros 2 pasos, se marcan los numeros en donde los intervalosson removidos y se expresan en base 3 (30, 1 = 1/3).

El conjunto resultante de este proceso es conocido como el conjunto de Cantor. Notemosque en cada paso p, existen 2p intervalos que no se removieron de longitud 3−p. Si miramosla longitud total de estos intervalos, se tiene que para un paso p fijo,

long =

2p∑i=1

3−p =

(2

3

)p.

Cuando p→∞ la longitud tiende a cero, por lo tanto el conjunto de Cantor es un conjuntode medida cero y esto implica que no contiene ningun intervalo dentro de sı.

De la figura 1, se puede ver que en el primer paso, se retiro el intervalo abierto (30, 1,3 0, 2).En el segundo paso, se retiraron los intervalos (30, 01,3 0, 02) y (30, 21,3 0, 22). Es decir, se estanretirando todos los puntos cuya expresion en base 3 contiene el dıgito 1. Ademas, el punto

30,1 que pertenece al conjunto de Cantor se puede escribir como 30,022..., de la misma forma

12

Page 13: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Figura 1: Pasos constructivos del conjunto de Cantor.

0, 01 = 0,00222... y 0, 21 = 0,20222.... Es claro entonces que los puntos del conjunto de Cantorcorresponden a aquellos cuya escritura en base 3 contiene unicamente los dıgitos 0 y 2.

Con esta caracterizacion, es posible construir la funcion f(x) de interes. Para cada puntodel conjunto de Cantor x =3 0, a1a2..., definimos f(x) =2 0, b1b2... el numero en base 2 queresulta de cambiar cada ocurrencia del dıgito 2 por el dıgito 1. La funcion f(x) toma el con-junto de Cantor y lo manda al conjunto de todos los numeros entre 0 y 1 cuya representacionbinaria tiene 1’s y 0’s, es decir, todo el intervalo [0, 1]. Ası, f es una funcion sobreyectiva y elconjunto de Cantor es no enumerable.

Esta funcion se puede extender sobre todo el intervalo [0, 1] teniendo en cuenta que paralos puntos que se encuentran en los extremos de los intervalos removidos en cada paso, elvalor de f coincide.

f(30, a1a2 . . . 0222 . . .) =2 0, b1b2 . . . 0111 =2 0, b1b2 . . . 1 = f(30, a1a2 . . . 2)

Ası que para cada uno de los k intervalos, con k = 1, 2 . . . 2p − 1, removidos en el paso p, seextiende la funcion f con un valor constante f(x) = (2k − 1)/2p. La figura 2, es una graficaaproximada de la funcion que se acaba de construir.

Veamos que f es monotona no decreciente. En los puntos fuera del conjunto de Cantor,no hace falta chequear pues la funcion es constante, ahora, si x < y son dos puntos en elconjunto de Cantor, x =3 0, a1a2...an... y y =3 0, a′1a

′2...a

′n..., como x < y existe un n, tal que

a1 = a′1, a2 = a′2, ... , an < a′n, por lo tanto bn < b′n y f(x) =2 0, b1...bn... <2 0, b′1...b′n.

Aunque pareciera que en cada uno de los puntos del conjunto de Cantor, esta funcion fueradiscontinua, contradiciendo el numero posible de discontinuidades de una funcion monotona,en realidad f no tiene discontinuidades. Veamos, en cada uno de los intervalos constantes, lafuncion es claramente continua, ahora si x < x′ y x′ tiende a x, se tiene entonces que existeun n tal que x = a1a2...an.. y x′ = a1a2...a

′n.. con a′n > an. Luego f(x′) = b1b2...b

′n... tiende a

b1b2...bn = f(x).

13

Page 14: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Figura 2: Grafica aproximada de la funcion de Cantor.

4.1.7 Acerca de los funcionales lineales sobre el espacio de funciones discontinuas

El trabajo con funciones de variacion acotada, da como resultado la caracterizacion del tipo dediscontinuidades posibles y el numero de ellas que puede presentar la funcion. Teniendo estoen cuenta, se puede encontrar una forma conveniente, para escribir funciones discontinuas,que permita el estudio de los funcionales lineales actuando sobre ellas. Este tema se desarrollaa lo largo de la seccion.

Una funcion f con una discontinuidad de tipo salto en un punto x1, se puede escribircomo la suma de una funcion continua y una funcion de tipo escalon de la siguiente manera:Si f(x) tiene un salto de longitud a en x1, utilizando la funcion escalon unitario U(x), sedefinine la funcion g(x) = f(x)− aU(x− x1), esta funcion es continua pues se ha eliminadoel salto presente originalmente.

Ası, si escribimos f(x) = g(x) + aU(x− x1), se tiene lo que se deseaba. Esta misma idease puede llevar a cabo para cualquier numero enumerable de discontinuidades.

Es importante ademas, notar las diferencias para 3 posibles casos de funciones con discon-tinuidades: continuas por derecha, continuas por izquierda y con punto medio. La siguientees la notacion para las funciones escalon que se utilizaran para cada caso:

14

Page 15: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

1. Continua por derecha:

U+(x) =

{1 si x ≥ 00 si x < 0

2. Continua por izquierda:

U−(x) =

{1 si x > 00 si x ≤ 0

3. Con punto medio.

Ua(x) =

1 si x > 0a si x = 00 si x < 0

Los siguientes son las graficas de U+(x) ,U−(x) ,U0,5(x) .

Teniendo en cuenta que el numero de discontinuidades de una funcion monotona debe serenumerable, la parte discontinua de la funcion tiene la forma:

f(x) =∑i

aiU(x− xi) con i ∈ N

La funciones de este tipo se conoceran como funciones escalera. El espacio de funcionesdiscontinuas de interes es el espacio vectorial que resulta de todas las posibles combinacionesde funciones escalon desplazadas y con distinto tipo de discontinuidad. Por ejemplo U+(x) +U−(x) = 2U1(x) y U+(x) + Ua(x) = 2U1+a(x). Sin embargo no todas las sumas se puedenescribir como una solo funcion escalon, por ejemplo

U−(x) + Ua(x) =

2 si x > 0a si x = 00 si x < 0

,

o tambien la funcion identicamente cero, excepto en un unico punto resulta de:

U+(x)− U−(x) =

{1 si x = 00 de lo contrario

.

Veamos el tipo de discontinuidades que pueden resultar tras la suma de dos funciones de tipoU distintas:

15

Page 16: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

1. La suma de dos funciones continuas por derecha (izquierda) es continua por derecha(izquierda).

2. La suma de una funcion continua por izquierda con una continua por derecha, es unafuncion con punto medio.

3. La suma de una funcion con punto medio Ua, con alguna de las anteriores puede tomar,en general, cualquiera de los distintos tipos de discontinuidades.

Si un funcional lineal ϕ actua sobre f , por su linealidad, se tiene que:

ϕ(f) =∑i

ϕ(aiU(x− xi)) =∑i

aiϕ(U(x− xi)),

Entonces, para caracterizar el funcional, es necesario ver la forma en que la que actua sobrecada uno de los U(x−xi). Es por esto que resulta util definir una funcion asociada al funcionalque dependa unicamente del parametro de corrimiento de la funcion escalon: ϕτ = ϕ(U(x−τ)).En el caso de ϕτ = ϕ(Ua(x − τ)), el funcional resulta ser una funcion de dos variables, a yτ . Sin embargo, aunque el interes por continuar este tema en el aspecto teorico es grande,en terminos practicos y debido a la definicion de la funcion de distribucion, sin importar eltipo de discontinuidad de la senal original (por derecha, por izquierda o punto medio), elresultado es una funcion continua lateralmente. Ası, de ahora en adelante, se considerara elfuncional, como una funcion de un unico parametro τ . El siguiente es un ejemplo de la anteriorconstruccion: Tomemos la funcion dada por

f(x) =

∞∑i=0

U(x− 1

2).

Y el funcional ϕτ = τ , Al aplicar el funcional sobre f(x) tenemos:

ϕτ (f(x)) =∞∑i=0

1

2= 2

Que es este caso converge por ser una serie geometrica. Si tomamos otra funcion, por ejemplo:

f(x) =

∞∑i=0

(−1)iU(x− (1− 1

2i)).

Cuya grafica se presenta a continuacion:

16

Page 17: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Al aplicar el funcional ϕτ , tenemos que las serie resultante es:

ϕτ (f(x)) =∞∑i=0

(−1)i(1− 1

2i)

La cual es una serie divergente pues el lımite cuando i tiende a infinito no existe.La idea es estudiar distintas funciones caracterısticas y evaluar la convergencia o no de las

series resultantes en los casos interesantes de un numero no enumerable de discontinuidades,ya que en el caso de un numero finito, mientras el funcional sea acotado, la serie converge.

5 DEFINICION Y ESPECIFICACION DEL TRABAJO

5.1 Definicion

El trabajo esta orientado al calculo de la mediana y del filtro mediana analogo de senales deparametro continuo; el desarrollo se lleva a cabo asumiendo la posibilidad de aproximar unasenal analoga por medio de senales lineales a trozos. Sin embargo en el caso de requerir cotaspara el error, una famosa cota para aproximaciones por interpolacion lineal, que depende dela segunda derivada de la funcion a aproximar, es la siguiente:

|e| ≤ (x1 − x0)2

8max

x0≤x≤x1|f ′′(x)|.

En donde e, es el error, y x1,x0 son los puntos iniciales y finales del segmento que se esta apro-ximando. Notese que el error de la aproximacion debe depender de lo rapido que cambie laconcavidad de la senal, y la segunda derivada es la medida de este cambio. Ası que para eldesarrollo practico con errores aceptables de la aproximacion por segmentos lineales, serıanecesaria la condicion de tener una funcion al menos 2 veces diferenciable. Sin embargo esde aclarar que hay funciones discontinuas que pueden ser reordenadas y su mediana se pue-de calcular de la misma forma que para senales continuas y diferenciables. La condicion dediferenciabilidad es mas restrictiva de lo que se necesita para el proyecto. El caso de senaleslineales a trozos discontinuas, se desarrolla durante este trabajo, ası que es posible obviar lacondicion de 2 veces diferenciables para el desarrollo del filtro mediana analogo en algunoscasos.

17

Page 18: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

5.2 Especificaciones

1. Restricciones: Las funciones de entrada deben ser lineales a trozos y acotadas.

2. Funciones: Las funciones que realizan los algoritmos implementados en este trabajoson: Calcular el reordenamiento de una senal lineal a trozos y su mediana para distintosvalores de anchos de ventana, calcular el reordenamiento y mediana de la senal paradistintas posiciones de la ventana, calcular el cambio de la mediana de la senal cuandola ventana se desplaza a lo largo de esta, visualizar los datos para distintos tipos desenales.

Las especificaciones dadas son las necesarias para cumplir satisfactoriamente con los objetivosdel proyecto, por un lado, porque en la practica, la mayorıa de senales se pueden aproximarcon senales lineales a trozos y tienen un caracter acotado, y por otro, por las restriccionesque impone un software de desarrollo como MATLAB y la teorıa preexistente.

6 METODOLOGIA DE TRABAJO

Posteriormente a tener las especificaciones iniciales del proyecto, comenzo una etapa de reco-leccion de informacion bibliografica para entender el tema y poder contar con los conocimien-tos para la elaboracion de los algoritmos. El proceso se detalla en las siguientes secciones.

6.1 Plan de trabajo

El siguiente es el diagram de Gant del proyecto inicialmente como se presento en la propuestade proyecto de Grado.

Figura 3: Diagrama de Gant de las actividades del proyecto

El diagrama de las actividades fue realizado tratando de llevar el cumplimiento de lostiempos de la mejor manera, sin embargo, labores que en un principio no parecıan reque-rir de mucho tiempo, resultaron ser mas dispendiosas en la realidad. Tal fue el caso de lacaracterizacion teorica de la mediana con ventana movil para identificar la forma y los pun-tos importantes de cambio, y la elaboracion del correspondiente algoritmo, lo que llevo adescuidar el algoritmo de aproximacion de la senal analoga a traves de segmentos lineales.

Las actividades periodicas durante la elaboracion del proyecto consistieron en las reunionescon el asesor, llevadas a cabo semanalmente los dıas miercoles para discutir los avances y

18

Page 19: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

problemas encontrados durante la semana. Las entregas de informes se dieron cada vez quehabıa un avance significativo del proyecto.

6.2 Busqueda de informacion

El proceso de busqueda de informacion tuvo 2 componentes, por un lado, las fuentes deinformacion correspondientes a la documentacion preexistente del filtro mediana analogo,que fueron recolectadas con ayuda de mi asesor de tesis durante las reuniones semanales.La mayorıa de estas, corresponden a artıculos de la IEEE referenciados en la bibliografıa.La busqueda en internet, y las referencias de los articulos encontrados, complementaron lainformacion necesaria para el desarrollo del proyecto. Por otro lado, el desarrollo matematico ylos conceptos previos, fueron producto de lo aprendido durante mi pregrado en Matematicasde la Universidad de los Andes y de resultados de las reuniones semanales con mi asesor.El desarrollo de software y el manejo de herramientas computacionales como MATLAB,fueron otro de los aportes de mis estudios previos, en este caso, del programa de IngenierıaElectronica.

6.2.1 Alternativas de desarrollo

Las alternativas del proyecto se reducen a la escogencia del software de implementacion de losalgoritmos desarrollados. Contando con diversas clases de software, desde Java, C++, hastasoftware especializado en matematicas como Maple o Mathematica, con los cuales hubierasido posible hacer el desarrollo, la herramienta elegida fue MATLAB. Esto se debe a que esuna herramienta de amplio uso tanto en ingenierıa como en matematicas y a la facilidad delicencias que brinda la universidad. Por otro lado, el manejo y apropiacion de esta herramientaera mucho mas profundo, debido a su amplia utilizacion durante el pregrado, permitiendoenfocar mas tiempo en el desarrollo de los algoritmos que en el aprendizaje del uso delsoftware.

7 TRABAJO REALIZADO

A continuacion se presenta el trabajo realizado, que incluye al caracterizacion del filtro me-diana analogo y la elaboracion de los algoritmos. Los codigos en MATLAB se encuentran enla seccion de anexos.

7.1 Descripcion del resultado final y trabajo computacional

Las siguientes secciones contienen el desarrollo del trabajo incluyendo los entregables comolo son, los algoritmos desarrollados y el soporte matematico de ellos.

7.2 RND y mediana analoga de senales lineales a trozos

Las propiedades vistas en el marco teorico, referentes a las funciones de distribucion y al reor-denamiento no decreciente de una senal, permiten una nueva aproximacion al problema delfiltro mediana analogo en el caso de senales lineales a trozos. En esta seccion se estudiara unainterpretacion geometrica equivalente a la definicion matematica del reordenamiento y que

19

Page 20: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

sera particularmente util al trabajar con este tipo de senales. Utilizando esta nueva aproxi-macion al problema, se estudiara el caso del filtro mediana analogo con ventana movil y secaracterizara matematicamente su respuesta.

7.3 Reordenamiento de senales lineales a trozos

En el caso de senales lineales a trozos es util hacer notar algunas propiedades de la funcionde distribucion y de la RND de segmentos lineales para realizar el calculo sobre la senaltotal. Como resultado, es posible establecer un algoritmo geometrico para obtener el reorde-namiento y facilitar su implementacion en MATLAB. Para esto son necesarias las siguientesproposiciones.

Proposicion 7.1. La RND de una senal compuesta por segmentos de recta de igual rango(ymın, ymax), y pendientes m1, . . . ,mn es una recta con pendiente

m =

(1

|m1|+ . . .+

1

|mn|

)−1

.

Por similitudes con la suma de resistencias en paralelo, m se llamara el paralelo de las pen-dientes m1, . . . ,mn.

Demostracion. La siguiente es una grafica que ilustra el tipo de senales que se estan conside-rando.

Figura 4: Segmentos de recta de igual rango y distinta pendiente

Calcular la funcion de distribucion resulta sencillo teniendo en cuenta que para cada y sebusca la medida de cada uno de los ∆x que aparecen en la figura anterior. Entonces

F (y) = λ{x ∈ (a, b) | f(x) ≤ y},

=|y − ymın||m1|

+ . . .+|y − ymın||mn|

.

20

Page 21: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Ahora, F (y) ≥ x es igual a

|y − ymın|(

1

|m1|+ . . .+

1

|mn|

)≥ x,

|y − ymın| ≥ x(

1

|m1|+ . . .+

1

|mn|

)−1

,

|y − ymın| ≥ mx

Como el caso de interes resulta cuando y ∈ (ymın, ymax, entonces |y − ymın > 0| , y se tieneque:

y ≥ mx+ ymın.

Tomando el ınfimo, resulta que f ′(x) = mx+ ymın.

De los comentarios hechos despues de la nota 4.2, si se parte una senal en intervalos detiempo disyuntos y se reordenan temporalmente estos pedazos, su funcion de distribucionse mantiene invariante y, por lo tanto, ambas senales tienen el mismo RND. Partir la senalde forma conveniente para luego calcular su RND por segmentos, es la idea del algoritmogeometrico que se enuncia a continuacion:

1. Tomar las coordenadas en el eje y de los puntos inicial y final de la senalası como los puntos de cambio de pendiente: A partir de estos puntos estableceren orden ascendente los rangos ∆y conformados ellos.

2. Partir la senal con base en cada uno de los intervalos ∆y: Estos rangos ∆y tieneasociados unos rangos ∆x correspondientes, estos ultimos conforman la particion de lasenal.

3. Reordenar temporalmente los intervalos ∆x: De tal forma que los intervalos deun mismo rango ∆y sean adyacentes.

4. Calcular el RND de cada uno de los rangos: Despues del tercer paso, dentro decada uno de los rangos ∆y, existe ahora una funcion que cumple con las condiciones dela proposicion 13.1. Con esto y con la propiedad dada en 4.1, la RND de este pedazoresulta ser la recta con pendiente igual al paralelo de las pendientes de los segmentosde recta comprendidos por el rango ∆y.

La figura 5 en la proxima pagina ilustra el algoritmo.

7.4 Calculo del RND de una senal con ventana movil.

Debido a que el proceso de calculo de la mediana de una senal analoga supone realizar elreordenamiento y, posteriormente, obtener el valor de este a mitad del domino de la ventanapara cada uno de sus puntos, en la practica serıa necesaria la realizacion de un numero nocontable de operaciones (una para cada valor en el eje real). Sin embargo, en el caso de senaleslineales a trozos es posible predecir el comportamiento del reordenamiento y de su medianacon base en unos cuantos puntos de interes. En esta seccion se estudian los comportamientosde la RND y de la mediana de una senal lineal a trozos a traves de una ventana movil, y se

21

Page 22: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Figura 5: Algoritmo Geometrico para el calculo del RND

22

Page 23: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

caracterizan los cambios significativos presentes durante este proceso que permiten reducir elnumero de calculos a un numero finito.

Ya que los puntos iniciales y finales de la senal vistos por la ventana (puntos de interseccionentre la ventana y la senal original) son de gran importancia para el calculo de su RND,durante esta seccion se denotaran como (xi, yi) y (xd, yd) los puntos izquierdo y derecho dela senal vistos dentro de la ventana, respectivamente.

7.4.1 Cambios en el RND con ventana movil

A medida que se pasa una ventana por la senal f(x), su RND presenta dos tipos de cambios.Estos cambios se denotaran como Cambios cualitativos y Cambios no cualitativos dependiendode sus caracterısticas.

1. Cambios no Cualitativos. Corresponden a los cambios del RND en los que existe unpatron claro de movimiento dependiente de la posicion de la ventana. Se caracterizanpor tener rangos en el eje y bien definidos y por preservar las pendientes de la rectasentre un paso y el siguiente. Son precisamente estos cambios los que permiten inferir elcomportamiento de la mediana sin realizar los calculos intermedios.

2. Cambios Cualitativos A diferencia de los anteriores, los cambios no cualitativospresentan un comportamiento sin patron aparente al moverse la ventana, como lo son:la aparicion de nuevas pendientes, saltos y nuevos rangos entre otros.

Ejemplo 7.1. La siguiente senal de longitud L = 8 se paso a traves de una ventana deancho w = 4 para ilustrar cambios cualitativos y no cualitativos. En el caso de cambios no

Figura 6: Senal Original

cualitativos, la ventana se movio en pasos de 0,1 desde 1,6 hasta 1,8. Los RND resultantespara cada posicion se muestran en la Figura 7.

Se puede ver entonces que a medida que la posicion de la ventana varıa, la RND de la senalsigue un claro patron de cambio. Posteriormente, tomando la senal y calculando su RND conla posicion de la ventana en 1,8 y en 2,5 se obtuvo el siguiente resultado. La senal originalvista por la ventana para estas posiciones de puede ver en la figura 9.

En esta ultima imagen se puede apreciar un cambio de tipo cualitativo, en donde sepresenta una modificacion sustancial en la forma de la senal, incluyendo la aparicion de unanueva pendiente dentro de la grafica.

23

Page 24: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Figura 7: Cambio no Cualitativo en la RND

Figura 8: Cambio Cualitativo en la RND

Hecha ya la distincion entre los dos tipos de cambios posibles, es natural preguntarsecuando se presentan cada uno de ellos.

1. Puntos de cambio cualitativo: Los cambios de tipo cualitativo se presentan cuandose produce un cambio en el numero de rangos ∆y que determinan la RND. Por ejemplo,en el caso de la Figura 8, la variacion de los rangos, cuando la ventana se mueve de 1,8a 2,5, es la siguiente.

Figura 9: Cambio en los rangos ∆y con ventana movil

Este cambio en el numero de ∆y, se presenta en 3 oportunidades: Primero, cuando unanueva pendiente entra a la ventana, en cuyo caso aparece un nuevo rango ∆y (situaciondel ejemplo anterior). Segundo, cuando el punto inicial o final de la senal, vista por la

24

Page 25: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

ventana, tiene la misma altura que uno de los puntos de cambio de pendiente dentro deella, en cuyo caso desaparece uno de los rangos, y por ultimo Cuando ambos extremosde la ventana coinciden en la coordenada y, en cuyo caso, tambien desaparece uno delos rangos.

La figura 10 ilustra el segundo caso. La funcion utilizada es la misma del Ejemplo 7.1 ylas posiciones de la ventana son 3 y posteriormente 3.5. Se observa que el punto sobre lafrontera derecha de la ventana (xd, yd), al ir avanzando en su posicion, alcanza la alturade y = 5, el mismo valor en y del punto (4, 5) en donde ocurre un cambio de pendientede la senal original. Como resultado, desaparece el rango comprendido entre [yd, 5] y sepresenta un cambio cualitativo.

Figura 10: Disminucion en los rangos ∆y y consecuencias en la RND

2. Puntos de Cambio no cualitativo: Son todos aquellos comprendidos entre un parde puntos de cambios cualitativos. Es precisamente dentro de estos intervalos dondese puede predecir el comportamiento de la mediana sin realizar todos los calculos paracada uno de los puntos

7.4.2 Cambios en los valores de la mediana con ventana movil

Para evaluar el cambio de la mediana, primero se identifican las condiciones para que se pre-sente un cambio y posteriormente se caracteriza la forma en la que lo hace. Es de anotar, queel cambio en el valor de la mediana no se relaciona directamente con los cambios cualitativoso no cualitativos de la RND. Es decir, puede que en la presencia de un cambio cualitativohaya un cambio en el valor de la mediana o no. Las figuras 11 y 12 ejemplifican la situacion.

Figura 11: Cambios no cualitativos de la RND y efectos sobre la mediana

25

Page 26: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Figura 12: Cambios cualitativos de la RND y efectos sobre la mediana

Proposicion 7.2. La mediana y de una senal lineal a trozos, evaluada a traves de unaventana movil de ancho w, cambia unicamente cuando su valor se encuentra dentro del rangodeterminado por los valores en y de los puntos extremos de la senal, (xi, yi) y (xd, yd), vistospor la ventana. Es decir, cuando y ∈ (yi, yd).

Demostracion. La prueba de esta proposicion quedara clara despues de las pruebas de lassiguientes caracterizaciones del cambio en la mediana movil.

La mediana movil, en los periodos de cambio, muestra un comportamiento bastante clarocuando permanece sobre segmentos de recta de igual pendiente. Esta afirmacion se puedeapreciar claramente en la figura 13, en donde, para distintas senales, se calculo la RNDmoviendo una ventana de ancho w = 4 con pasos de 0.1.

Figura 13: Cambio en la mediana sobre segmentos de igual pendiente

Notese que en la imagen de la derecha, el espacio entre el par de rectas consecutivas, decada paso de la ventana, es mayor que en la imagen de la izquierda. Es decir, la medianaesta cambiando con mayor magnitud en este caso, y corresponde a un rango ∆y en donde elsegmento en el que se encuentra el valor de la mediana tiene una mayor pendiente.

Proposicion 7.3. La mediana movil, dentro de un intervalo no cualitativo de la RND, cambialinealmente con respecto a la posicion de la ventana. La pendiente de esta variacion es igual ala pendiente del segmento de recta correspondiente al ∆y en el que se encuentra la mediana.

Demostracion. Tomemos el punto en donde esta cambiando el rango ∆y debido al movimientode la ventana y llamemos recta frontera a la recta de pendiente mf de la senal original que

26

Page 27: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

interseca a la ventana. En la grafica se ilustra el paso de la ventana desde la posicion 0 a laposicion 1.

Figura 14: Cambio en los ∆y al moverse la ventana

Notese que el cambio en los ∆y viene dado por la distancia d en la grafica que correspondea:

d = mfp en donde p es la longitud del paso dado por la ventana

Si se grafica la RND para ambos pasos de la ventana en el punto de cambio del ∆y, setiene una situacion del estilo de la figura 15.

Figura 15: Efecto del cambio del rango ∆y en la RND

En donde ma y mb son las pendientes de las rectas de sus respectivos rangos. El cambioen la altura que interesa conocer es h, ya que es este el que va a dar la variacion de la medianasi se encontrara en ese intervalo. De la grafica se puede ver que:

h = d−mb∆x

Sabemos que d esta determinado por el cambio en el ∆y generado por el movimiento delongitud p de la ventana, ası d = mfp y de la grafica, sabemos que ∆x = d

ma.

Debido a que nos encontramos en una etapa de cambios no cualitativos de la RND, losvalores que determinan los ∆y dentro de la ventana permanecen constantes. Por otro lado, los∆y correspondientes a ma y mb son adyacentes, y por lo tanto, la pendiente ma resulta ser elparalelo de las mismas pendientes incluidas en el rango de mb EXCEPTUANDO precisamentemf (Para verlo en un ejemplo, ver la Figura 14). Ası, si mb resulta del paralelo de n pendientesm1, . . .mn−1,mf ; ma es el paralelo de las n− 1 pendientes restantes al quitar la pendiente de

27

Page 28: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

la recta frontera. Reemplazando todo lo anterior en la ecuacion, se obtiene:

h = mfp−mb∆x

= mfp−(

1

m1+ . . .+

1

mf

)−1

mfp(1m1

+ . . .+ 1mn−1

)−1

= mfp−

(1

m1+ . . .+

1

mf

)−1(mfp

(1

m1+ . . .+

1

mn−1+

1

mf− 1

mf

))= mfp−

(1

m1+ . . .+

1

mf

)−1(mfp

(1

m1+ . . .+

1

mf

)− p)

= mfp−mfp+

(1

m1+ . . .+

1

mf

)−1

p

= mbp

Este cambio entonces se propaga sobre todas las rectas de la RND comprendidas dentro delrango dado por (yi, yd) y la prueba queda completa.

Con la anterior prueba, queda entonces claro que los cambios de la mediana se producenunicamente cuando se presentan desplazamientos del estilo de la figura 15. Ası queda resueltala proposicion 13.2, pues es claro que estos cambios se producen unicamente por el movimientode los extremos de la senal vista por la ventana. Notese que en la prueba anterior, el signo de lapendiente depende claramente de la grafica en particular. Ası que lo que falta por caracterizares el signo de la pendiente de cambio de la mediana. Como el cambio dentro de un intervalono cualitativo se propaga en cada uno de los segmentos de la RND proporcionalmente a lapendiente de cada intervalo, para conocer el signo del cambio, basta con estudiar el primerpunto de cambio, es decir el cambio que genera el movimiento del punto izquierdo (xi, yi) almoverse la ventana. De la figura 15, se tiene que

h = (ma∆x−mb∆x) = (ma −mb)∆x.

Ası, el signo del cambio depende de las pendientes ma y mb. Con esto en mente, resultan lossiguientes casos posibles

1. El valor de yi aumenta: Si ma < mb, la mediana decrece. Si ma > mb, la medianacrece. La figura 26 ilustra la situacion.

2. El valor de yi disminuye: Es analogo al caso anterior, la graficas se pueden leer dandolos pasos al contrario y resulta lo siguiente: Si ma < mb, la mediana crece. Si ma > mb,la mediana decrece.

3. El valor de yi permanece constante: La mediana se incrementa cuando el intervaloconstante esta saliendo de la ventana (el intervalo constante se encuentra al extremoizquierdo), y decrece si esta entrando (el intervalo constante se encuentra a la derechade la ventana).

28

Page 29: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Figura 16: Signo de la mediana en funcion de ma y mb

7.5 Algoritmos para el calculo del RND y mediana movil de senales linealesa trozos

En esta parte se presentan los algoritmos utilizados para calcular el RND y la mediana movilde una senal lineal a trozos sustentados teoricamente en el capıtulo anterior.

7.6 Algoritmo para el calculo del RND de una senal lineal a trozos

El siguiente es el algoritmo implementado en MATLAB que calcula el RND de una senallineal a trozos sin ventana movil. El algoritmo recibe la senal de entrada en terminos de lascoordenadas (x, y) en las cuales se presenta un cambio de pendiente. Teniendo en cuenta elalgoritmo geometrico dado en el capıtulo anterior, para calcular el reordenamiento de unasenal lineal a trozos, es suficiente encontrar los rangos ∆y importantes y su respectivos ∆xasociados. La idea del algoritmo es analizar cada segmento de recta y las contribuciones de estepara cada uno de los rangos que atraviesa. A continuacion esta la descripcion del algoritmopor pasos.

1. Ordenar de menor a mayor las coordenadas dadas por los puntos en el eje y eliminandolas repeticiones. Los rangos entre cada uno de los puntos constituyen los rangos ∆yi delreordenamiento.

2. Tomar el primer segmento de recta y calcular cuantos y cuales intervalos ∆yi atraviesa.

3. Para cada uno de los rangos ∆yi, calcular el aporte a los ∆xi correspondientes. Comoestamos en el primer segmento de recta, denotaremos cada uno de los aportes como∆x1j , para cada uno de los j rangos ∆y que este segmento intersecta.

Para calcular el aporte se tienen varios casos:

(a) Si la pendiente del segmento de recta es m = 0, no hay aporte a ningun ∆xi, perose guarda la longitud del intervalo constante y el valor al que corresponde.

(b) Si la pendiente es M = ±∞. Cada uno de los ∆x1j = 0.

(c) De lo contrario, para cada uno de los j rangos intersectados, el aporte es ∆x1j =∆yj/m.

La siguiente figura ilustra este paso del algoritmo.

29

Page 30: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Figura 17: Contribucion a cada uno de los ∆x del primer segmento de recta.

4. Repetir el paso anterior para cada uno de los n segmentos de recta que componen lasenal original.

5. La longitud de los rangos ∆xi esta dada por:

∆xi =n∑k=1

∆xki.

6. Anadir a los ∆xi, los intervalos de senal constante para cada uno de los valores en y.

7.7 Algoritmo para el calculo del RND de una senal vista por una ventade ancho w

En el caso que se tenga una ventana de ancho w, para calcular el reordenamiento de la senal,es importante conocer los puntos que intersectan a la ventana cuando esta se encuentra enuna posicion xp determinada. Son importantes las intersecciones de la senal, tanto con en elextremo izquierdo como con el extremo derecho de la misma, ya que estos puntos contribuyena determinar los rangos ∆y del RND. Los pasos del algoritmo son los siguientes.

1. Encontrar la interseccion de la ventana con la senal original. Para esto se calcula laecuacion de la recta y = mx + b, y se busca su valor cuando x = xp, la posicion dela ventana para la interseccion con el borde izquierdo, y cuando x = xp + w para lainterseccion con el extremo derecho.

2. Restringir la senal a los valores que caen dentro del dominio de la ventana.

3. Utilizar el algoritmo de la seccion anterior.

7.8 Algoritmo para calcular la mediana de una senal cuando la ventana esmovil

A partir del reordenamiento obtenido con los algoritmos anteriores, calcular la mediana esencontrar el valor de este en w/2. La idea del siguiente algoritmo es obtener las pendientesde cambio de la mediana para todas las posiciones posibles de la ventana. Como se vio laseccion 7.4, los puntos dentro de rangos no cualitativos son los puntos durante los cuales elcomportamiento de la mediana se puede predecir, ası que el primer algoritmo esta orientadoa encontrar los intervalos no cualitativos.

30

Page 31: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

7.8.1 Algoritmo para identificar los puntos de cambio cualitativo

El siguiente algoritmo evalua los 3 casos posibles en los que se puede dar un cambio cualitativoen el RND de una senal lineal a trozos. Primero se evalua si una nueva pendiente entra a laventana, posteriormente se identifica cuando los extremos de la ventana igualan en el eje y alvalor de algun punto de cambio de pendiente interno, y finalmente se evalua si los puntos enlos extremos de la ventana llegan a coincidir en un mismo valor de y para alguna posicion dela ventana. Estos son los pasos del algoritmo.

1. Identificar si una nueva pendiente entra a la ventana. Para esto se calculan 2 distancias,la primera, la distancia entre la posicion de la ventana y el punto de cambio de pendientede la senal mas cercano a esta, y segundo, la distancia entre la posicion del extremoderecho de la ventana y el punto mas cercano a su derecha. El mınimo entre estas 2distancias corresponde al intervalo en donde no van a entrar nuevas pendientes a laventana.

2. Para cada uno de los intervalos dados por el paso anterior, revisar si los puntos sobrelas fronteras de la ventana, alcanzan la altura de alguno de los puntos internos decambio de pendiente. Para hacerlo, como los puntos de la frontera se mueven sobre lasrectas de la senal original que intersectan a la ventana, conociendo la ecuacion de ambasrectas (la de la frontera izquierda y la de la frontera derecha) y los valores en y de lospuntos de cambio de pendiente internos, se despejan las posiciones de la ventana paralas intersecciones posibles.

3. Revisar si las coordenadas en y de los extremos de la ventana coinciden en algunaposicion de esta. Para hacerlo se encuentra la interseccion entre la recta de la fronteraizquierda y la recta de la frontera derecha, desplazada una cantidad igual al ancho dela ventana.

7.8.2 Algoritmo para el calculo de la mediana con ventana movil

Habiendo ya identificado los intervalos durante los cuales se presentan los cambios de tipono cualitativo, es posible predecir el comportamiento de la mediana sin hacer los calculospara cada uno de estos puntos. El siguiente algoritmo calcula la pendiente a la que cambiala mediana de la senal y los puntos de cambio de pendiente, a medida que la posicion de laventana varıa a lo largo del dominio de la senal de entrada.

1. Encontrar los rangos durante los cuales el RND presenta cambios de tipo no cualitativo.Para esto se utiliza el algoritmo de la seccion anterior. Cada punto de la salida delalgoritmo indica la presencia de un cambio de tipo cualitativo.

2. Para el primer intervalo de cambio no cualitativo, calcular su reordenamiento y sumediana cuando la ventana se encuentra en la posicion dada por el primer valor delintervalo. Hay 2 casos posibles.

3. Si el valor de la mediana se encuentra dentro del rango determinado porlos valores en y de los extremos de la senal dentro de la ventana, encontrar el∆y que contiene al valor de la mediana. La pendiente del segmento de recta del RNDcorrespondiente a este rango, es la pendiente con la que la mediana varıa. Posteriormente

31

Page 32: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

calcular el signo de la pendiente de la mediana, con ayuda de las consideraciones dadasen la seccion 7.4.2.

4. Calcular si la recta que describe la mediana toma alguno de los valores en y de lospuntos internos de cambio de pendiente, o de los extremos de la senal en la ventana.Calcular la primera de estas intersecciones, hay 2 casos posibles.

(a) Si la interseccion es con el valor en y de un punto interno, se produce un cambiode pendiente, ası que se repiten los pasos anteriores desde el paso 2 con la posicionde la ventana igual al valor de la interseccion.

(b) Si la interseccion es con uno de los valores en y, que toman los extremos de laventana, la mediana ha salido entonces del rango de cambio, y la pendiente nuevaes m = 0. Se pasa al siguiente rango de cambios no cualitativos.

5. Si el valor de la mediana no se encuentra dentro del rango en y determinadopor los extremos de la senal dentro de la ventana, tomar la pendiente de lamediana para este punto como m = 0.

6. Calcular si dentro del intervalo de cambios no cualitativos, la mediana entra al rangodado por los extremos moviles.

(a) Si entra, repetir los pasos 3 y 4.

(b) Si no, pasar al siguiente rango no cualitativo y repetir el algoritmo.

7.9 Pequena aplicacion de los algoritmos implementados

A continuacion, una aplicacion basica de los algoritmos anteriores, utilizando la temperaturaregistrada en la estacion meteorologica del aeropuerto el Dorado de la ciudad de Bogota,durante un periodo de 24 horas el dıa 6 y 7 de junio. Los datos se presentan en la tabla 1.

32

Page 33: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Cuadro 1: Datos de la Temperatura en el aeropuerto el Dorado

Fecha Hora Minutos Transcurridos T◦

06/06/2011 14:00 0 2006/06/2011 14:40 40 1906/06/2011 15:00 60 1906/06/2011 15:27 87 1706/06/2011 16:00 120 1706/06/2011 17:00 180 2906/06/2011 18:00 240 1606/06/2011 19:00 300 1506/06/2011 20:00 360 1506/06/2011 20:10 370 1506/06/2011 20:30 390 1406/06/2011 21:00 420 1406/06/2011 21:25 445 1406/06/2011 22:00 480 1406/06/2011 23:00 540 1407/06/2011 00:00 600 1407/06/2011 01:00 660 1307/06/2011 02:00 720 1307/06/2011 03:00 780 1207/06/2011 04:00 840 1107/06/2011 05:00 900 1007/06/2011 05:30 930 1007/06/2011 06:00 960 1107/06/2011 07:00 1020 1207/06/2011 08:00 1080 1407/06/2011 09:00 1140 1507/06/2011 10:00 1200 1807/06/2011 11:00 1260 1907/06/2011 12:00 1320 2107/06/2011 13:00 1380 18

33

Page 34: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Las siguiente es la grafica de los datos de la temperatura y su correspondiente RND ymediana calculados con los algoritmos anteriores implementados en MATLAB.

Figura 18: Grafica de la Temperatura

Figura 19: RND de la temperatura y mediana

Considerando una ventana movil de ancho w = 4 horas, se puede calcular la variacion dela mediana de esta senal durante este periodo, la grafica obtenida se muestra en la figura 20.

Figura 20: Cambio en la mediana con ventana movil de ancho 4 horas

34

Page 35: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

8 VALIDACION DEL TRABAJO

8.1 Metodologıa de prueba

Las pruebas corresponden a buscar la correspondencia entre los resultados teoricos y losresultados practicos, a continuacion se detalla el proceso de prueba de los algoritmos.

1. Pruebas del algoritmo de reordenamiento: Para probar el algoritmo que calcula el reor-denamiento de una senal lineal a trozos, se introducen diferentes senales en vectores decoordenadas x e y. Tener en cuenta que los vectores de coordenadas deben ser vectoresfila. El algoritmo arroja como resultado dos vectores coordX, coordY, los cuales con-tienen las coordenadas de la senal reordenada, graficar el resultado y comparar con elresultado obtenido matematicamente.

2. Pruebas del algoritmo de ventana movil: Para realizar las pruebas se elaboro una interfazgrafica de MATLAB para corroborar los datos mas facilmente. La figura 21, muestra laventana producida por el algoritmo.

Figura 21: Interfaz grafica

La tabla de la ventana permite introducir los datos de la senal de entrada de formamanual. Una vez ingresada la senal de interes, escoger, en la parte inferior derecha de

35

Page 36: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

la interfaz, el ancho y posicion de la ventana movil. Para calcular su RND, basta conoprimir el Boton NDR. Al oprimirlo aparecera en la grafica de la parte superior, la senaloriginal junto con la posicion de la ventana, y en la grafica inferior su RND y el valorde la mediana. El boton de sensibilidad permite ajustar pasos fijos para modificar laposicion de la ventana con ayuda de los botones +/−.

Teniendo esto en cuenta, para probar el algoritmo de mediana movil, se puede introduciruna senal a la interfaz y calcular el RND en varios posiciones de la ventana, suficientespara tener una buena grafica del comportamiento de la mediana. Comparar con elresultado de introducir la misma senal x, y como vectores fila, y el ancho de la ventanadentro del algoritmo de darMedianaMovil.

8.2 Validacion de los resultados de trabajo

A continuacion se muestran los resultados obtenidos para una senal en particular con ayudade los algoritmos. La senal Original junto con su grafica se presentan en la figura 22

Figura 22: Senal de Entrada

Se calculo su RND para varios puntos y se obtuvo la figura 23 de la variacion de la medianacon respecto a la posicion de la ventana.

Figura 23: Valor de la mediana vs posicion de la ventana

36

Page 37: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Los segmentos lineales se graficaron con ayuda de excel y se les calculo la regresion linealpara verificar la pendiente de cambio de la mediana, la figura 24, muestra el resultado.

Figura 24: Regresion lineal de los segmentos de recta creciente y decreciente

La figura de la derecha corresponde a la primera pendiente distinta de cero que se presentaen la grafica 23, mientras que la segunda corresponde al segmento creciente. Las pendientesson -3 y 2 respectivamente.

Tomando la misma senal e introduciendola en el algoritmo darMedianaMovil, con losvectores fila de x, y y tomando el ancho de la ventana igual a 4, se obtiene,

Figura 25: Salida del algoritmo darMedianaMovil

El vector puntos importantes muestra los puntos en los que se presenta un cambio detipo cualitativo. El vector puntosDeCambio, muestra los puntos de cambio cualitativo maslos puntos en los cuales la pendiente de la senal de la mediana cambia. Los valores correspon-dientes a cada uno estos puntos se encuentran en el vector pendientes. Comparando con laspendientes calculadas con regresion lineal y con la grafica 23, se comprueba que el algoritmofunciona de manera correcta.

8.3 Evaluacion del plan de trabajo

Comparando las actividades hechas en la propuesta del proyecto de grado con las desarrolladasen la practica, se puede ver que se cumplio con los algoritmos de ordenamiento de senaleslineales a trozos y calculo de la mediana con ventana movil. De igual manera se caracterizo el

37

Page 38: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

comportamiento del reordenamiento y de la mediana en este ultimo caso, permitiendo laimplementacion del algoritmo. Sin embargo, el algoritmo para la aproximacion de una senalde parametro continuo por medio de una senal lineal a trozos, no pudo ser llevado a cabo porcuestiones de tiempo y planeacion.

El plan de trabajo contaba con unos tiempos aproximados para la elaboracion de cadatarea que se fijaron durante la construccion de la propuesta, cuando aun los conceptos nece-sarios para la realizacion del proyecto eran muy basicos, es por eso que durante el proceso dedesarrollo, algunas de las labores planeadas tomaron mas tiempo de lo previsto, lo cual nopermitio cumplir con uno de los algoritmos planteados dentro de los objetivos del proyecto.Sin embargo las actividades se llevaron a cabo lo mas cercano posible a lo deseado.

Las actividades siempre estuvieron supervisadas por el asesor del proyecto y quedan variostemas en los que se puede profundizar y avanzar en otros sentidos de la investigacion paracomplementar el proyecto aca descrito.

9 DISCUSION

El trabajo tuvo varias etapas de desarrollo, en un comienzo la revision bibliografica fue laparte esencial del proyecto. Posteriormente, habiendo entendido los conceptos de RND, seimplemento el algoritmo de reordenamiento para una senal lineal a trozos con base en elalgoritmo geometrico que se introdujo en la seccion 7.3. El algoritmo desarrollado consideranuevos casos de los ya trabajados por un grupo de estudiantes de la universidad y que se refen-cian en [2]. Este nuevo algoritmo calcula el reordenamiento sin importar si la senal de entradapresenta discontinuidades de tipo salto, ademas que para hacerlo, toma una aproximaciondistinta a la desarrollada en el algoritmo inicial.

Viendo la necesidad de realizar una gran cantidad de pruebas para poder caracterizar elcomportamiento del RND en el caso del filtro mediana analogo (ventana movil), se imple-mento la interfaz grafica en MATLAB, descrita en la seccion anterior. Con esta fue posiblegenerar pequenos cambio a gusto del usuario, y se conto con la visualizacion de los datos sinnecesidad de la escritura de codigo, agilizando el proceso de analisis de las posibles situacionesde cambio dentro del RND de una senal y la recoleccion de distintos tipos de datos a partirde la senal original.

Despues de tomar los valores de la mediana para distintos tipos de senales, variandola posicion de la ventana y graficarlos en Excel. Se calcularon las regresiones lineales, porsegmentos de recta, para poder determinar las pendientes de cambio de la mediana en cadauno de los casos. El resultado permitio inferir que el cambio de la mediana estaba relacionadodirectamente con la pendiente del rango en que el que se encuentra contenida. Una vezhecha esta suposicion, se paso a buscar la deduccion matematica que sustentara el resultado,obteniendo poco exito en un principio. Despues de varios intentos, finalmente la deduccion sepudo llevar a cabo, incluyendo tambien el analisis del signo de la pendiente de la mediana.Teniendo la caracterizacion completa, se pudo comenzar la implementacion del algoritmo quese presenta en este documento.

El haber descuidado el algoritmo para aproximar una senal por medio de segmentos li-neales, al considerarlo erroneamente de menor importancia que el resto de tareas, fue una delas razones por las cuales no se pudo llevar a cabo su realizacion. Esto entonces incluye unalimitacion dentro del proyecto ya que, en este momento, el funcionamiento de los algoritmos

38

Page 39: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

esta restringido a los casos de senales lineales a trozos unicamente.Es de enfatizar que la caracterizacion de la mediana en el caso de la ventana movil, es el

aporte mas importante de mi trabajo y esto incluye la elaboracion del algoritmo con el cual esposible poner en practica el filtro mediana movil una vez se realice la aproximacion necesariade la senal con un error determinable.

Quedan entonces varias situaciones abiertas para continuar el proyecto. En la parte practi-ca, el desarrollo del algoritmo faltante y la posibilidad de hacer la implementacion fısica delfiltro. En [1], se aborda ligeramente el tema al final del artıculo, recalcando la dificultad de laimplementacion haciendo uso del concepto de reordenamiento, no obstante, hace enfasis tam-bien en que otras aproximaciones al filtro mediana analogo, utilizando soluciones a ecuacionesdiferenciales, han sido implementados con exito. Es entonces un buen tema para continuarla investigacion y complementar los resultados practicos aquı expuestos. En el aspecto teori-co, es bien conocido que la caracterizacion de los funcionales sobre el espacio de funcionescontinuas de soporte compacto fue hecho por Riesz en su famoso teorema de representacion.Sin embargo el espacio de funciones discontinuas tiene aun mucho trabajo por delante. Sise obtuviera una caracterizacion completa de los funcionales sobre este tipo de espacios, seabrirıa la posibilidad de nuevas aproximaciones al problema de filtros estadısticos para senalesanalogas. Quedo abierta la posibilidad de seguir estudiando los funcionales vistos como fun-ciones de 2 variables y estudiar las condiciones que garanticen la convergencia de las seriesobtenidas como resultado de aplicar un funcional a una funcion escalera.

10 CONCLUSIONES

1. Resultados del Proyecto: Algoritmo de reordenamiento no decreciente para una senallineal a trozos, Caracterizacion de la mediana de una senal lineal a trozos con ventanamovil, Algoritmo para el calculo de la mediana de una senal lineal a trozos con venta-na movil, Algoritmos intermedios como los algoritmos de calculos de pendientes y designos.(Ver anexo)

2. Contribuciones originales del proyecto: Dentro de las contribuciones originales de esteproyecto se encuentra la caracterizacion de la mediana de una senal lineal a trozos enel caso de tener una ventana movil y su algoritmo correspondiente. Lo destaco en lamedida que reduce a un numero finito los calculos para obtener la mediana y los cambiosde la senal, cuando esta tiene un numero finito de cambios de pendiente. Esto ultimohace posible su implementacion practica. Por otro lado se realizo la implementacion delalgoritmo de reordenamiento para senales lineales a trozos aumentando los casos posiblesy se desarrollo una interfaz grafica que permite el estudio del reordenamiento de unasenal y el calculo de la mediana de una manera mucho mas interactiva y didactica, quepuede ser util incluso, en el ambito de la ensenanza o para practicas en el laboratorio.

3. Sugerencias para un trabajo futuro: Estudiar la implementacion del filtro mediana analo-go y la implementacion del algoritmo de aproximacion de senales mediante el uso desenales lineales a trozos.

Como conclusiones de este trabajo se tienen:

39

Page 40: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

1. Los filtros analogos del tipo de ordenamiento de rango, a diferencia del caso discreto,han sido poco estudiados, con lo que constituyen un amplio tema de investigacion.

2. El ejemplo de la temperatura del dıa en Bogota, es una de las posibles aplicacionesdel filtro mediana analogo, ademas de contar con informacion como el promedio dela temperatura, es posible contar con otras estadısticas que permitan conocer mas in-formacion acerca de la variable medida, y cuyos resultados pueden ser de utilidad enmultiples industrias como la agrıcola, por poner un caso particular.

3. Aunque en el ejemplo de la temperatura, la senal de entrada al algoritmo no fue analoga,es una prueba de que tomando muestras de la senal analoga e interpolando linealmentesu valor dentro del intervalo, se puede construir una aproximacion lineal a trozos de lasenal.

4. El caracter lineal de cada uno de los segmentos de las senales lineales a trozos facilitanel desarrollo y el calculo del RND y la mediana analoga. Ejemplo de ello es el algoritmogeometrico para el RDN de una senal.

5. La linealidad de la senal original se refleja en el comportamiento lineal de la variacion dela mediana. Ası, la salida del filtro mediana analogo es una senal lineal a trozos cuandola entrada es lineal a trozos.

6. El desarrollo e implementacion de los algoritmos en MATLAB, facilito el proceso devisualizacion de los datos, debido a la forma en que MATLAB interpola linealmente lasgraficas, haciendo necesario unicamente un par de puntos para cada recta dibujada.

11 AGRADECIMIENTOS

Agradezco a Alfredo Restrepo por ser el asesor de este proyecto y quien me introdujo en esteinteresante tema de estudio y a mi familia por brindarme su apoyo durante todos estos anos.

40

Page 41: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

12 BIBLIOGRAFIA

[1] P.Ferreira, “Sorting continuous-time signals: analog median filter”, IEEE trasn. signalProcess.,vol 49, no 11 pp 2734-2744,Nov 2001.

[2] A.Restrepo, J. Prada, R. Bernal. “On the piecewise-linear approximate computation ofanalog l-filters”. Por publicar.

[3] J.P. Fitch, E.J. Coyle and N.C. Gallagher, “The analog median filter”, IEEE Trans.Circuits Systems,. Vol 33, pp 94-102. Enero. 1986.

[4] E. Hille, JD, Tamarkin, “Remarks of a known example of a monotone continuous fun-ction”.The American Mathematical Monthly, Vol. 36, No. 5 (May, 1929), pp. 255-264.

[5] Rudin, W. “Principles of Mathematical Analysis”, McGraw-Hill, Madison, WN. 1976.

[6] Kanwal, Ram. “Generalized functions: Theory and Technique”, Academic Press. 1983.

[7] T. Apostol, “Mathematical Analysis”,Addison-Wesley Publishing Company, 2nd Edi-tion.1981.

13 APENDICES

Aca se presentan los codigos en MATLAB implementados. Todos los codigos se encuentrandebidamente comentados.

13.1 Algoritmo de Ordenamiento

Aca se presenta el algoritmo de ordenamiento, junto con todas las funciones creadas para estefin.

1. darrangos.m.

1 %f u n c i o n que e n t r e g a e l v e c t o r de v a l o r e s en ”y” c o n t e n i d o s en cada uno de

2 %l o s segmentos de r e c t a

3 %r e c i b e l a s coordenadas en ”y” de l a r e c t a

4 function [ rangoy ]=darrangos ( recta , y )

56 rangoy=unique (y ) ;

7 rectaOrd=sort ( r e c ta ) ;

8 longy=s ize ( rangoy ) ;

910 %Borra l o s e l e m e n t o s menores a l menor numero de l a r e c t a

11 for i =1: longy (2)

12 i f rangoy ( i )==rectaOrd (1)

13 break

14 end

15 end

16 %Borra l o s e l e m e n t o s mayores a l mayor v a l o r de l a r e c t a

17 for j =1: longy (2)

18 i f rangoy ( j )==rectaOrd (2)

19 break

20 end

21 end

22 rangoy=rangoy ( i : j ) ;

41

Page 42: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

2. darnumdelta.m

1 %f u n c i o n que e n t r e g a e l v e c t o r de v a l o r e s en ”y” c o n t e n i d o s en cada uno de

2 %l o s segmentos de r e c t a

3 %r e c i b e l a s coordenadas en ”y” de l a r e c t a

4 function [ rangoy ]=darrangos ( recta , y )

56 rangoy=unique (y ) ;

7 rectaOrd=sort ( r e c ta ) ;

8 longy=s ize ( rangoy ) ;

910 %Borra l o s e l e m e n t o s menores a l menor numero de l a r e c t a

11 for i =1: longy (2)

12 i f rangoy ( i )==rectaOrd (1)

13 break

14 end

15 end

16 %Borra l o s e l e m e n t o s mayores a l mayor v a l o r de l a r e c t a

17 for j =1: longy (2)

18 i f rangoy ( j )==rectaOrd (2)

19 break

20 end

21 end

22 rangoy=rangoy ( i : j ) ;

3. ordenamiento.m

1 %Programa que toma una s e n a l y l a e n t r e g a reordenada de forma no d e c r e c i e n t e

2 function [ coordX , coordY]=ordenamiento (x , y )

3 %Sena l de en t rada

45 longy=s ize ( y ) ;

6 longx=s ize ( x ) ;

7 %f i g u r e ( 1 ) ;

8 %p l o t ( x , y ) ; t i t l e ( ’ G r a f i c a s e n a l o r i g i n a l ’ )

910 %v e c t o r de coordenadas de l a s e n a l reordenada

11 yOrd=unique (y ) ;

12 cantidadRangos=s ize (yOrd) ;

13 %v e c t o r con l a s l o n g i t u d e s c o r r e s p o n d i e n t e s a cada uno de l o s d e l t a y

14 xNuevo=zeros ( s ize (yOrd) ) ;

15 xConst=zeros ( s ize (yOrd) ) ;

16 cantConst=0;

17 numY=longy (1 , 2 ) ;

18 numX=longx (1 , 2 ) ;

1920 %C a l c u l o de l a s l o n g i t u d e s de cada uno de l o s segmentos c o r r e s p o n d i e n t e s a

21 %cada rango

22 %Para cada uno de l o s segmentos de r e c t a :

23 for j = 1 :numX−124 %Se c a l c u l a l a p e n d i e n t e de cada uno de l o s segmentos l i n e a l e s

25 pendiente=(y ( j +1)−y ( j ) ) /(x ( j +1)−x ( j ) ) ;

26 %se buscan cu an tos rangos caen d e n t r o d e l segmento de r e c t a

27 rangosContenidos=darrangos ( [ y ( j +1) y ( j ) ] , y ) ;

28 numContenido=s ize ( rangosContenidos ) ;

293031 i f pendiente==0 %( p e n d i e n t e =0)

32 numdelta=darnumdelta (yOrd , y ( j ) ) ;

33 %Si es un nuevo segmento c o n s t a n t e se cuenta uno mas

34 i f xConst ( numdelta )==0

35 cantConst=cantConst+1;

36 end

37 xConst ( numdelta )=xConst ( numdelta )+x( j +1)−x ( j ) ;

3839 end

40 %Notese que todo segmento de r e c t a c o n t i e n e almenos 2 rangos ( su punto

41 %i n i c i a l y su punto f i n a l ) , s o l o cuando l a p e n d i e n t e es cero , va a

42 %t e n e r un s o l o rango

43 %Creaci on de nuevo v e c t o r de coordenadas en X cuando l a p e n d i e n t e es

42

Page 43: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

44 %d i s t i n t a de cero

4546 for i = 1 : numContenido (2)−1

47 %n e c e s i t o ver a que rango c o r r e s p o n d e cada d e l t a X y sumarlo

48 numdelta=darnumdelta (yOrd , rangosContenidos ( i ) ) ;

49 deltaX=(rangosContenidos ( i )−rangosContenidos ( i +1) ) / pendiente ;

50 xNuevo ( numdelta )=xNuevo ( numdelta )+abs ( deltaX ) ;

51 end

52 end

5354 %G r a f i c a de l a s e n a l reordenada

55 n=s ize ( xNuevo ) ;

56 tamCoordX=n(2)+cantConst−1;

57 coordX=zeros (1 , tamCoordX) ;

58 coordY=zeros (1 , tamCoordX) ;

59 coordY (1)=yOrd (1) ;

60 k=1;

61 yOrd=[yOrd yOrd( cantidadRangos (2) ) ] ;

62 for i =1: cantidadRangos (2)

63 coordX (k+1)=coordX (k )+xConst ( i ) ;

64 i f xConst ( i )˜=0

65 coordY (k+1)=coordY (k ) ;

66 k=k+1;

67 end

68 coordX (k+1)=coordX (k )+xNuevo ( i ) ;

69 coordY (k+1)=yOrd( i +1) ;

70 k=k+1;

71 end

13.2 Interfaz grafica y ventana movil1. intefazNDR.m.

1 function varargout = intefazNDR ( vararg in )

2 % INTEFAZNDR M− f i l e f o r intefazNDR . f i g

3 % INTEFAZNDR, by i t s e l f , c r e a t e s a new INTEFAZNDR or r a i s e s t h e e x i s t i n g

4 % s i n g l e t o n ∗ .

5 %

6 % H = INTEFAZNDR r e t u r n s t h e hand l e t o a new INTEFAZNDR or t h e hand l e t o

7 % t h e e x i s t i n g s i n g l e t o n ∗ .

8 %

9 % INTEFAZNDR( ’CALLBACK’ , hObject , eventData , hand les , . . . ) c a l l s t h e l o c a l

10 % f u n c t i o n named CALLBACK in INTEFAZNDR.M w i t h t h e g i v e n i n p u t arguments .

11 %

12 % INTEFAZNDR( ’ Property ’ , ’ Value ’ , . . . ) c r e a t e s a new INTEFAZNDR or r a i s e s t h e

13 % e x i s t i n g s i n g l e t o n ∗ . S t a r t i n g from t h e l e f t , p r o p e r t y v a l u e p a i r s are

14 % a p p l i e d t o t h e GUI b e f o r e intefazNDR OpeningFcn g e t s c a l l e d . An

15 % u n r e c o g n i z e d p r o p e r t y name or i n v a l i d v a l u e makes p r o p e r t y a p p l i c a t i o n

16 % s t o p . A l l i n p u t s are pas sed t o intefazNDR OpeningFcn v i a v a r a r g i n .

17 %

18 % ∗See GUI Opt ions on GUIDE’ s Tools menu . Choose ”GUI a l l o w s o n l y one

19 % i n s t a n c e t o run ( s i n g l e t o n ) ” .

20 %

21 % See a l s o : GUIDE, GUIDATA, GUIHANDLES

2223 % Ed i t t h e above t e x t t o modi fy t h e r e s p o n s e t o h e l p intefazNDR

2425 % Last Modi f i ed by GUIDE v2 . 5 08−Jun−2011 1 3 : 5 2 : 0 5

2627 % Begin i n i t i a l i z a t i o n code − DO NOT EDIT

28 gu i S i ng l e t on = 1 ;

29 gu i S t a t e = s t ru c t ( ’ gui Name ’ , mfilename , . . .

30 ’ g u i S i n g l e t on ’ , gu i S ing l e ton , . . .

31 ’ gui OpeningFcn ’ , @intefazNDR OpeningFcn , . . .

32 ’ gui OutputFcn ’ , @intefazNDR OutputFcn , . . .

33 ’ gui LayoutFcn ’ , [ ] , . . .

34 ’ gu i Ca l lback ’ , [ ] ) ;

35 i f nargin && i s cha r ( vararg in {1})36 gu i S t a t e . gu i Ca l lback = s t r2 func ( vararg in {1}) ;

43

Page 44: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

37 end

3839 i f nargout

40 [ varargout {1 :nargout } ] = gui mainfcn ( gu i State , vararg in { :} ) ;

41 else

42 gui mainfcn ( gu i State , vararg in { :} ) ;

43 end

44 % End i n i t i a l i z a t i o n code − DO NOT EDIT

454647 %−−− Execu te s j u s t b e f o r e intefazNDR i s made v i s i b l e .

48 function intefazNDR OpeningFcn ( hObject , eventdata , handles , vararg in )

49 % This f u n c t i o n has no o u t p u t args , s e e OutputFcn .

50 % h Obje c t hand l e t o f i g u r e

51 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

52 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

53 % v a r a r g i n command l i n e arguments t o intefazNDR ( s e e VARARGIN)

5455 % Choose d e f a u l t command l i n e o u t p u t f o r intefazNDR

56 handles . output = hObject ;

5758 % Update h a n d l e s s t r u c t u r e

59 guidata ( hObject , handles ) ;

6061 global vectorpos vectormediana ;

62 vectorpos = [ ] ;

63 vectormediana = [ ] ;

64 % UIWAIT makes intefazNDR w a i t f o r user r e s p o n s e ( s e e UIRESUME)

65 % u i w a i t ( h a n d l e s . f i g u r e 1 ) ;

666768 %−−− Outputs from t h i s f u n c t i o n are r e t u r n e d t o t h e command l i n e .

69 function varargout = intefazNDR OutputFcn ( hObject , eventdata , handles )

70 % v a r a r g o u t c e l l array f o r r e t u r n i n g o u t p u t a r g s ( s e e VARARGOUT) ;

71 % h Obje c t hand l e t o f i g u r e

72 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

73 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

7475 % Get d e f a u l t command l i n e o u t p u t from h a n d l e s s t r u c t u r e

76 varargout {1} = handles . output ;

777879 %−−− Execu te s on b u t t o n p r e s s in p u s h b u t t o n 1 .

80 function pushbutton1 Cal lback ( hObject , eventdata , handles )

81 % h Obje c t hand l e t o p u s h b u t t o n 1 ( s e e GCBO)

82 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

83 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

84 cla ( handles . axes2 ) ;

8586 %−−− Execu te s on b u t t o n p r e s s in p u s h b u t t o n 3 .

87 function pushbutton3 Cal lback ( hObject , eventdata , handles )

88 % h Obje c t hand l e t o p u s h b u t t o n 3 ( s e e GCBO)

89 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

90 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

91 ndr ( handles )

9293 %Lectura de l a s coordenadas dadas en l a Tabla de l a i n t e r f a z

94 function ndr ( handles )

95 global vectorpos vectormediana ;

96 coordenadas=get ( handles . u i tab l e1 , ’Data ’ ) ;

97 x=coordenadas ( : , 1 ) ;

98 y=coordenadas ( : , 2 ) ;

99 x=x ’ ;

100 y=y ’ ;

101 x ( c e l l f u n (@isempty , x ) ) = [ ] ;

102 y ( c e l l f u n (@isempty , y ) ) = [ ] ;

103 matx=c e l l f u n (@str2num , x ) ;

104 maty=c e l l f u n (@str2num , y ) ;

105 a s s i gn i n ( ’ base ’ , ’ senalX ’ ,matx ) ;

44

Page 45: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

106 a s s i gn i n ( ’ base ’ , ’ senalY ’ ,maty ) ;

107108109 %C a l c u l o de l a NDR

110 po s i c i on=get ( handles . ed i t2 , ’ S t r ing ’ ) ;

111 posVentana=str2num( po s i c i on ) ;

112 ancho=get ( handles . ed i t1 , ’ S t r ing ’ ) ;

113 w=str2num( ancho ) ;

114 a s s i gn i n ( ’ base ’ , ’ pos ’ , posVentana ) ;

115 [ xventana , yventana ]=ventanamovil ( posVentana ,w,matx , maty ) ;

116 [ coordX , coordY]=ordenamiento ( xventana , yventana ) ;

117 a s s i gn i n ( ’ base ’ , ’ coordX ’ , coordX ) ;

118 a s s i gn i n ( ’ base ’ , ’ coordY ’ , coordY ) ;

119 plot ( handles . axes2 , coordX , coordY ) ;

120 hold a l l ;

121122 %C a l c u l o de l a ventana g r a f i c a

123 yord=unique (maty ) ;

124 x i n i=posVentana ;

125 x f i n=posVentana+w;

126 y i n i=yord (1) ;

127 y f i n=yord (end) ;

128 x1=[ x i n i x i n i ] ;

129 y1=[ y i n i y f i n ] ;

130 x2=[ x f i n x f i n ] ;

131 y2=[ y i n i y f i n ] ;

132 %G r a f i c a de l a f u n c i o n O r i g i n a l

133 plot ( handles . axes1 , matx , maty , x1 , y1 , x2 , y2 ) ;

134135 %C a l c u l o de l a mediana

136 med=mediana (w, coordX , coordY ) ;

137 set ( handles . text9 , ’ S t r ing ’ ,med) ;

138 vectorpos=[ vectorpos posVentana ] ;

139 vectormediana=[ vectormediana med ] ;

140 a s s i gn i n ( ’ base ’ , ’ p o s i c i on ’ , vectorpos ) ;

141 a s s i gn i n ( ’ base ’ , ’ mediana ’ , vectormediana ) ;

142143144145146 %−−− Execu te s when e n t e r e d data in e d i t a b l e c e l l ( s ) in u i t a b l e 1 .

147 function u i t ab l e 1 Ce l lEd i tCa l l ba ck ( hObject , eventdata , handles )

148 % h Obje c t hand l e t o u i t a b l e 1 ( s e e GCBO)

149 % e v e n t d a t a s t r u c t u r e w i t h t h e f o l l o w i n g f i e l d s ( s e e UITABLE)

150 % I n d i c e s : row and column i n d i c e s o f t h e c e l l ( s ) e d i t e d

151 % PreviousData : p r e v i o u s data f o r t h e c e l l ( s ) e d i t e d

152 % EditData : s t r i n g ( s ) e n t e r e d by t h e user

153 % NewData : Edi tData or i t s c o n v e r t e d form s e t on t h e Data p r o p e r t y . Empty i f Data wasnot changed

154 % Error : e r r o r s t r i n g when f a i l e d t o c o n v e r t Edi tData t o a p p r o p r i a t e v a l u e f o r Data

155 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

156 %h a n d l e s . coordenadas=g e t ( hObject , ’ Data ’ ) ;

157 %g u i d a t a ( hObject , h a n d l e s ) ;

158159160 %−−− I f Enab le == ’ on ’ , e x e c u t e s on mouse p r e s s in 5 p i x e l b o r d e r .

161 %−−− Otherwise , e x e c u t e s on mouse p r e s s in 5 p i x e l b o r d e r or over p u s h b u t t o n 3 .

162 function pushbutton3 ButtonDownFcn ( hObject , eventdata , handles )

163 % h Obje c t hand l e t o p u s h b u t t o n 3 ( s e e GCBO)

164 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

165 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

166167168 %−−− Execu te s d u r i n g o b j e c t c r e a t i o n , a f t e r s e t t i n g a l l p r o p e r t i e s .

169 function axes1 CreateFcn ( hObject , eventdata , handles )

170 % h Obje c t hand l e t o axes1 ( s e e GCBO)

171 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

172 % h a n d l e s empty − h a n d l e s not c r e a t e d u n t i l a f t e r a l l CreateFcns c a l l e d

173174 % Hint : p l a c e code in OpeningFcn t o p o p u l a t e axes1

45

Page 46: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

175176177178 function ed i t 1 Ca l l back ( hObject , eventdata , handles )

179 % h Obje c t hand l e t o e d i t 1 ( s e e GCBO)

180 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

181 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

182183 % Hints : g e t ( hObject , ’ S t r i n g ’ ) r e t u r n s c o n t e n t s o f e d i t 1 as t e x t

184 % s t r 2 d o u b l e ( g e t ( hObject , ’ S t r i n g ’ ) ) r e t u r n s c o n t e n t s o f e d i t 1 as a d o u b l e

185186187 %−−− Execu te s d u r i n g o b j e c t c r e a t i o n , a f t e r s e t t i n g a l l p r o p e r t i e s .

188 function ed i t1 CreateFcn ( hObject , eventdata , handles )

189 % h Obje c t hand l e t o e d i t 1 ( s e e GCBO)

190 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

191 % h a n d l e s empty − h a n d l e s not c r e a t e d u n t i l a f t e r a l l CreateFcns c a l l e d

192193 % Hint : e d i t c o n t r o l s u s u a l l y have a w h i t e background on Windows .

194 % See ISPC and COMPUTER.

195 i f i s p c && i s e qua l (get ( hObject , ’ BackgroundColor ’ ) , get (0 , ’ de fau l tUicontro lBackgroundColor ’ ) )

196 set ( hObject , ’ BackgroundColor ’ , ’ white ’ ) ;

197 end

198199200201 function ed i t 2 Ca l l back ( hObject , eventdata , handles )

202 % h Obje c t hand l e t o e d i t 2 ( s e e GCBO)

203 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

204 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

205206 % Hints : g e t ( hObject , ’ S t r i n g ’ ) r e t u r n s c o n t e n t s o f e d i t 2 as t e x t

207 % s t r 2 d o u b l e ( g e t ( hObject , ’ S t r i n g ’ ) ) r e t u r n s c o n t e n t s o f e d i t 2 as a d o u b l e

208209210 %−−− Execu te s d u r i n g o b j e c t c r e a t i o n , a f t e r s e t t i n g a l l p r o p e r t i e s .

211 function ed i t2 CreateFcn ( hObject , eventdata , handles )

212 % h Obje c t hand l e t o e d i t 2 ( s e e GCBO)

213 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

214 % h a n d l e s empty − h a n d l e s not c r e a t e d u n t i l a f t e r a l l CreateFcns c a l l e d

215216 % Hint : e d i t c o n t r o l s u s u a l l y have a w h i t e background on Windows .

217 % See ISPC and COMPUTER.

218 i f i s p c && i s e qua l (get ( hObject , ’ BackgroundColor ’ ) , get (0 , ’ de fau l tUicontro lBackgroundColor ’ ) )

219 set ( hObject , ’ BackgroundColor ’ , ’ white ’ ) ;

220 end

221222223 %−−− Execu te s on b u t t o n p r e s s in p u s h b u t t o n 4 .

224 function pushbutton4 Cal lback ( hObject , eventdata , handles )

225 % h Obje c t hand l e t o p u s h b u t t o n 4 ( s e e GCBO)

226 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

227 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

228 valPos=get ( handles . ed i t2 , ’ S t r ing ’ ) ;

229 po s i c i on=str2num( valPos ) ;

230 pasos=get ( handles . ed i t4 , ’ S t r ing ’ ) ;

231 paso=str2num( pasos ) ;

232 po s i c i on=pos i c i on+paso ;

233 set ( handles . ed i t2 , ’ S t r ing ’ , po s i c i on ) ;

234 guidata ( hObject , handles ) ;

235 actua l i zarGrafVentana ( handles ) ;

236 ndr ( handles )

237238 %−−− Execu te s on b u t t o n p r e s s in p u s h b u t t o n 5 .

239 function pushbutton5 Cal lback ( hObject , eventdata , handles )

240 % h Obje c t hand l e t o p u s h b u t t o n 5 ( s e e GCBO)

241 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

242 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

243 valPos=get ( handles . ed i t2 , ’ S t r ing ’ ) ;

46

Page 47: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

244 po s i c i on=str2num( valPos ) ;

245 pasos=get ( handles . ed i t4 , ’ S t r ing ’ ) ;

246 paso=str2num( pasos ) ;

247 po s i c i on=pos i c ion−paso ;

248 set ( handles . ed i t2 , ’ S t r ing ’ , po s i c i on ) ;

249 guidata ( hObject , handles ) ;

250 actua l i zarGrafVentana ( handles ) ;

251252253 %−−− I f Enab le == ’ on ’ , e x e c u t e s on mouse p r e s s in 5 p i x e l b o r d e r .

254 %−−− Otherwise , e x e c u t e s on mouse p r e s s in 5 p i x e l b o r d e r or over p u s h b u t t o n 4 .

255 function pushbutton4 ButtonDownFcn ( hObject , eventdata , handles )

256 % h Obje c t hand l e t o p u s h b u t t o n 4 ( s e e GCBO)

257 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

258 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

259260261262 function ed i t 4 Ca l l back ( hObject , eventdata , handles )

263 % h Obje c t hand l e t o e d i t 4 ( s e e GCBO)

264 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

265 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

266267 % Hints : g e t ( hObject , ’ S t r i n g ’ ) r e t u r n s c o n t e n t s o f e d i t 4 as t e x t

268 % s t r 2 d o u b l e ( g e t ( hObject , ’ S t r i n g ’ ) ) r e t u r n s c o n t e n t s o f e d i t 4 as a d o u b l e

269270271 %−−− Execu te s d u r i n g o b j e c t c r e a t i o n , a f t e r s e t t i n g a l l p r o p e r t i e s .

272 function ed i t4 CreateFcn ( hObject , eventdata , handles )

273 % h Obje c t hand l e t o e d i t 4 ( s e e GCBO)

274 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

275 % h a n d l e s empty − h a n d l e s not c r e a t e d u n t i l a f t e r a l l CreateFcns c a l l e d

276277 % Hint : e d i t c o n t r o l s u s u a l l y have a w h i t e background on Windows .

278 % See ISPC and COMPUTER.

279 i f i s p c && i s e qua l (get ( hObject , ’ BackgroundColor ’ ) , get (0 , ’ de fau l tUicontro lBackgroundColor ’ ) )

280 set ( hObject , ’ BackgroundColor ’ , ’ white ’ ) ;

281 end

282283 function actua l i zarGrafVentana ( handles )

284 coordenadas=get ( handles . u i tab l e1 , ’Data ’ ) ;

285 x=coordenadas ( : , 1 ) ;

286 y=coordenadas ( : , 2 ) ;

287 x=x ’ ;

288 y=y ’ ;

289 x ( c e l l f u n (@isempty , x ) ) = [ ] ;

290 y ( c e l l f u n (@isempty , y ) ) = [ ] ;

291 matx=c e l l f u n (@str2num , x ) ;

292 maty=c e l l f u n (@str2num , y ) ;

293294295 %C a l c u l o de l a NDR

296 po s i c i on=get ( handles . ed i t2 , ’ S t r ing ’ ) ;

297 posVentana=str2num( po s i c i on ) ;

298 ancho=get ( handles . ed i t1 , ’ S t r ing ’ ) ;

299 w=str2num( ancho ) ;

300301 %C a l c u l o de l a ventana g r a f i c a

302 yord=unique (maty ) ;

303 x i n i=posVentana ;

304 x f i n=posVentana+w;

305 y i n i=yord (1) ;

306 y f i n=yord (end) ;

307 x1=[ x i n i x i n i ] ;

308 y1=[ y i n i y f i n ] ;

309 x2=[ x f i n x f i n ] ;

310 y2=[ y i n i y f i n ] ;

311 %G r a f i c a de l a f u n c i o n O r i g i n a l

312 plot ( handles . axes1 , matx , maty , x1 , y1 , x2 , y2 ) ;

47

Page 48: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

313 hold a l l

314315 %Funcion que c a l c u l a l a mediana

316 function med=mediana (w, x , y )

317 %XData=g e t ( g e t ( h a n d l e s . axes2 , ’ c h i l d r e n ’ ) , ’ XData ’ ) ;

318 %YData=g e t ( g e t ( h a n d l e s . axes2 , ’ c h i l d r e n ’ ) , ’ YData ’ ) ;

319 % I n t e r p o l a para o b t e n e r e l v a l o r en l a mitad de l a ventana .

320 x=x ( 1 : end−1) ;

321 y=y ( 1 : end−1) ;

322 a s s i gn i n ( ’ base ’ , ’ datos ’ , x ) ;

323 med = interp1 (x , y ,w/2) ;

324325326 %−−− Execu te s on b u t t o n p r e s s in p u s h b u t t o n 6 .

327 function pushbutton6 Cal lback ( hObject , eventdata , handles )

328 % h Obje c t hand l e t o p u s h b u t t o n 6 ( s e e GCBO)

329 % e v e n t d a t a r e s e r v e d − t o be d e f i n e d in a f u t u r e v e r s i o n o f MATLAB

330 % h a n d l e s s t r u c t u r e w i t h h a n d l e s and user data ( s e e GUIDATA)

331 global vectorpos vectormediana ;

332 vectorpos = [ ] ;

333 vectormediana = [ ] ;

2. ventanamovil.m.

1 %Ventana Movil , va c a l c u l a n d o l a NDR de una s e n a l por medio de una ventana

2 %de ancho w

34 %Con e l ancho de l a ventana se c a l c u l a n l o s puntos de i n t e r s e c c i o n de l a

5 %s e n a l con l a ventana ( punto i n i c i a l y f i n a l para e l reordenamiento )

67 % Recibe P o s i c i o n de l a ventana , %ancho de l a ventana

89 function [ xventana , yventana ]=ventanamovil ( posVentana ,w, x , y )

1011 %PASO1

12 %encuentro l o s puntos de l a s e n a l d e n t r o de l a ventana ( puntosVentana )

13 ventana=[posVentana posVentana+w ] ;

14 long=s ize ( x ) ;

1516 %Borra l o s e l e m e n t o s menores a l i n i c i o de l a ventana

17 for i =1: long (2)

18 i f x ( i )>=ventana (1)

19 break

20 end

21 end

22 %Borra l o s e l e m e n t o s mayores a l mayor v a l o r de l a r e c t a

23 for j =1: long (2)

24 i f x ( j )>=ventana (2)

25 break

26 end

27 end

28 i f x ( j )>ventana (2)

29 j=j −1;

30 end

31 %puntos de l a s e n a l d e n t r o de l a ventana

32 puntosxVentana=x( i : j ) ;

33 puntosyVentana=y( i : j ) ;

34 %PASO2

35 %Se encuentran l o s puntos de i n t e r s e c c i o n de l a ventana con l a g r a f i c a

3637 x i n i c i a l=posVentana ;

38 i f x ( i )==ventana (1)

39 y i n i c i a l=y( i ) ;

40 else

41 %C a l c u l o de l a ecuac i on de l a r e c t a

42 m=(y( i )−y ( i −1) ) /(x ( i )−x ( i −1) ) ;

43 b=y( i )−m∗x ( i ) ;

44 y i n i c i a l=m∗ x i n i c i a l+b ;

45 end

46 i f x (end)<ventana (2)

48

Page 49: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

47 x f i n a l=x(end) ;

48 y f i n a l=y(end) ;

49 else

50 i f x ( j )==ventana (2)

51 x f i n a l=x( j ) ;

52 y f i n a l=y( j ) ;

53 else

54 x f i n a l=ventana (2) ;

55 m=(y( j +1)−y ( j ) ) /(x ( j +1)−x ( j ) ) ;

56 b=y( j )−m∗x ( j ) ;

57 y f i n a l=m∗ x f i n a l+b ;

58 end

59 end

6061 %se r e o r g a n i z a e l v e c t o r con l o s puntos i n i c i a l e s y f i n a l e s

62 xventana=[ x i n i c i a l puntosxVentana x f i n a l ] ;

63 yventana=[ y i n i c i a l puntosyVentana y f i n a l ] ;

13.3 Algoritmo de mediana movil1. darpuntoscambiocualitativo.m.

1 %Algor i tmo que c a l c u l a l o s puntos en donde se produce un cambio c u a l i t a t i v o

2 %x , y l a s coordenadas de l a s e n a l i n i c i a l , w e l ancho de l a ventana

3 %puntos : coordenadas en x de l o s puntos i m p o r t a n t e s para mover l a ventana

45 function [ puntos ]= darpuntoscambiocua l i ta t ivo (x , y ,w)

67 puntos=x (1) ;

8 s i z e x=s ize ( x ) ;

9 s i z e x=s i z e x (2) ;

10 %d i s t I z q u i e r d a=x ( 2 )−x ( 1 ) ;

11 %Primero r e v i s a r s i e n t r a una nueva p e n d i e n t e d e n t r o de l a ventana

12 for i =1: s i z ex−113 posDerecha=puntos ( i )+w;

14 j =1;

15 while puntos ( i )>=x( j ) &&j<s i z e x

16 j=j +1;

17 end

18 d i s t I z qu i e r d a=x( j )−puntos ( i ) ;

19 j =1;

20 while posDerecha >= x( j ) && j<s i z e x

21 j=j +1;

22 end

23 distDerecha=x( j )−posDerecha ;

24 pasoSig=puntos ( i )+min( d i s t I zqu i e rda , d i s tDerecha ) ;

25 puntos=[puntos pasoSig ] ;

26 end

27 puntos=unique ( puntos ) ;

28 y inte rp=interp1 (x , y , puntos ) ;

29 puntosDerecha=puntos+w;

30 yinterpDerecha=interp1 (x , y , puntosDerecha ) ;

31 tamPuntos=s ize ( puntos ) ;

32 tamPuntos=tamPuntos (2 ) ;

33 %Ahora r e v i s a r l o s puntos en l o s que l o s ex tremos de l a ventana tocan

34 pasosNuevos = [ ] ;

35 for i =1:tamPuntos−136 %r e v i s a r s i l a f r o n t e r a derecha t o c a a lguna coordenada de i n t e r e s

37 puntoIzquierda=puntos ( i ) ;

38 puntoDerecha=puntosDerecha ( i ) ;

39 for j =1: s i z e x

40 i f x ( j ) > puntoIzquierda

41 break ;

42 end

43 end

44 for k=1: s i z e x

45 i f x (k )> puntoDerecha

46 break ;

47 end

49

Page 50: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

48 end

49 %puntos que caen d e n t r o de l a ventana

50 puntosVentana=y( j : k−1) ;

5152 f r on t e r a I zqx =[puntos ( i ) puntos ( i +1) ] ;

53 f r on t e r a I zqy =[ y in te rp ( i ) y in te rp ( i +1) ] ;

54 f i 1=f r on t e r a I zqy (1) ;

55 f i 2=f r on t e r a I zqy (2) ;

56 i f f i 1 ˜= f i 2

57 puntosImportantesI=interp1 ( f r onte ra I zqy , f r onte ra I zqx , puntosVentana ) ;

58 puntosImportantesI ( isnan ( puntosImportantesI ) ) = [ ] ;

59 else

60 puntosImportantesI = [ ] ;

61 end

62 f ronteraDerx=[puntosDerecha ( i ) puntosDerecha ( i +1) ] ;

63 f ronteraDery=[ yinterpDerecha ( i ) y interpDerecha ( i +1) ] ;

64 fd1=fronteraDery (1) ;

65 fd2=fronteraDery (2) ;

66 i f fd1˜=fd2

67 puntosImportantesD=interp1 ( f ronteraDery , f ronteraDerx , puntosVentana ) ;

68 puntosImportantesD ( isnan ( puntosImportantesD ) ) = [ ] ;

69 puntosD=puntosImportantesD−puntosDerecha ( i )+puntos ( i ) ;

70 else

71 puntosD = [ ] ;

72 end

73 puntosImportantesRango=[ puntosImportantesI puntosD ] ;

74 pasosNuevos=[pasosNuevos puntosImportantesRango ] ;

75 end

76 pasosNuevos=unique ( pasosNuevos ) ;

7778 %F a l t a ver s i l o s puntos s o b r e l a ventana se l l e g a n a i n t e r s e c t a r

79 %para cada uno de l o s segmentos comprendidos e n t r e l o s pasos se v e r i f i c a

80 punto s In t e r s e c c i on = [ ] ;

81 for i =1:tamPuntos−182 %c a l c u l a l a p e n d i e n t e de l o s segmentos de r e c t a

83 mIzq=(y inte rp ( i +1)−y inte rp ( i ) ) /( puntos ( i +1)−puntos ( i ) ) ;

84 mDer=(yinterpDerecha ( i +1)−yinterpDerecha ( i ) ) /( puntosDerecha ( i +1)−puntosDerecha ( i ) ) ;

85 bIzq=y inte rp ( i )−mIzq∗puntos ( i ) ;

86 bDer=yinterpDerecha ( i )−mDer∗puntosDerecha ( i ) ;

87 numerador=mDer∗w+bDer−bIzq ;

88 i f (mDer ˜=mIzq )

89 i n t e r s e c c i o n=numerador /(mIzq−mDer) ;

90 i f i n t e r s e c c i on>=puntos ( i ) && i n t e r s e c c i o n <=puntos ( i +1)

91 punto s In t e r s e c c i on=[ punto s In t e r s e c c i on i n t e r s e c c i o n ] ;

92 end

93 end

94 end

95 puntos=[puntos pasosNuevos punto s In t e r s e c c i on ] ;

96 puntos=roundn ( puntos ,−4) ;

97 puntos=unique ( puntos ) ;

2. darSignoPendiente.m.

1 %Funcion que r e t o r n a e l s i g n o de l a p e n d i e n t e de l a mediana d e l rango

2 %c o r r e p o n d i e n t e c a l c u l a n d o l o en e l punto medio d e l rango no c u a l i t a t i v o

3 %c o r r e s p o n d i e n t e .

4 function s i gno=darSignoPendiente ( punto In i c i a l , i , puntosImportantes ,w, x , y )

5 s i gno=1;

6 i f pun t o I n i c i a l==−17 pos ic ionMedia=puntosImportantes ( i )+(puntosImportantes ( i +1)−puntosImportantes ( i ) ) /2 ;

8 else

9 pos ic ionMedia=pun t o I n i c i a l+(puntosImportantes ( i +1)−pun t o I n i c i a l ) /2 ;

10 end

11 [ xventanaMed , yventanaMed]=ventanamovil ( posic ionMedia ,w, x , y ) ;

12 i f ( yventanaMed (end)==yventanaMed (end−1) )

13 s i gno=−1;

14 end

15 [ coordXMed , coordYMed]=ordenamiento ( xventanaMed , yventanaMed ) ;

16 coordXMed=coordXMed ( 1 : end−1) ;

17 coordYMed=coordYMed ( 1 : end−1) ;

50

Page 51: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

18 tamYMed=s ize ( coordYMed) ;

19 tamYMed=tamYMed(2) ;

20 tamX=s ize ( x ) ;

21 tamX=tamX(2) ;

22 %El prob lema es que me aparezca un nuevo rango porque t a l como

23 %e s t a n l o s puntos , me da cuando VA A EMPEZAR una nueva pend ien te ,

24 %por eso l o c a l c u l o a mitad d e l i n t e r v a l o no c u a l i t a t i v o ( porque ya

25 %en e s t e punto deben e s t a r p r e s e n t e s t o d a s l a s p e n d i e n t e s )

26 %r e v i s a r e l s i g n o en e l caso de l a p e n d i e n t e d e l rango . No tese que

27 %s i e s t o y en e l pr imer segmento de r e c t a y l a f r o n t e r a i z q crece ,

28 %l a p e n d i e n t e es p o s i t i v a .

29 yMin=min( yventanaMed (1) , yventanaMed (end) ) ;

30 i f yMin==yventanaMed (1)

31 xRespect ivo=xventanaMed (1) ;

32 else

33 xRespect ivo=xventanaMed (end) ;

34 end

35 for j 3 =1:tamX−136 i f xRespectivo>=x( j3 ) && xRespectivo<x ( j3+1)

37 break ;

38 end

39 end

40 pendienteFrontera=(y ( j3 )−y ( j3+1) ) /(x ( j3 )−x ( j3+1) ) ;

4142 i f yMin˜=coordYMed (1) %no es e l pr imer rango

43 for j 2 =1:tamYMed−144 i f yMin==coordYMed( j2 )

45 break ;

46 end

47 end

48 mAnterior=(coordYMed( j2 )−coordYMed( j2−1) ) /( coordXMed( j2 )−coordXMed( j2−1) ) ;

49 pendienteSgte=(coordYMed( j2+1)−coordYMed( j2 ) ) /( coordXMed( j2+1)−coordXMed( j2 ) ) ;

50 %Saca l a p e n d i e n t e de l a f r o n t e r a que impone e l cambio en e l rango

51 %mov i l mas b a j o

525354 i f pendienteFrontera > 0 && mAnterior < pendienteSgte

55 s i gno=−1;

56 end

5758 i f pendienteFrontera < 0 && mAnterior > pendienteSgte

59 s i gno=−1;

60 end

61 else

62 i f pendienteFrontera<0

63 s i gno=−1;

64 end

65 end

3. darRangoPendiente.m.

1 %Funcion que d e v u e l v e e l rango en e l que se encuentra l a mediana para poder

2 %c a l c u l a r l a p e n d i e n t e con l a que cambia

3 function [ pendienteRango ]=darRangoPendiente (mediana , coordY , coordX , minimo ,maximo , s igno )

4 tamY=s ize ( coordY ) ;

5 tamY=tamY(2) ;

6 mediana=roundn (mediana ,−4) ;

7 minimo=roundn (minimo ,−4) ;

8 maximo=roundn (maximo,−4) ;

9 coordY=roundn ( coordY ,−4) ;

1011 i f mediana==minimo | | mediana==maximo

12 i f mediana==minimo

13 for p1=1:tamY−114 i f minimo==coordY (p1 )

15 break ;

16 end

17 end

18 end

19 i f mediana==maximo

51

Page 52: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

20 for p1=1:tamY−121 i f maximo==coordY (tamY+1−p1 )

22 break ;

23 end

24 end

25 p1=tamY−p1 ;

26 end

2728 else

29 for p1=1:tamY−130 i f coordY (p1 )<=mediana && mediana <= coordY (p1+1)

31 i f coordY (p1 )==mediana && s igno <0

32 p1=p1−133 end

34 i f coordY (p1+1)==mediana && s igno >0

35 p1=p1+1

36 end

3738 break ;

39 end

40 end

41 %no se va a s a l i r e l i n d i c e por l a primera c o n d i c i o n d e l i f

42 end

4344 pendienteRango=(coordY (p1 )−coordY (p1+1) ) /( coordX (p1 )−coordX (p1+1) ) ;

4. darNodosInternos.m.

1 %Funcion que d e v u e l v e l o s nodos i n t e r n o s de un rango dado

2 %MEJOR DAR LAS COORDENADAS EN X

3 function [ nodosInternos ]=darNodosInternos ( i , puntosImportantes , x , y ,w)

4 pos ic ionMedia=puntosImportantes ( i )+(puntosImportantes ( i +1)−puntosImportantes ( i ) ) /2 ;

5 [ xventanaMed , yventanaMed]=ventanamovil ( posic ionMedia ,w, x , y ) ;

6 [ coordXMed , coordYMed]=ordenamiento ( xventanaMed , yventanaMed ) ;

7 coordXMed=coordXMed ( 1 : end−1) ;

8 coordYMed=coordYMed ( 1 : end−1) ;

9 tamYMed=s ize ( coordYMed) ;

10 tamYMed=tamYMed(2) ;

11 %Saca l o s nodos i n t e r n o s

12 nodosInternos = [ ] ;

13 for k=1:tamYMed

14 %i f yventanaMed ( 1 )< coordYMed ( k ) && ( coordYMed ( k )< yventanaMed ( end ) )

15 % % n o d o s I n t e r n o s =[ n o d o s I n t e r n o s coordYMed ( k ) ] ;

16 %end

17 i f puntosImportantes ( i )<coordXMed(k ) && (coordXMed(k )<puntosImportantes ( i +1) )

18 nodosInternos=[ nodosInternos coordYMed(k ) ] ;

19 end

20 end

5. darMedianaMovil.m.

1 %Algor i tmo que c a l c u l a l a mediana de una s e n a l moviendo l a ventana a l o s puntos i m p o r t a n t e s

2 %Los argumentos de l a f u n c i o n son l o s puntos de l a s e n a l y l a ventana que

3 %se maneja

4 function [ pendientes , puntosDeCambio , medianaIni ]=darMedianaMovil (x , y ,w)

5 tamX=s ize ( x ) ;

6 tamX=tamX(2) ;

7 puntosImportantes=darpuntoscambiocua l i ta t ivo (x , y ,w) ;

8 puntosImportantesY=interp1 (x , y , puntosImportantes ) ;

9 tamPuntos=s ize ( puntosImportantes ) ;

10 tamPuntos=tamPuntos (2 ) ;

11 pend ientes = [ ] ;

12 puntosDeCambio = [ ] ;

13 for i =1:tamPuntos−114 [ xventana , yventana ]=ventanamovil ( puntosImportantes ( i ) ,w, x , y ) ;

15 [ coordX , coordY]=ordenamiento ( xventana , yventana ) ;

16 coordX=coordX ( 1 : end−1) ;

17 coordY=coordY ( 1 : end−1) ;

18 mediana=interp1 ( coordX , coordY ,w/2) ;

19 minimo=min( yventana (1) , yventana (end) ) ;

52

Page 53: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

20 maximo=max( yventana (1) , yventana (end) ) ;

2122 %Sacar l a p e n d i e n t e de l a f r o n t e r a I z q u i e r d a

23 for q=1:tamX−124 i f puntosImportantes ( i )>=x(q ) && puntosImportantes ( i )<x (q+1)

25 break ;

26 end

27 end

28 pendienteFrontera=(y (q )−y (q+1) ) /(x (q )−x (q+1) ) ;

2930 %Sacar l a p e n d i e n t e de l a f r o n t e r a derecha

31 for j 1 =1:tamX−132 i f ( puntosImportantes ( i )+w) >= x( j1 ) && ( puntosImportantes ( i )+w) < x ( j1+1)

33 break ;

34 end

35 end

36 pendienteFronteraD=(y ( j1 )−y ( j1+1) ) /(x ( j1 )−x ( j1+1) ) ;

3738 i f mediana>=minimo && mediana<=maximo

39 %C a l c u l a l a p e n d i e n t e con l a que cambia l a mediana

40 pun t o I n i c i a l=−1;

41 s i gno=darSignoPendiente ( punto In i c i a l , i , puntosImportantes ,w, x , y ) ;

42 %pos ic ionMed ia=p u n t o s I m p o r t a n t e s ( i )+( p u n t o s I m p o r t a n t e s ( i +1)−p u n t o s I m p o r t a n t e s ( i ) ) / 2 ;

43 pendienteRango=darRangoPendiente (mediana , coordY , coordX , minimo ,maximo , s igno )

44 pendienteRango=s igno ∗pendienteRango ;

45 pend ientes=[ pend ientes pendienteRango ] ;

46 puntosDeCambio=[puntosDeCambio puntosImportantes ( i ) ] ;

4748 %r e v i s a r s i no cambia de p e n d i e n t e d e n t r o d e l rango no c u a l i t a t i v o

49 %a o t r o de l o s rangos INTERNOS

50 nodosInternos=darNodosInternos ( i , puntosImportantes , x , y ,w)

51 cantNodosInternos=s ize ( nodosInternos ) ;

52 cantNodosInternos=cantNodosInternos (2 ) ;

53 %Si no hay nodos i n t e r n o s , de t o d a s formas debe chequear s i e l

54 %l a mediana se s a l e d e l rango e s t a b l e c i d o por l o s puntos m o v i l e s de l a

55 %ventana

56 i f cantNodosInternos==0

57 %c a l c u l a s i l a mediana se s a l e de a l guno de l o s rangos .

58 b=mediana−pendienteRango∗puntosImportantes ( i ) ;

59 bIzq=puntosImportantesY ( i )−pendienteFrontera ∗puntosImportantes ( i ) ;

60 bDer=interp1 (x , y , puntosImportantes ( i )+w)−pendienteFronteraD ∗( puntosImportantes ( i )+w) ;

61 xIzq=(b−bIzq ) /( pendienteFrontera−pendienteRango ) ;

62 xDer=(b−bDer−pendienteFronteraD∗w) /( pendienteFronteraD−pendienteRango ) ;

63 %EL punto de i n t e r s e c c i o n debe e s t a r d e n t r o d e l i n t e r v a l o

64 %a b i e r t o d e l rango no c u a l i t a t i v o , pues l o s ex tremos ya se

65 %c o n s i d e r a n en cada paso

66 i n t e r s e c c i o n e sVa l i d a s = [ ] ;

67 r e s t a6=xIzq−puntosImportantes ( i ) ;

68 i f res ta6 >1e−10

69 i f xIzq > puntosImportantes ( i ) && xIzq < puntosImportantes ( i +1)

70 i n t e r s e c c i o n e sVa l i d a s =[ i n t e r s e c c i o n e sVa l i d a s xIzq ] ;

71 end

72 end

73 r e s t a7=xDer−puntosImportantes ( i ) ;

74 i f res ta7 >1e−10

75 i f xDer > puntosImportantes ( i ) && xDer < puntosImportantes ( i +1)

76 i n t e r s e c c i o n e sVa l i d a s =[ i n t e r s e c c i o n e sVa l i d a s xDer ] ;

77 end

78 end

79 i f ˜isempty ( i n t e r s e c c i o n e sVa l i d a s )

80 i n t e r s e cc i onMin=min( i n t e r s e c c i o n e sVa l i d a s ) ;

81 puntosDeCambio=[puntosDeCambio in t e r s e cc i onMin ] ;

82 pend ientes=[ pend ientes 0 ] ;

83 end

84 end

85 xCambio=puntosImportantes ( i ) ;

86 for n=1: cantNodosInternos

8788 b=mediana−pendienteRango∗xCambio ;

53

Page 54: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

89 %i n t e r s e c c i o n de l a mediana con l o s rangos i n t e r n o s

90 i n t e r s e c c i o n e s = [ ] ;

91 i n t e r s e c c i on e sY = [ ] ;

92 for k=1: cantNodosInternos

93 %OJO SI LA PENDIENTE ES CERO ! ! ! !

94 i n t e r=(nodosInternos (k )−b) /pendienteRango ;

95 r e s t a=inte r−xCambio ;

96 i f r e s t a > 1e−497 i f i n t e r> xCambio && in t e r < puntosImportantes ( i +1)

98 i n t e r s e c c i o n e s =[ i n t e r s e c c i o n e s i n t e r ] ;

99 i n t e r s e c c i on e sY=[ i n t e r s e c c i on e sY nodosInternos (k ) ] ;

100 end

101 end

102 end

103104 %i n t e r s e c c i o n de l a mediana con l o s rangos m o v i l e s

105 bIzq=puntosImportantesY ( i )−pendienteFrontera ∗puntosImportantes ( i ) ;

106 bDer=interp1 (x , y , puntosImportantes ( i )+w)−pendienteFronteraD ∗( puntosImportantes ( i )+w) ;

107 xIzq=(b−bIzq ) /( pendienteFrontera−pendienteRango ) ;

108 xDer=(b−bDer−pendienteFronteraD∗w) /( pendienteFronteraD−pendienteRango ) ;

109 r e s t a8=xIzq−xCambio ;

110 i f res ta8 >1e−4111 i f xIzq > xCambio && xIzq < puntosImportantes ( i +1)

112 i n t e r s e c c i o n e s =[ i n t e r s e c c i o n e s xIzq ] ;

113 end

114 end

115 r e s t a9=xDer−xCambio ;

116 i f res ta9 >1e−4117 i f xDer > xCambio && xDer < puntosImportantes ( i +1)

118 i n t e r s e c c i o n e s =[ i n t e r s e c c i o n e s xDer ] ;

119 end

120 end

121122 %Si l a i n t e r s e c c i o n se da d e n t r o d e l rango

123 i f ˜isempty ( i n t e r s e c c i o n e s )

124125 i n t e r s e cc i onMin=min( i n t e r s e c c i o n e s ) ;

126 i f i n t e r s e cc i onMin==xIzq | | i n t e r s e cc i onMin==xDer

127 pend ientes=[ pend ientes 0 ] ;

128 puntosDeCambio=[puntosDeCambio in t e r s e cc i onMin ] ;

129 break ;

130 else

131 pos ic ionX=find ( in t e r s e cc i onMin==i n t e r s e c c i o n e s ) ;

132 yImp=in t e r s e c c i on e sY ( pos ic ionX ) ;

133 xCambio=inte r s e cc i onMin ;

134 [ xventana , yventana ]=ventanamovil ( xCambio ,w, x , y ) ;

135 [ coordX , coordY]=ordenamiento ( xventana , yventana ) ;

136 coordX=coordX ( 1 : end−1) ;

137 coordY=coordY ( 1 : end−1) ;

138139 tamanioY=s ize ( coordY ) ;

140 tamanioY=tamanioY (2) ;

141 for p=1:tamanioY−1142 i f yImp == coordY (p)

143 break ;

144 end

145 end

146 i f pendienteRango < 0

147 p=p−1;

148 end

149 pendienteRango=(coordY (p)−coordY (p+1) ) /( coordX (p)−coordX (p+1) ) ;

150 pend ientes=[ pend ientes pendienteRango ] ;

151 puntosDeCambio=[puntosDeCambio xCambio ] ;

152 mediana=interp1 ( coordX , coordY ,w/2) ;

153 end

154 end

155 end

156 else

157 pend ientes=[ pend ientes 0 ] ;

54

Page 55: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

158 puntosDeCambio=[puntosDeCambio puntosImportantes ( i ) ] ;

159 %debe r e v i s a r s i en a l g un punto d e l rango no c u a l i t a t i v o , l a

160 %mediana e n t r a d e n t r o d e l rango mov i l .

161 %c a l c u l a s i l a mediana se s a l e de a l guno de l o s rangos .

162 bIzq=puntosImportantesY ( i )−pendienteFrontera ∗puntosImportantes ( i ) ;

163 bDer=interp1 (x , y , puntosImportantes ( i )+w)−pendienteFronteraD ∗( puntosImportantes ( i )+w) ;

164 xIzq=(mediana−bIzq ) /( pendienteFrontera ) ;

165 xDer=(mediana−bDer−pendienteFronteraD∗w) /( pendienteFronteraD ) ;

166 %EL punto de i n t e r s e c c i o n debe e s t a r d e n t r o d e l i n t e r v a l o

167 %a b i e r t o d e l rango no c u a l i t a t i v o , pues l o s ex tremos ya se

168 %c o n s i d e r a n en cada paso

169 i n t e r s e c c i o n e sVa l i d a s = [ ] ;

170 i f xIzq > puntosImportantes ( i ) && xIzq < puntosImportantes ( i +1)

171 i n t e r s e c c i o n e sVa l i d a s =[ i n t e r s e c c i o n e sVa l i d a s xIzq ] ;

172 end

173174 i f xDer > puntosImportantes ( i ) && xDer < puntosImportantes ( i +1)

175 i n t e r s e c c i o n e sVa l i d a s =[ i n t e r s e c c i o n e sVa l i d a s xDer ] ;

176 end

177 i f ˜isempty ( i n t e r s e c c i o n e sVa l i d a s )

178 i n t e r s e cc i onMin=min( i n t e r s e c c i o n e sVa l i d a s ) ;

179 %i n t e r s e c c i o n M i n=roundn ( i n t e r s e c c i o n M i n ,−5) ;

180181 [ xventana , yventana ]=ventanamovil ( inter secc ionMin ,w, x , y ) ;

182 [ coordX , coordY]=ordenamiento ( xventana , yventana ) ;

183 coordX=coordX ( 1 : end−1) ;

184 coordY=coordY ( 1 : end−1) ;

185186 mediana=interp1 ( coordX , coordY ,w/2) ;

187 minimo=min( yventana (1) , yventana (end) ) ;

188 maximo=max( yventana (1) , yventana (end) ) ;

189190 pun t o I n i c i a l=inte r s e cc i onMin ;

191 s i gno=darSignoPendiente ( punto In i c i a l , i , puntosImportantes ,w, x , y ) ;

192 pendienteRango=darRangoPendiente (mediana , coordY , coordX , minimo ,maximo , s igno ) ;

193 pendienteRango=s igno ∗pendienteRango ;

194 pend ientes=[ pend ientes pendienteRango ] ;

195 puntosDeCambio=[puntosDeCambio in t e r s e cc i onMin ] ;

196197 %PARTE NUEVA Debe r e v i s a r l o s cambios de p e n d i e n t e s i n t e r n o s

198 %r e v i s a r s i no cambia de p e n d i e n t e d e n t r o d e l rango no c u a l i t a t i v o

199 %a o t r o de l o s rangos INTERNOS

200 nodosInternos=darNodosInternos ( i , puntosImportantes , x , y ,w) ;

201 cantNodosInternos=s ize ( nodosInternos ) ;

202 cantNodosInternos=cantNodosInternos (2 ) ;

203 %Si no hay nodos i n t e r n o s , de t o d a s formas debe chequear s i e l

204 %l a mediana se s a l e d e l rango e s t a b l e c i d o por l o s puntos m o v i l e s de l a

205 %ventana

206 i f cantNodosInternos==0

207 %c a l c u l a s i l a mediana se s a l e de a l guno de l o s rangos .

208 b=mediana−pendienteRango∗ i n t e r s e cc i onMin ;

209 bIzq=puntosImportantesY ( i )−pendienteFrontera ∗puntosImportantes ( i ) ;

210 bDer=interp1 (x , y , puntosImportantes ( i )+w)−pendienteFronteraD ∗( puntosImportantes( i )+w) ;

211 xIzq=(b−bIzq ) /( pendienteFrontera−pendienteRango ) ;

212 xDer=(b−bDer−pendienteFronteraD∗w) /( pendienteFronteraD−pendienteRango ) ;

213 %x I z q=roundn ( xI zq ,−5) ;

214 %xDer=roundn ( xDer ,−5) ;

215 %EL punto de i n t e r s e c c i o n debe e s t a r d e n t r o d e l i n t e r v a l o

216 %a b i e r t o d e l rango no c u a l i t a t i v o , pues l o s ex tremos ya se

217 %c o n s i d e r a n en cada paso

218 i n t e r s e c c i o n e sVa l i d a s = [ ] ;

219 r e s t a1=abs ( inter secc ionMin−xIzq ) ;

220 r e s t a2=abs ( inter secc ionMin−xDer ) ;

221 i f r e s t a1 >1e−4222 i f xIzq > i n t e r s e cc i onMin && xIzq < puntosImportantes ( i +1)

223 i n t e r s e c c i o n e sVa l i d a s =[ i n t e r s e c c i o n e sVa l i d a s xIzq ] ;

224 end

225 end

226 i f res ta2 >1e−4

55

Page 56: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

227 i f xDer > i n t e r s e cc i onMin && xDer < puntosImportantes ( i +1)

228 i n t e r s e c c i o n e sVa l i d a s =[ i n t e r s e c c i o n e sVa l i d a s xDer ] ;

229 end

230 end

231 i f ˜isempty ( i n t e r s e c c i o n e sVa l i d a s )

232233 i n t e r s e cc i onMin=min( i n t e r s e c c i o n e sVa l i d a s ) ;

234 %i n t e r s e c c i o n M i n=roundn ( i n t e r s e c c i o n M i n ,−5) ;

235 puntosDeCambio=[puntosDeCambio in t e r s e cc i onMin ] ;

236 pend ientes=[ pend ientes 0 ] ;

237 end

238 end

239 xCambio=inte r s e cc i onMin ;

240 for n=1: cantNodosInternos

241 b=mediana−pendienteRango∗xCambio ;

242 i n t e r s e c c i o n e s = [ ] ;

243 i n t e r s e c c i on e sY = [ ] ;

244 for k=1: cantNodosInternos

245 i n t e r=(nodosInternos (k )−b) /pendienteRango ;

246 r e s t a3=inte r−xCambio ;

247 i f res ta3 >1e−4248 i f i n t e r> xCambio && in t e r < puntosImportantes ( i +1)

249 i n t e r s e c c i o n e s =[ i n t e r s e c c i o n e s i n t e r ] ;

250 i n t e r s e c c i on e sY=[ i n t e r s e c c i on e sY nodosInternos (k ) ] ;

251 end

252 end

253 end

254 %i n t e r s e c c i o n de l a mediana con l o s rangos m o v i l e s

255 bIzq=puntosImportantesY ( i )−pendienteFrontera ∗puntosImportantes ( i ) ;

256 bDer=interp1 (x , y , puntosImportantes ( i )+w)−pendienteFronteraD ∗( puntosImportantes( i )+w) ;

257 xIzq=(b−bIzq ) /( pendienteFrontera−pendienteRango ) ;

258 xDer=(b−bDer−pendienteFronteraD∗w) /( pendienteFronteraD−pendienteRango ) ;

259 r e s t a4=xIzq−xCambio ;

260 i f r e s t a4 >1e−4261 i f xIzq > xCambio && xIzq < puntosImportantes ( i +1)

262 i n t e r s e c c i o n e s =[ i n t e r s e c c i o n e s xIzq ] ;

263 end

264 end

265 r e s t a5=xDer−xCambio ;

266 i f res ta5> 1e−4267 i f xDer > xCambio && xDer < puntosImportantes ( i +1)

268 i n t e r s e c c i o n e s =[ i n t e r s e c c i o n e s xDer ] ;

269 end

270 end

271 i f ˜isempty ( i n t e r s e c c i o n e s )

272 %Si l a i n t e r s e c c i o n se da d e n t r o d e l rango

273 i n t e r s e cc i onMin=min( i n t e r s e c c i o n e s ) ;

274 i f i n t e r s e cc i onMin==xIzq | | i n t e r s e cc i onMin==xDer

275 pend ientes=[ pend ientes 0 ] ;

276 puntosDeCambio=[puntosDeCambio in t e r s e cc i onMin ] ;

277 break ;

278 else

279 poscionX=find ( in t e r s e cc i onMin==i n t e r s e c c i o n e s ) ;

280 yImp=in t e r s e c c i on e sY ( poscionX ) ;

281 xCambio=inte r s e cc i onMin ;

282 [ xventanaN , yventanaN]=ventanamovil ( xCambio ,w, x , y ) ;

283 [ coordXN , coordYN]=ordenamiento ( xventanaN , yventanaN ) ;

284 coordXN=coordXN (1 : end−1) ;

285 coordYN=coordYN (1 : end−1) ;

286 tamanioYN=s ize ( coordYN) ;

287 tamanioYN=tamanioYN (2) ;

288 for p=1:tamanioNY−1289 i f yImp == coordYN(p)

290 break ;

291 end

292 end

293 i f pendienteRango < 0

294 p=p−1;

295 end

56

Page 57: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

296 pendienteRango=(coordY (p)−coordY (p+1) ) /( coordX (p)−coordX (p+1) ) ;

297 xCambio=inte r s e cc i onMin ;

298 pend ientes=[ pend ientes pendienteRango ] ;

299 puntosDeCambio=[puntosDeCambio xCambio ] ;

300301 mediana=interp1 ( coordXN , coordYN ,w/2) ;

302 end

303 end

304 end

305306 end

307 end

308 end

309 [ xventanaIni , yventanaIni ]=ventanamovil ( puntosImportantes (1 ) ,w, x , y ) ;

310 [ coordXIni , coordYIni ]=ordenamiento ( xventanaIni , yventanaIni ) ;

311 coordXIni=coordXIni ( 1 : end−1) ;

312 coordYIni=coordYIni ( 1 : end−1) ;

313 medianaIni=interp1 ( coordXIni , coordYIni ,w/2) ;

57

Page 58: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

13.4 Resumen Ejecutivo

RESUMEN EJECUTIVO

ORDENAMIENTO DE SENALES LINEALES A TROZOS Y FILTRO ME-DIANA ANALOGO

Samuel Eduardo Rozo Sanchez 200520425

Asesor: Alfredo Restrepo. Profesor Asociado, Universidad de los Andes.

13.4.1 Objetivos

Los siguientes son los objetivos del proyecto.

13.4.2 Objetivo general

Desarrollar algoritmos que permitan ordenar una senal de parametro continuo (la funcionpuede ser discontinua), y a partir de una ventana movil, calcular la mediana movil (filtromediana) de la senal.

13.4.3 Objetivos especıficos

1. Estudiar el proceso de reordenamiento de senales lineales a trozos.

2. Desarrollar e implementar un algoritmo que permita aproximar una senal uniformemen-te continua por medio de segmentos lineales.

3. Desarrollar e implementar un algoritmo que permita calcular el ordenamiento de unasenal lineal a trozos.

4. Desarrollar un algoritmo que calcule los ordenamientos que resultan al observar a travesde una ventana movil una senal lineal a trozos.

13.4.4 Desarrollo

El proceso inicial del proyecto consistio en una recopilacion bibliografica de informacion util.Los siguientes fueron los conceptos claves dentro del proyecto.

13.4.5 Conceptos claves del reordenamiento no decreciente

Estas son las definiciones necesarias para describir matematicamente la nocion de reordena-miento no decreciente.

Definicion 13.1. Sea f : R→ R una funcion real y λ la medida de Lebesgue. La funcion dedistribucion F : R→ R+ asociada a f se define como:

F (y) = λ{x ∈ R : f(x) ≤ y}.

Con base en la funcion de distribucion, se define el reordenamiento de una senal analogade la siguiente manera.

58

Page 59: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Definicion 13.2. Sea f : (a, b) → R, F su funcion de distribucion, la RND de f denotadapor f ′ : [0, b− a]→ R se define como:

f ′(x) = ınf{y : F (y) ≥ x}.

Ası, la mediana se describe matematicamente con ayuda de estas dos funciones anteriores,y considerando una ventana de ancho w.

Definicion 13.3. La mediana de una senal analoga f(x), vista a traves de una ventana deancho w, es igual al valor de su reordenamiento f ′(x) a mitad de la ventana:

f = f ′(w/2).

Viendo el calculo de la mediana como la asignacion de un valor real a un conjunto defunciones determinadas, se puede mirar el problema desde el punto de vista del estudio defuncionales reales. En este trabajo se considero el caso de funcionales lineales y se estudiaronalgunas de las propiedades correspondientes al espacio vectorial de interes para el caso delfiltro mediana analogo, como lo son, las funciones de variacion acotada, y algunas de suscaracterısticas. Posteriormente, se dio paso al estudio del caso del reordenamiento no decre-ciente de senales lineales a trozos y la caracterizacion del filtro mediana analogo con ayudade algunos resultados derivados de la linealidad de la senal de entrada. Para el desarrollode la parte practica, se implementaron un grupo de algoritmos en MATLAB con el objetivode facilitar el estudio del problema en cuestion y de tal forma, obtener un algoritmo quepermitiera el calculo de la mediana para una senal lineal a trozos. El caso del algoritmo deaproximacion se dejo para la parte final del proyecto, y debido varios inconvenientes, no fueposible completarlo.

13.4.6 Resultados

Dentro del proceso de caracterizacion del filtro mediana analogo para senales lineales a trozos,se obtuvieron las siguientes propiedades.

Proposicion 13.1. La RND de una senal compuesta por segmentos de recta de igual rangoy pendientes m1, . . . ,mn es una recta con pendiente

m =

(1

|m1|+ . . .+

1

|mn|

)−1

.

En el caso del filtro mediana movil, se analizaron los cambios posibles en el RND de unasenal lineal vista por una ventana de ancho w, dando como resultado la siguiente clasificacion.

1. Cambios no Cualitativos. Corresponden a los cambios del RND en los que existe unpatron claro de movimiento dependiente de la posicion de la ventana. Se caracterizanpor tener rangos en el eje y bien definidos y por preservar las pendientes de la rectasentre un paso y el siguiente. Son precisamente estos cambios los que permiten inferir elcomportamiento de la mediana sin realizar los calculos intermedios.

2. Cambios Cualitativos A diferencia de los anteriores, los cambios no cualitativospresentan un comportamiento sin patron aparente al moverse la ventana, como lo son:la aparicion de nuevas pendientes, saltos y nuevos rangos entre otros.

59

Page 60: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

Con ayuda de una interfaz grafica desarrollada en MATLAB. Experimentalmente selogro la caracterizacion del filtro, pasando luego a su deduccion matematica, estos fueronlos resultados.

Proposicion 13.2. La mediana y de una senal lineal a trozos, evaluada a traves de unaventana movil de ancho w, cambia unicamente cuando su valor se encuentra dentro del rangodeterminado por los valores en y de los puntos extremos de la senal, (xi, yi) y (xd, yd), vistospor la ventana. Es decir, cuando y ∈ (yi, yd).

Proposicion 13.3. La mediana movil, dentro de un intervalo no cualitativo de la RND,cambia linealmente con respecto a la posicion de la ventana. La magnitud de la pendiente deesta variacion es igual a la magnitud de la pendiente del segmento de recta correspondienteal ∆y en el que se encuentra la mediana.

El signo de la pendiente de la mediana, depende de las pendientes de los rangos adyacentesma y mb al menor de los puntos moviles dado por la interseccion de la ventana con la senalxi, yi), dado como resultado los siguientes casos.

1. El valor de yi aumenta: Si ma < mb, la mediana decrece. Si ma > mb, la medianacrece. La figura 26 ilustra la situacion.

Figura 26: Signo de la mediana en funcion de ma y mb

2. El valor de yi disminuye: Es analogo al caso anterior, la graficas se pueden leer dandolos pasos al contrario y resulta lo siguiente: Si ma < mb, la mediana crece. Si ma > mb,la mediana decrece.

3. El valor de yi permanece constante: La mediana se incrementa cuando el intervaloconstante esta saliendo de la ventana (el intervalo constante se encuentra al extremoizquierdo), y decrece si esta entrando (el intervalo constante se encuentra a la derechade la ventana).

Ası, la salida del filtro mediana analogo en el caso de senales lineales a trozos es tambien unasenal lineal a trozos.

Con el soporte teorico, se paso a la implementacion del algoritmo en MATLAB, quepermite calcular la salida del filtro mediana analogo para este tipo de senales. El algoritmo

60

Page 61: PROYECTO FIN DE CARRERA...PROYECTO FIN DE CARRERA Presentado a: LA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIER IA DEPARTAMENTO DE INGENIER IA ELECTRICA Y ELECTR ONICA Para obtener

recibe los puntos de cambio de pendiente de la senal junto con el ancho de la ventana, y arrojacomo resultado, las pendientes de cada segmento y los puntos de cambio de pendiente.

Realizando una autoevaluacion del trabajo realizado, considero que se lograron la mayorıade los objetivos de una manera satisfactoria. La ausencia del algoritmo de aproximacion deuna senal analoga por medio de senales lineales a trozos, deja un vacıo dentro del trabajo, quesin embargo, puede ser completado sin tener en cuenta el resto del tema desarrollado dentro enel proyecto. Es de resaltar que se caracterizo la salida del filtro y se dio el soporte matematicode la respuesta, con lo que el problema para senales lineales a trozos queda resuelto.

Este es un tema bastante extenso, que brinda la posibilidad de continuar trabajando tantoen la parte teorica como en la parte practica. Teoricamente, queda mucho por decir acerca delos funcionales reales actuando sobre el espacio vectorial de funciones discontinuas, o tambiensobre la aproximacion de funciones por medio de funciones lineales a trozos. En la practica,queda por ver la implementacion del filtro, y el estudio de la aproximacion de una senal enprincipio aleatoria, por medio de senales lineales a trozos

Visto Bueno del Asesor.

61