PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Intégration de la librairie FFTW
Intégration de la librairie FFTW
Débuté par LeonCosnyd, 14 déc. 2017 11:09 - 5 réponses
Posté le 14 décembre 2017 - 11:09
Bonjour,

Pour l'un de mes développements j'ai besoin de réaliser une FFT d'un signal électrique. Rien ne permet de le faire avec les outils windev. En parcourant le web j'ai vu que la référence dans le domaine était la librairie FFTW codée en C.

J'aimerai savoir s'il est possible de l'utiliser avec windev ? Quelqu'un a t-il déjà du le faire ? Si oui comment ?

En regardant la documentation de la librairie j'ai vu qu'il existait une .dll que le pouvait utiliser en dll externe.
Le code fourni par la documentation est le suivant :
#include 
...
{
    fftw_complex *in, *out;
    fftw_plan p;
    ...
    in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
    out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
    p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
    ...
    fftw_execute(p); /* repeat as needed */
    ...
    fftw_destroy_plan(p);
    fftw_free(in); fftw_free(out);
}


Donc je me lance pour essayer d'adapter ca avec Windev et dès la première ligne je bloque... Je n'arrive pas à déclarer des pointeurs de type fftw_complex avec windev... Dois-je créer une structure windev fftw_complex ? et n'utiliser que les fonctions/procédures de la dll ? Ou peux t-on déclarer des variables d'une dll ?

Je sui preneur de toutes pistes ou idées.

Merci à vous.
Membre enregistré
946 messages
Popularité : +102 (110 votes)
Posté le 14 décembre 2017 - 16:40
bonjour,
vous devez avoir un fichier "xxxxxxx.h" dans lequel vous trouverez un "define fftw_complex........"
in et out sont des pointeurs en windev cela devient des entiers systèmes ou par "&Variable"
Posté le 14 décembre 2017 - 16:47
Bonjour,

Effectivement avec la dll j'ai à disposition un fichier .h contenant les déclarations de la librairie. Mais comment utiliser tout ça avec windev ?
Membre enregistré
946 messages
Popularité : +102 (110 votes)
Posté le 14 décembre 2017 - 17:04
dans le fichier pdf du projet je viens de lire :
typedef double fftw_complex[2];
Here, the [0] element holds the real part and the [1] element holds the imaginary part.
(pour windev [1] et [2])

je traduirais (avec reservessss....)
fftw_complex *in, *out; par
cIn, cOut sont des tableau de 2 réels // à condition que réels de windev soit de la double précision

et pour passer l'adresse de cOut à une fonction on préfixe par «&»
Message modifié, 14 décembre 2017 - 17:05
Membre enregistré
946 messages
Popularité : +102 (110 votes)
Posté le 14 décembre 2017 - 17:14
En Windev un réel peut avoir jusqu'à 15 chiffres significatifs ce qui correspond normalement au double du C++
Posté le 15 décembre 2017 - 12:09
Merci beaucoup pour ces précisions.

Je vais donc essayer de "traduire" chaque variable vers windev . J'ai trouver cette page dans l'aide PcSoft qui va bien m'aider : https://doc.pcsoft.fr/?1514020&name=conversion_types