An open API service indexing awesome lists of open source software.

https://github.com/diegomarvid/fourier

Libreria basica de Fourier discreto para procesamiento digital en Javascript
https://github.com/diegomarvid/fourier

Last synced: 3 months ago
JSON representation

Libreria basica de Fourier discreto para procesamiento digital en Javascript

Awesome Lists containing this project

README

        

# Fourier

Librería de DFT.

Para crear un objeto Fourier se debe hacer
```javascript
let F = new Fourier(x);
```

Donde x es la señal en tiempo discreto, siendo esta un objeto Complex.

Por defecto se crea el objeto en el centro de la pantalla pero se puede trasladar añadiendo
parámetros de coordenadas de la siguiente forma:

```javascript
let F = new Fourier(x, 200, 300);
```

Donde 200 es la coordenada en el eje 'x' y 300 en el eje 'y'.

Si se quiere cambiar los colores se deben crear objetos color() para poder modificarlos,
un ejemplo de inicializacion es el siguiente:

```javascript
let color_center = color(255, 100);

let color_line = color(255);

let color_wave = color(20,200,50);

let F = new Fourier(x, width / 2, height / 2, color_center, color_line, color_wave);
```

Para poder observar los epicycles de la transformada se hace:

```javascript
F.show_epycicles();
```

Si además se quiere dibujar el camino que hace para poder observar la forma generada
se debe llamar con el parámetro true.

```javascript
F.show_epycicles(true);
```

Para poder exportar la dft existe la funcion export:

```javascrpt
F.export("dft.txt");
```

El formato del texto exportado es de la forma `%f + %fi/n`
Esto significa que por cada linea se encuentra el complejo asociado de la transformada discreta
de Fourier. La primera linea corresponde a frecuencia cero y asi en adelante.

Para poder acceder a los valores desde un lenguaje numerico como MATLAB se puede implementar el siguiente codigo:

```matlab

clear;

fileID = fopen("dft.txt" , 'r');

formatSpec = "%f + %fi\n";

sizeA = [2 inf];

A = fscanf(fileID, formatSpec, sizeA);

N = size(A, 2);

X = zeros(1, N);

for n = 1:N
X(n) = A(1,n) + A(2, n)*j;
end

fclose(fileID);

```

Una vez que se tiene el vector X se puede utilizar el lenguaje para aprovechar sus graficas o poder realizar operaciones en la transformada como filtrar altas frecuencias.