Vous êtes sur la page 1sur 3

Le traitement du signal avec du code en Java peut être effectué de différentes façons.

On peut
bien sûr directement coder les fonctions, ou bien utiliser une API existante. Mais dans certains
cas, l'avantage d'autres langages peut être mis à profit.
Dans cet article, il est question d'interfacer l'outil SCILAB développé par l'INRIA. On
montrera comment l'installer et le configurer avec du code Java sous Eclipse. Dans un article
prochain, nous verrons comment utiliser SCILAB pour localiser un son à partir de deux
micros.

Scilab est un logiciel de calcul développé par l'INRIA. Pour décrire simplement ses fonctions,
on peut le positionner comme concurrent de Matlab, mais possédant une licence gratuite!. Il
possède par exemple les fonctionnalités suivantes :

• Résolution de systèmes linéaires,


• Calcul de valeurs et vecteurs propres,
• Résolution d'équations différentielles,
• Résolution d'équations non-linéaires,
• Génération de nombres aléatoires,
• Traitement du signal et plus particulièrement du son,...

Pour info, cela sera traité dans un prochain article, c'est ce dernier point qui m'a conduite vers
ce logiciel.

Pour programmer des fonctions mathématiques en JAVA, nous avons trois options :

• Recoder entièrement les fonctions dont on a besoin a partir de l'API de base de JAVA,
• Se dégotter une API en JAVA, si possible en Open Source de DSP dont la prise en
main n'est pas trop laborieuse (cela fait beaucoup de conditions),
• Utiliser un logiciel tiers spécialisé dans le domaine des mathématiques, que l'on va
faire communiquer avec le JAVA (l'opération n'est pas forcément facile, mais le gain
de performance peut être notable).

Nous sommes dans ce dernier cas et je vais présenter dans cet article comment faire
communiquer Scilab et Java sous windows. Scilab nous aura bien marché le travail.

Etape 1: récupérer le programme

SciLAB se télécharge sur http://www.scilab.org/. Vous pouvez en profiter pour récupérer la


documentation .

Installer normalement le logiciel. Une fois que cela est fait, rendez-vous en ligne de
commande dans le répertoire (pour moi) C:\Program Files\scilab-3.1.1\bin. Il contient entre
autre le répertoire "javasci" qui lui même contient les fichiers :

Scilab.class
SciReal.class
BadDataArgumentException.class
En restant dans le repertoire "bin", compresser en .jar ces 3 classes :
$ jar cvf javasci.jar javasci/*.class

Ensuite, copier toutes les dll du répertoire bin dans votre répertoire d'installation de java. Pour
moi, le chemin est C:\j2sdk1.4.2_10\bin. J'ai également copié le répertoire "bin\atlas".

Ensuite il faut que vous déclariez une variable d'environnement globale SCI :
SCI=Path_install_scilab.

Pour moi :
SCI=C:\Program Files\scilab-3.1.1

Et voila vous etes prêt à travailler ! (pour la suite rendez-vous sur la page suivante)

Etape 2: Configurer Eclipse

Créer un nouveau Projet. Lors du choix des librairies, choisissez "ajouter un jar externe" puis
terminer. La configuration est terminée si l'archive Jar a correctement été effectuée et si vous
avec bien ajouté la variable SCI à votre système.
Pour tester, on peut utiliser un code très simple :

import javasci.* ;

class TestMatrix {

static private int m,n; // taille de la matrice mxn


static String name; // nom donné a la matrice

public static void main(String[] args) {


name = "A";
m=4;
n=4;

Scilab sci = new Scilab();

Scilab.Exec("x=loadwave(''c:\\test1.wav'');");
Scilab.Exec("y=loadwave(''c:\\test1.wav'');");

Scilab.Exec("correlation=corr(x,y,700)");
Scilab.Exec("[maximum, delay]=max(correlation);");

SciReal q = new SciReal("delay",1,10);


q.Get();
q.disp();

SciReal r = new SciReal("maximum",1,10);


r.Get();
r.disp();