spectrogramme
Traitement du Signal
Programmation sur PC et sur processeur spécialisé DSP (Digital Signal Processor)
- Cours - Travaux Pratiques - Formations -


Accueil
Documents cours-TP
Code-source
DSP en pratique
Liens


Enseignant :
Benoît Decoux












Code-source
1) Programmes Matlab
  • wav2txt.m : un programme de conversion d'un fichier son (de type .wav dans cet exemple) en fichier texte ASCII. Je me suis inspiré de programmes trouvés sur un autre site
  • txt2wav.m : un programme qui réalise la conversion inverse

2) Programmes Scilab


Transformée de Fourier d'un signal sinusoïdal
Spectrogramme d'un fichier son
Détection de voisement par autocorrélation
Programme affichant le diagramme de Bode d'un filtre RIF à partir de coefficients pré-calculés
Synthèse d'un filtre RIF par la méthode de la TFD inverse


3) Programmes C/C++
  • FFT : fourier.c et test_fourier.c (nécessitent define.h ) : cette implémentation semble largement inspirée du livre "Numerical Recipees in C" ; les fonctions ne sont pas beaucoup commentées mais ce petit programme permer de tester rapidement la FFT avec différents paramètres.
  • Filtrage : Programme Linux pour appliquer un filltrage (exemple d'un filtrage passe-bas du 2e ordre) à un fichier son (type .wav) ou un sont entrant dans la carte son. Il existe une version C et une version C++.
Fichiers communs aux 2 versions : divers.c , divers.h , define.h , Mafefile (à modifier selon la version utilisée).
Fichiers pour la version C :         fltr_fich_c.c , filtrage_c.h
Fichiers pour la version C++ :     fltr_fich.cpp , filtrage_cpp.h

  • Gestion de la carte son sous Windows  : ce programme réalise le même filtrage que le programme pour Linux ci-dessus, mais pour VC++. Les fonctions spécifiques à VC++ sont mises en évidence. Les fichiers gérés  sont de type monophoniques 16 bits (les fichiers 8 bits ne sont pas gérés par souci de simplification du programme).

  • Génération de signal par table d'onde

Version de base
Linux
Version avec 3 types de lecture de la table
Linux
GENE_SON.zip Idem gene_son_1.c Windows
seq_fx.zip Petit séquenceur musical pour fichiers .seq, avec effet chorus Windows


4) Programmes assembleur DSP 56303
Exemples fournis avec la carte d'évaluation
  • pass.asm : test du CODEC : aquière un signal analogique en entrée du CAN et le restitue non modifié en sortie du CNA
  • echo.asm : acquière un signal analogique par le CAN, lui ajoute un écho et envoie le résultat dans le CNA
  • fftc563.asm : implémentation de la FFT
  • 60hzdemo.asm : génère un signal sinusoïdal de 60 Hz et l'envoie sur le CNA
  • passio.asm : lit les échantillons de signal présents dans un fichier ASCII géré par le debuggeur, les copie dans l'accumulateur A et lance la routine de traitement, puis écrit le contenu de l'accumulateur A dans un autre fichier ASCII.
  • Programmes d'exemples pour le nouveau CODEC : dans le CODEC des nouvelles cartes d'évaluation 56303EVM, la programmation des E/S analogiques est un peu différente.

Nos exemples
  • p_rien.asm : programme qui copie une valeur float dans un accumulateur
  • filtre.asm : fonctions d'implémentation d'un filtre IIR, et le programme principal les utilisant : tstflt1.asm
  • bit_rev.asm : exemple d'adressage en renversement binaire
  • fft.asm : macro de calcul de la FFT ; testfft.asm : programme de test ; version avec calcul du module des sorties et remise dans l'ordre naturel des sorties : tstsfft3.asm
  • port_par.asm et port_par.c : test de transmission de données 8 bits par le port parallèle (programme côté DSP et programme côté PC) .

Exemples du DSPLab
  • passio.asm : transfert de données avec le PC par fichiers, par le port série en temps différé (voir aussi io_files.doc).
Cet ensemble de programmes comprend notamment :
  • la fonction "iirtable", qui sauvegarde les coefficients d'un filtre à réponse impulsionnelle infinie calculer par une fonction de synthèse de filtre de Matlab comme "butter" et les place dans un fichier compatible avec l'assembleur du 56303 (ces coefficients sont mis à une échelle adéquate pour limiter les erreurs d'arrondis) ;
  • la fonction "scope", qui permet de visualiser les pôles et les zéros d'un filtre.

... et encore d'autres programmes d'exemple sont décompressés lors de l'installation de l'assembleur...