// Animación de las ondas viajeras en la cóclea  

// Carga delas funciones necesarias
exec cochlea_travelling_wave.sci;
exec animate.sci;

clf();

// Distancias a lo largo de la cóclea en m
x = 0:0.0002:0.035;
// Instantes de tiempo
theta = 0:0.0001:0.01;  
// Frecuencias 
fo = [200 1000 2500];
// Fases
alpha = [0 0 0];
// Exponente de acentuación del pico tonotópico
// (incremento de la selectividad 
e = 8;

// Cálculo de las ondas para cada frecuencia
// Columnas: tiempos
// Filas: distancias
// Páginas; frecuencias 
[yy, env] = cochlea_travelling_wave(x, theta, fo, alpha, e);

// Superposición de las ondas de las tres frecuencias
y = sum(yy,3);

// Envolvente global original
env_global = sqrt(sum((env.^e).^2,"r"));

// Grafica de las envolventes
plot(x, env.^e,"c-.", x, env_global, "r", x, -env_global, "r")

// Límites del rectángulo en el que se mostrará la 
// animación
rect = [min(x) max(x), min(y) max(y)];

// Bandera que indica si se borran las ondas o 
// se mantienen
flag = "no";

// Cuadros por segundo
fps = 10;

// No borrar las gráficas previas de las envolventes
del = "no";

// Animación de la onda viajera compuesta por varias
// frecuencias
animate(y, x, theta, flag, rect, fps, del);
