Enseignant :
|
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...
|