La fréquence max est actuellement égale à 90 kHz.
- si l'on veut augmenter la vitesse d'acquisition et maîtriser précisément
sa durée d'exécution il y a lieu de remplacer la fonction "acquisition()" par
une routine écrite en assembleur et faire appel à une interruption pour le timing.
- si l'on veut de plus augmenter la vitesse du traitement de la FFT, il faudra
remplacer la fonction "calcul_fourier()" par une routine en assembleur, et en fait dans ce cas on envisagera de réécrire tout le programme en assembleur.
- si on désire une plus grande rapidité encore, on pourra se tourner vers
un microcontrôleur ARM cadencé à... 700 MHz (voire plus) et on pense alors bien sûr au Raspberry Pi !
- si l'on veut calculer encore plus vite on peut utiliser le processeur d'une carte graphique, ou au moins le FPU intégré dans les microprocesseurs de nos ordinateurs.
- et si... on exige encore plus de vitesse on se tournera vers un Field Programmable Gate Arrays (FPGA) ou processeur de signal numérique (DSP) programmé en assembleur.
voir :
- http://fr.wikipedia.org/wiki/Processeur_de_signal_num%C3%A9rique
- http://www.orfony.fr/bdtech/DSP.html
- ADSP-TS001 (Analog Device)
- Stratix FPGA (Altera)
Toutefois cette implémentation sur un simple ATmega à 4 euros n'a pas la prétention d’afficher des performances époustouflantes, mais elle permet de COMPRENDRE et de maîtriser la transformée de Fourier et de la voir fonctionner.