Benhafsa Akram Abd Elouadoud
Benhafsa Akram Abd Elouadoud
Benhafsa Akram Abd Elouadoud
Jury de soutenance
Pr. M. Khamadja
Dr. F. Megri
I
Dédicace
Au nom de Dieu Allah
II
Sommaire
Remerciment .............................................................................................................................. I
Dédicace ..................................................................................................................................... II
Sommaire ................................................................................................................................ III
Liste des Figures ....................................................................................................................... VI
Liste des Tableaux ................................................................................................................. VIII
Introduction Générale ................................................................................................................. 1
Chapitre I : Théorie relative du traitement numérique du signal
I.1.Introduction ........................................................................................................................... 2
I.2.La convolution ..................................................................................................................... 2
I.3.La corrélation ........................................................................................................................ 3
I.4.Convolution et corrélation .................................................................................................... 3
I.5.La Transformée en Z ............................................................................................................ 3
I.6.L’analyse de Fourier ............................................................................................................. 4
I.6.1.Développement en série de Fourier d’une fonction périodique ......................................... 4
I.6.2.Transformation de Fourier d’une fonction ........................................................................ 4
I.7.La transformation de Fourier discrète .................................................................................. 4
I.8.La transformation de Fourier rapide ..................................................................................... 5
I.9.Les filtres numériques ........................................................................................................... 6
I.9.1.Les filtres à réponse impulsionnelle finie (RIF) ................................................................ 6
I.9.1.1.Les caractéristiques de filtre RIF .................................................................................... 6
I.9.1.2.synthèse des filtres RIF par la méthode de fenétre ......................................................... 6
I.9.1.3.Calcul des coefficients par développement en série de Fourier pour des spécifications
en fréquence ............................................................................................................................... 7
I.9.2.Les filtres à réponse impulsionnelle finie (RII) ................................................................. 9
I.9.2.1.Expressions générales pour les caractéristiques ............................................................. 9
I.9.2.2.Calcul direct des coefficients par les fonctions modèles ............................................. 10
I.10.Conversion analogique numérique ................................................................................... 10
I.10.1.Principe de la conversion analogique numérique .......................................................... 10
I.10.1.1.Définition .................................................................................................................... 10
I.10.1.2.Aspects temporels et fréquentiels de l’échantillonnage .............................................. 11
I.11.Conversion numérique analogique ................................................................................... 12
I.12.Conclusion ........................................................................................................................ 13
Chapitre II : hardware et software
III
II.1.Hardware .......................................................................................................................... 14
II.1.1.Introduction .................................................................................................................. 14
II.1.2.Processeurs de traitement du signal (DSP) ..................................................................... 14
II.1.2.1.Définition .................................................................................................................. 14
II.1.2.2.Traitement numérique du signal ................................................................................ 14
II.1.2.3. Adressage bit inverse ................................................................................................. 14
II.1.2.4.Architecture ............................................................................................................... 15
II.1.2.4.1.Von Neumann ......................................................................................................... 15
II.1.2.4.2.Harvard .................................................................................................................. 15
II.1.2.4.3.Pipelines .................................................................................................................. 16
II.1.2.5.Les différents DSP ....................................................................................................... 16
II.1.2.5.1.A virgule fixe .......................................................................................................... 16
II.1.2.5.2.A virgule flottante ................................................................................................... 17
II.1.2.6.Les avantages du DSP ................................................................................................. 17
II.1.2.7.Caractéristiques ........................................................................................................ 17
II.1.3.Architecture ARM ........................................................................................................ 18
II.1.3.1.SOC ARM ................................................................................................................. 18
II.1.3.2.Technologies des processeurs .................................................................................... 18
II.1.3.3.ARM Cortex-M ......................................................................................................... 19
II.1.3.4.Architecture ARM cortex M4 .................................................................................... 19
II.1.4.Cortex Microcontrôleur Software Interface Standard (CMSIS) .................................... 19
II.1.4.1.Définition .................................................................................................................... 19
II.1.4.2.Les avantages de CMSIS ............................................................................................ 19
II.1.4.3.Les composants de CMSIS ......................................................................................... 20
II.1. 5.FM4-176L-S6E2CC-ETH - Arm® Cortex®-M4 CPU ............................................... 21
II.1. 5.1.Caractéristique globale ............................................................................................. 21
II.1. 5.2.Codec WM8731 ........................................................................................................ 22
II.1. 5.3.I2C ............................................................................................................................ 22
II.1. 5.3.1.Définition ............................................................................................................... 22
II.1. 5.3.2.Interface I2C ........................................................................................................... 22
II.1. 5.3.3.Protocole I2C .......................................................................................................... 23
II.1. 5.4.I2s .............................................................................................................................. 23
II.1. 5.4.1.Définition .............................................................................................................. 23
II.1. 5.4.2.L'interface audio I2S : ............................................................................................. 23
II.2.Software ........................................................................................................................... 24
IV
II.2.1.Introduction : ................................................................................................................. 24
II.2.2.IAR Embedded Workbench IDE .................................................................................. 24
II.2.3.GCC (GNU compiler collection ) .................................................................................. 24
II.2.4.µVision keil .................................................................................................................. 24
II.2.4.1.Gestionnaire de projet μVision et environnement d'exécution ................................... 25
II.2.4.2.μVision Editor ............................................................................................................ 25
II.3.conclusion ........................................................................................................................ 26
Chapitre III : application sur le traitement du son
III.1.Introduction ..................................................................................................................... 27
III.2.Introduction de la carte Cypress FM4 par des opérations d’entrée/sortie analogiques de
base .......................................................................................................................................... 27
III.2.1.Exemple 1 : Bouclage du son ....................................................................................... 27
III.2.2.Exemple 2 : Génération d’un signal sinusoïdal à partir d’un tableau de consultation . 29
III.3. Echantillonnage et analyse fréquentielle par des entrées/sorties analogiques ............... 31
III.3.1.Exemple 1: Echantillonnage et repliement de spectre – génération de sinusoïdes ...... 31
III.3.2.Exemple 2: Echantillonnage et repliement de spectre – génération d'onde carrée à l'aide
du codec WM8731 .................................................................................................................. 32
III.3.3.Exemple 3 : Réponses indicielle et impulsionnelle du filtre de reconstruction du
WM8731 .................................................................................................................................. 33
(a)Depuis un signal carré généré à partir des échantillons programmés ................................. 33
(b)Depuis un signal carré obtenu à partir d’un générateur de signaux .................................... 35
III.3.4.Exemple 4 : Réponse fréquentielle d'amplitude du filtre de reconstruction DAC
WM8731 ................................................................................................................................. 36
III.4.Le filtrage ....................................................................................................................... 37
III.4.1.Le filtre a moyenne mobile .......................................................................................... 37
III.4.1.1.Observation de la réponse en fréquence à l'aide d'un signal d'entrée de type PRBS 37
III.3.2.Filtre à réponse impulsionnelle finie (FIR) .................................................................. 39
III.3.2.1.Filtre passe-bas .......................................................................................................... 39
III.3.2.2.Filtre passe-bande ...................................................................................................... 40
III.5.conclusion ....................................................................................................................... 42
Conclusion générale .............................................................................................................. 43
Bibliographies ......................................................................................................................... 44
Résumé .................................................................................................................................... 48
V
Liste des figures
Figure Nom de figure Numéro
de page
Figure I.1 Affixes des coefficients de la TFD 5
Figure I.2 gabarit de filtre passe-bas 7
Figure I.3 fenêtre rectangulaire 8
Figure I.4 incidence de la limitation du nombre de coefficient 8
Figure I.5 a) signal analogique b) signal échantillonné c)puis 11
quantifié.
Figure I.6 Convertisseur analogique numérique 11
Figure I.7 Echantillonnage d’un signal analogique. 12
Figure I.8 Récupération de l’information par filtrage passe bas 12
Figure I.9 Conversion numérique analogique. 12
Figure I.10 Caractéristique de transfert idéale d’un CNA 3 bits. 13
Figure I.11 Exemple de conversion pour un CNA 3 bits. 13
Figure II.1 Le bit inverse : à gauche l'ordre naturel et à droite les 15
données Réarranger dans l'ordre du bit inverse
Figure II.2 architecture Von Neumann 15
VI
Figure II.11 μVision Editor 26
Figure III.1 Système de base pour le traitement numérique du signal 27
Figure III.2 Connexion pour boucler le son 27
Figure III.3 Listing du programme loop_intr.c 28
Figure III.4 Signal observé sur la broche de test ‘TEST_PIN’ 28
Figure III.5 Connexion pour générer un signal sinusoïdal depuis le 29
DAC.
Figure III.6 Sortie analogique sinusoïdale de différentes
fréquences, générée par un tableau de consultation 30
(programme sine_lut_intr.c)
Figure III.7 Tracé du signal sinusoïdal envoyé au DAC du codec 30
en utilisant Matlab
Figure III.8 FFT du signal sinusoïdal (envoyé au DAC) en utilisant 31
Matlab
Figure III.9 Sortie analogique générée par le programme sine_ 32
intr.c pour différentes fréquences
Figure III.10 Forme d'onde de sortie analogique générée en utilisant 33
des échantillons d'une onde carrée de 1 kHz.
Figure III.11 Simulation Matlab d’un signal équivalent à celui de la 33
figure III.10
Figure III.12 Forme d'onde de sortie analogique générée par un 34
signal carré de 64 échantillons
Figure III.13 réponse impulsionnelle du filtre de reconstruction 34
DAC WM8731
Figure III.14 Amplitudes des composantes de fréquence présentes
dans la forme d'onde analogique générée à partir d’une 35
entrée carrée.
Figure III.15 Connexion pour générer un signal carrée depuis le 35
DAC
Figure III.16 Forme d'onde de sortie analogique générée obtenu à 35
partir d’un générateur de signaux
Figure III.17 séquence binaire pseudo-aléatoire obtenue depuis le 36
programme
Figure III.18 Réponse fréquencielle du filtre de reconstruction DAC
WM8731 pour une séquence PRBS pour fe=8Khz zt 36
fe=48Khz
Figure III.19 de connexion pour mesurer la réponse en fréquence de 37
magnitude du filtre moyen mobile ponctuel mis en
œuvre par le programme average_prbs_intr.c
VII
Figure III.20 l’environnement GoldWave utilisée pour observer les 38
signaux sur un PC
Figure III.21 filtre à moyenne mobile de 5 coefficients,en haut : la 38
réponse fréquentielle en utilisant Matlab, en bas : la
réponse fréquentielle de l’amplitude du filtre en
utilisant la carte FM4 et GoldWave sur un pc
Figure III.22 filtre à moyenne mobile de 11 coefficients, en haut : la 39
réponse fréquentielle en utilisant Matlab, en bas : la
réponse fréquentielle de l’amplitude du filtre en
utilisant la carte FM4 et GoldWave sur un pc
Figure III.23 filtre à moyenne mobile de 5 coefficients, en haut : la 40
réponse impulsionnelle, en milieu : la réponse
fréquentielle en utilisant Matlab, en bas : la réponse
fréquentielle de l’amplitude du filtre en utilisant la
carte FM4 et GoldWave sur un pc (fenêtre de Hann)
Figure III.24 filtre à moyenne mobile de 40 coefficients, en haut : la 40
réponse impulsionnelle, en milieu : la réponse
fréquentielle en utilisant Matlab, en bas : la réponse
fréquentielle de l’amplitude du filtre en utilisant la
carte FM4 et GoldWave sur un pc (fenêtre de Kaiser )
VIII
Introduction générale
Introduction générale
Introduction générale
Un DSP (traitement numérique de signal) est un microprocesseur optimisé pour exécuter des
applications de traitement numérique du signal (filtrage, extraction de signaux, etc.) le plus
rapidement possible.
Les DSP sont utilisés dans la plupart des applications du traitement numérique du signal en
temps réel. On les trouve dans les modems (modem RTC, modem ADSL), les téléphones
mobiles, les appareils multimédia (lecteur MP3), les récepteurs GPS... Ils sont également
utilisés dans des systèmes vidéo, les chaînes de traitement de son, partout où l'on reçoit un
signal complexe que l'on doit modifier à l'aide du filtrage
Dans ce travail, on se propose de faire l’implémentation de quelques algorithmes de
traitement numérique du son en temps réel sur une plateforme DSP low cost de type Cypress
FM4 basée sur un microcontrôleur ARM Cortex M4.
Pour présentation de notre travail, nous avons organisés ce mémoire en trois chapitres.
Ainsi dans le premier chapitre nous présentons un rappel sur les notions relatives aux
traitements numériques du signal.
Dans le deuxième chapitre nous présentons le matériel et le logiciel que nous utilisons dans
notre travail.
Enfin le troisième chapitre sera consacré à l’implémentation et les résultats de
l’expérimentation.
Et ce travail est finalisé par une conclusion et des perspectives sur l’intérêt des DSP dans des
applications de la vie.
1
Chapitre I
Théorie relative du traitement
numérique du signal
Chapitre I théorie relative du traitement numérique du signal
I.1.Introduction
Le signal est le support de l’information émise par une source et destinée à un récepteur ; c’est le
véhicule de l’intelligence dans les systèmes. Il transporte les ordres dans les équipements de
contrôle et de télécommande, il achemine sur les réseaux l’information, la parole ou l’image. Il
est particulièrement fragile et doit être manipulé avec beaucoup de soins. Le traitement qu’il
subit a pour but d’extraire des informations, de modifier le message qu’il transporte ou de
l’adapter aux moyens de transmission ; c’est la qu’interviennent les techniques numériques. En
effet, si l’on imagine de substituer au signal un ensemble de nombre qui représentent sa
grandeur ou amplitude a des instants convenablement choisis, le traitement, même sa forme la
plus élaborée, se ramène a une séquence d’opération logiques et arithmétiques sur cet ensemble
de nombres, associées a des mises en mémoire.
2
Chapitre I théorie relative du traitement numérique du signal
On a alors
s(n)=h(n)∗g(n)=∑𝑁−1
𝑘=0 ℎ(𝑘)𝑔(𝑛 − 𝑘) avec n ∈ [0,2N-2] (I.2)
Règle n°2
On réalise l’opération en considérant que les échantillons en dehors de l’intervalle [0, N-1] ont
même valeur que ceux contenus dans l’intervalle ce qui correspond à périodiser le signal
retourné. [2]
Règle n°3
On fait le calcul sur un intervalle moitié de la dimension du signal ce qui revient indirectement à
utiliser la règle 2. [2]
Il est clair que les règles proposées pour ce calcul ne conduisent pas toutes au même résultat.
Ceci sera discuté ultérieurement.
I.3.La corrélation
Pour des signaux numériques (que l’on supposera réels) définis par {s(n)} et {r(n)} et tels que
dim(s)=N et dim(r)=M, on définit la fonction de corrélation par :
I.4.Convolution et corrélation
Nous avons vu que les deux opérations de convolution et de corrélation s’apparentent fortement.
Nous établissons maintenant le lien formel que existent entre ces deux opérations.
∞
𝐶𝑠𝑟 (𝜏) = 𝑠(𝑡) 𝑟(𝑡) = ∫−∞ 𝑠(𝑡)𝑟 ∗ (𝑡 − 𝜏)𝑑𝑡 (I.5)
∞
=∫−∞ 𝑠(𝑡)𝑟 ∗ (−(𝜏 − 𝑡))𝑑𝑡=s(𝜏)∗ 𝑟 ∗ (−𝜏)
3
Chapitre I théorie relative du traitement numérique du signal
La transformée en z constitue l’outil privilégie pour l’étude des systèmes discrets. Elle joue un
rôle équivalent à celui de la transformée de Laplace.
Soit un signal discret x(n) ; La transformée en Z (bilatérale) est définie par :
X(z)=Z{x(n)}=∑∞
𝑛=−∞ 𝑥(𝑛)𝑍
−𝑛
(I.7)
Ou z est une variable complexe et où X(z) est un fonction complexe de la variable z.[3]
I.6.L’analyse de Fourier
I.6.1.Développement en série de Fourier d’une fonction périodique
Soit s(t), une fonction de la variable t périodique et de période T, c'est-à-dire satisfaisant la
relation :
s(t+T)=s(t) (I.8)
Sous certaines conditions, on démontre que cette fonction est développable en série de Fourier,
c'est-à-dire que l’égalité suivante est vérifiée :
∑∞
𝑛=−∞ 𝐶𝑛 𝑒
𝑗2𝜋𝑛𝑡/𝑇
(I.9)
L’indice n est un entier et les 𝐶𝑛 sont appelés les coefficients de Fourier ; ils sont définis par
l’expression :
1 𝑇
𝐶𝑛 = 𝑇 ∫0 𝑠(𝑡)𝑒 −𝑗2𝜋𝑛𝑡/𝑇 𝑑𝑡 (I.10)
En fait les coefficients de Fourier minimisent l’écarte quadratique entre la fonction s(t) et le
développement. En effet la valeur est obtenue en dérivant par rapport au coefficient d’indice n
l’expression :
∞ 2
𝑇
∫ (𝑠(𝑡) − ∑ 𝐶𝑚 𝑒 𝑗2𝜋𝑛𝑡/𝑇 ) 𝑑𝑡
0 𝑚=−∞
4
Chapitre I théorie relative du traitement numérique du signal
Soit deux suites de nombres complexes x(n) et X(k), périodique et de période N. la transformée
de Fourier discrète et la transformée inverse établissent entre ces deux suites les relations
suivantes respectivement :
𝑛𝑘
1 −𝑗2𝜋
𝑋(𝑘) = 𝑁 ∑𝑁−1
𝑛=0 𝑥(𝑛)𝑒 𝑁 (I.13)
𝑘𝑛
𝑗2𝜋
𝑥(𝑛) = ∑𝑁−1
𝑘=0 𝑋(𝑘)𝑒 𝑁 (I.14)
La position du facteur d’échelle 1/N est choisie pour que les X(k) soient les coefficients du
développement en série de Fourier de la suite x(n). [1]
I.8.La transformation de Fourier rapide
Les équations de définition de la TFD fournissent une relation entre deux ensembles de N
nombres complexes, qui s’écrit d’une manière commode sous une forme matricielle, en posant :
2𝜋
𝑊 = 𝑒 −𝑗 𝑁 (I.15)
Les affixes des nombres 𝑊 𝑛 , appelés coefficients de la T.F.D. se trouvent sur le cercle unité
comme le montre la figure I.1. Ce sont les racines de l’équation 𝑍 𝑁 − 1 = 0 ou racines Nièmes
de l’unité.
5
Chapitre I théorie relative du traitement numérique du signal
Un cas très intéressant est celui ou N est une puissance de deux car il conduit à des algorithmes
peu complexes qui sont particulièrement efficaces. Ces algorithmes sont basés sur une
décomposition de la suite à transformer en sous suite entrelacées. Le cas de l’entrelacement dans
le temps va être considéré d’abord. [1]
6
Chapitre I théorie relative du traitement numérique du signal
Le calcul des coefficients repose sur l’utilisation de la transformée numérique et des fenêtres
spectrales (rectangulaire, Hanning, Hamming,…)
Une fenêtre spectrale est caractérisée dans le domaine fréquentiel par :
- La largeur du lobe principale qui définit la largeur de la transition de Gibbs.
- Les lobes secondaires qui conduisent aux ondulations dans les bandes passantes et
d’arrêt.
On ne peut évidemment comparer que des fenêtres ayant le même nombre d’échantillons N. la
fenêtre rectangulaire est celle qui assure la transition de Gibbs la plus étroite, par contre les
ondulations dans les bandes passante et d’arrét sont importantes.la fenêtre Hamming assure
quant à elle des ondulations moindres, par contre la largeur de la transition de Gibbs est plus
importante. [4]
Fenêtre Ondulation Atténuation max Bande de transition
𝑅𝑝 [dB] 𝐴𝑚𝑎𝑥 [dB] ∆𝛺
Rectangle 0.74 21 1.8𝜋/N
Triangle (barttlett) 0 25 6.1𝜋/N
Cosinus (HAN) 0.055 44 6.2𝜋/N
Kaiser 𝛽=5.06 0.009 60 7.2𝜋/N
Tableau I.1 : performances de quelques fenêtres.[4]
I.9.1.3.Calcul des coefficients par développement en série de Fourier pour des
spécifications en fréquence
Les spécifications en fréquence correspondent a la donnée d’un gabarit. Pour un filtre passe-bas
on impose par exemple a la valeur absolue de la fonction de transfert d’approcher la valeur 1
𝑓
avec la précision 𝜑1 , dans la bande (𝑓2 , 2𝑒), dite bande affaiblie. Le gabarit correspondant est
représenté sur la figure I.2. L’intervalle ∆𝑓 = 𝑓2 − 𝑓1 est appelé bande de transition et la raideur
de coupure désigne le paramètre 𝑅𝐶 tel que :
𝑓 +𝑓
𝑅𝑐 = 2(𝑓1 −𝑓2 ) (I.19)
2 1
7
Chapitre I théorie relative du traitement numérique du signal
Une méthode très simple pour obtenir les coefficients ℎ𝑖 consiste à développer en série de
Fourier la fonction périodique H(f) à approcher ; il vient alors :
1 𝑓𝑒 −𝑗2𝜋𝑖
𝑓
𝑓𝑒 𝑑𝑓
ℎ𝑖 = ∫ 𝐻(𝑓)𝑒
𝑓𝑒 0
Dans le cas du filtre passe-bas correspondant au gabarit de la figure I.2, la relation suivant :
𝜏
1 𝜏⁄ −𝑗2𝜋𝑛𝑡⁄ 𝛼𝜏 sin(𝜋𝑛𝑇)
𝐶𝑛 = 2 𝛼𝑒 𝑇 𝑑𝑡 =
𝑇
∫−𝜏 ⁄2 𝑇 𝜋𝑛
𝜏 (I.20)
𝑇
Conduit à :
𝑓1 +𝑓2
𝑓1 +𝑓2 sin 𝜋𝑖 𝑓𝑒
ℎ𝑖 = 𝑓 . 𝑓1 +𝑓2 (I.21)
𝑒 𝜋𝑖
𝑓𝑒
Pour que le filtre soit réalisable il faut limiter à N le nombre de coefficients. Cette opération
revient à multiplier la réponse impulsionnelle h(t) par une fenêtre temporelle g(t) telle que :
−𝑁𝑇 𝑁𝑇
𝑔(𝑡) = 1 𝑝𝑜𝑢𝑟 ≤𝑡≤
2 2
𝑔(𝑡) = 0 𝑎𝑖𝑙𝑙𝑒𝑢𝑟𝑠.
La transformée de Fourier de cette fonction s’écrit en appliquant :
sin(𝜋𝑓𝑛𝑇)
G(f)=NT (I.22)
𝜋𝑓𝑁𝑇
8
Chapitre I théorie relative du traitement numérique du signal
Les ondulations dépendent de celles de la fonction G(f) et, pour les réduire, if suffit de choisir
comme fenêtre temporelle une fonction dont le spectre présente moins d’ondulation qui celui de
la fenêtre rectangulaire ci-dessus. Par exemple la fenêtre de hamming définie comme suit :
𝑔(𝑡) = 0.54 + 0.46cos(2𝜋𝑡/𝑁𝑇) 𝑝𝑜𝑢𝑟 ǀ𝑡ǀ ≤ 𝑁𝑇/2
𝑔(𝑡) = 0 𝑝𝑜𝑢𝑟 ǀ𝑡ǀ > 𝑁𝑇/2
La contrepartie de la réduction des ondulations en bandes passante et affaiblie est un
élargissement de la bande de transition.
Elle est périodique et sa transformée de Fourier inverse est constituée d’un ensemble de K+1
valeurs discrètes non nulles, utilisées pour pondérer les coefficients du développement en série
de Fourier de la fonction de filtrage à approcher. [1]
C’est le quotient de deux polynômes en Z, qui sont souvent de même degré. Les coefficients 𝑎𝑙
et 𝑏𝑘 étant des nombres réels, H(z) est un nombre complexe tel que :
𝐻(𝑍) = 𝐻(𝑍)
La réponse en fréquence du filtre s’écrit :
H(𝜔)=ǀ𝐻(𝜔)ǀ𝑒 −𝑗𝜑(𝜔)
Le module et la phase s’expriment à partir de H (Z) par l’expression suivants :
|𝐻(𝜔)|2=|𝐻(𝑍)𝐻(𝑍 −1 )|𝑍=𝑒 𝑗𝜔 (I.25)
Par élévation de H(𝜔) au carré et en utilisant (I.25) , il vient :
1 𝐻(𝑍)
𝜑(𝜔) = 2𝑗 ln[𝐻(𝑍 −1 )]𝑍=𝑒 𝑗𝜔 (I.26)
9
Chapitre I théorie relative du traitement numérique du signal
Les équations (I.25) et (I.26) constituent des expressions concises pour le calcul des principales
caractéristiques des filtres RII d’ordre quelconque.[1]
I.9.2.2.Calcul direct des coefficients par les fonctions modèles
Une méthode directe pour calculer les coefficients d’un filtre RII consiste à faire appel à une
fonction modèle, qui est une fonction réelle définie sur l’axe des fréquences.
Les fonctions modèles considérées sont des fonctions connues pour leurs propriétés de
sélectivité, les fonctions de Butterworth, Bessel, Tchebycheff et les fonctions elliptiques. Elles
sont également utilisées pour le calcul des filtres analogiques. Elles constituent un modèle pour
le carré de la fonction de transfert à obtenir. Cependant un obstacle apparait pour leur utilisation
au calcul de filtres numérique car elles ne sont pas périodiques alors que la fonction à obtenir a la
période 𝑓𝑒 . Il faut donc établir une correspondance entre l’axe réel et l’intervalle [0,𝑓𝑒 ]. Une telle
correspondance est fournie par une transformation conforme dans le plan complexe qui doit
posséder les propriétés suivantes :
- Transformer l’axe imaginaire en le cercle unité.
- Transformer une fraction rationnelle de la variable complexe s en une fraction rationnelle
de la variable complexe Z.
- Conserver la stabilité.
Une première approche consiste à chercher à conserver pour le filtre numérique la réponse
impulsionnelle du filtre analogique.[1]
10
Chapitre I théorie relative du traitement numérique du signal
Un signal analogique, 𝑉𝑎 (t) continu en temps et en amplitude a) est échantillonné à une période
d’échantillonnage constante 𝑇𝑒𝑐ℎ . On obtient alors un signal échantillonné 𝑉𝑒𝑐ℎ (k.𝑇𝑒𝑐ℎ ) discret en
temps et continu en amplitude b). Ce dernier est ensuite quantifié, on obtient alors un signal
numérique 𝑉𝑞 [k] discret en temps et en amplitude c). La quantification est liée à la résolution du
CAN (son nombre de bits) ; dans l’exemple précédent 𝑉𝑞 [k] peut prendre huit amplitudes
différentes (soit 23 , 3 étant le nombre de bits du CAN). La figure I.5 présente également le code
numérique sur trois bits (en code binaire naturel) associé à 𝑉𝑞 [k] en fonction du temps. [5]
La figure I.6 présente le symbole d’un CAN à N bits
11
Chapitre I théorie relative du traitement numérique du signal
12
Chapitre I théorie relative du traitement numérique du signal
Chacun des 2𝑁 mots binaires pouvant être appliqué en entrée est associé à une tension analogique
de sortie 𝑉𝑠𝑎 (t) telle que :
𝑉
𝑉𝑠𝑎 =(𝑏1 . 2𝑁−1+𝑏2 . 2𝑁−2 +…..+𝑏𝑁−1 . 21 +𝑏𝑁 . 20 ).2𝑁𝑃𝐸 (I.28)
−1
En prenant 𝑏1 comme MSB.
La figure I.10 présente la caractéristique de transfert idéale pour une entrée sur 3 bits.
On définit le LSB, ou quantum, comme étant la plus petite variation possible de la tension de
sortie (Figure I.10) correspondant à un changement du bit de poids faible :
𝑉 𝑉
LSB=2𝑁𝑃𝐸 = 𝑟𝑒𝑓 (I.29)
−1 2𝑁
La figure I.11 illustre la conversion N/A d’une série de mots binaires a) pour N = 3.
La sortie analogique b) 𝑉𝑠𝑎 (t), est quantifiée. On ajoute parfois en sortie du CNA un filtre
analogique passe-bas ou filtre de lissage c). [5]
I.12.Conclusion
Dans ce chapitre, nous avons présenté les théorèmes principales du traitement numérique du
signal qui nous avons utilisée dans notre projet.
13
Chapitre II
Hardware et software
Chapitre II hardware et software
II.1.Hardware
II.1.1.Introduction
Les processeurs de traitement du signal, ou DSP en anglais pour Digital Signal Processor, ont fait
leur apparition dans le domaine industriel et audionumérique professionnel depuis les années 80
(pour les premiers). Leur utilisation pour un usage domestique n’est vraiment survenue que vers le
milieu des années 90.
Bien que son nom sous-entende un système numérique complet, cette technologie et les composants
l’entourant couvrent un panel de disciplines plutôt vaste :
électronique analogique
électronique numérique
microprocesseur
informatique
mathématiques du signal [6]
Le kit de démarrage cypress FM4 fournit une solution économique pour démarrer rapidement le
développement d'un microcontrôleur ARM® Cortex®-M4. La carte comporte des périphériques
pour démontrer les caractéristiques du microcontrôleur FM4 S6E2CCA. [12]
II.1.2.Processeurs de traitement du signal (DSP) :
II.1.2.1.Définition du DSP
Un DSP (de l'anglais « Digital Signal Processor », qu'on pourrait traduire par « processeur de signal
numérique » ou « traitement numérique de signal ») est un microprocesseur optimisé pour exécuter
des applications de traitement numérique du signal (filtrage, extraction de signaux, etc.) le plus
rapidement possible. [7]
II.1.2.2.Traitement numérique du signal
Le traitement numérique du signal implique la réalisation de nombreuses opérations mathématiques.
En comparaison, un logiciel de traitement de texte ou une base de données va plutôt passer son
temps à manipuler des données en mémoire. Cela implique que des ordinateurs conçus pour la
bureautique ou d'autres applications générales ne sont pas optimisés pour exécuter des algorithmes
de traitement du signal, comme le filtrage numérique ou la réalisation d'une analyse de Fourier.
En ce qui concerne les filtres, les DSP en simplifient grandement la réalisation pour plusieurs
raisons :
Résultat prédictible et hautement répétable (caractéristique des circuits numériques, par
opposition aux circuits analogiques) ;
Nombre de composants externes réduit ;
Changement de filtre dynamique par simple programmation ;
Filtrage à phase linéaire. [7]
II.1.2.3. Adressage bit inverse
Les DSP supportent un dernier mode d'adressage : l'adressage bit-reverse. Ce mode d'adressage sert
à accélérer les calculs de transformées de Fourier rapides. Ces calculs de transformée de Fourier
étant courants en traitement de signal, un mode d'adressage spécial lui est réservé.
Cet algorithme a la fâcheuse tendance à produire ses résultats dans un ordre différent des données
de départ. En gros, cet algorithme va prendre des données, stockées dans un tableau, et va fournir
des résultats, eux aussi écrits dans un tableau. L'ordre de calcul des résultats dans le tableau
14
Chapitre II hardware et software
d'arrivée suit une logique particulière. Les bits de l'adresse du résultat sont partiellement inversés
comparé aux bits de l'adresse normale.
Par exemple, pour un tableau de 8 cases, numérotées 0,1, 2, 3, 4, 5, 6, 7, les données arrivent dans
cet ordre : 0, 4, 2, 6, 1, 5, 3, 7
Figure II.1 : Le bit inverse : à gauche l'ordre naturel et à droite les données
Réarranger dans l'ordre du bit inverse [7]
Les DSPs disposent donc d'un mode d’adressage qui inverse tout ou partie des bits d'une adresse
mémoire, afin de gérer plus facilement les calculs de FFT. Une autre technique consiste à calculer
nos adresses différemment. Lors de l'ajout d'un indice à notre adresse, la direction de propagation de
la retenue de l'addition est inversée. Certains DSP disposent d'instructions pour faire de genre de
calculs. [7]
II.1.2.4.Architecture DSP
II.1.2.4.1.Von Neumann
Le processeur, via le compteur de programme, sait à tout instant où il se trouve dans le programme
et sait donc ce qu’il doit exécuter ensuite. Ceci étant, il faut donc aller chercher les données en
mémoire programme avec tout ce que cela implique (adressage, lecture…).
L’architecture de Von Neumann a la particularité de ne posséder qu’une seule mémoire dans
laquelle sont stockées instructions et données. Il faut donc partager le bus de données venant de
cette mémoire. Cette structure est souvent utilisée pour les microcontrôleurs et microprocesseurs car
elle est très simple à manier pour le programmeur. Ainsi, c’est celle qui est utilisée dans la famille
des microprocesseurs Motorola 68XXX et Intel 80X86. [1]
II.1.2.4.2.Harvard
Ce nom est très bien porté par cette architecture puisqu’elle a été conçue outre-Atlantique vers 1930
dans l’Université de Harvard.
15
Chapitre II hardware et software
16
Chapitre II hardware et software
un peu d’astuce et des concepteurs minutieux pour prévoir à l’avance la précision voulue et
optimiser les calculs. [6]
II.1.2.5.2.A virgule flottante
Ces DSP sont bien plus commodes pour les développeurs. Les données sont représentées avec une
mantisse et un exposant selon la formule : n = mantisse*2exposant. On utilise souvent une mantisse
fractionnaire comprise entre -1.0 et 1.0. L’exposant indique la place de la virgule en base 2.
Mais le DSP sait aussi manipuler des entiers, donc avec une précision de 32 bits. Ainsi, cette grande
plage permet de développer sans vraiment trop se préoccuper de la précision. C’est surtout le prix
qui limitera le développement (nombre de broches plus important, surface de silicium du cœur
doublée…).[6]
II.1.2.6.Les avantages du DSP
Après avoir dit un peu de mal de ces bêtes du traitement numérique, nous allons voir ce qui fait leur
force.
•Leur précision : Effectivement, alors que des composants analogiques ont une précision donnée par
le constructeur et s’élevant généralement à quelques pourcents, le DSP aura toute la même précision
et il sera possible de reproduire un dispositif à de nombreux exemplaires sans devoir recourir à un
quelconque étalonnage.
•La constance : Si en numérique le signal est toujours traité de la même façon indépendamment du
vieillissement, de la température… il n’en est pas du tout de même pour un système analogique. Il y
aura donc un équilibre à prendre en compte entre le temps pour calculer ces paramètres en
analogique et le temps pour développer le programme du DSP.
•Algorithme adaptive : C’est bien le plus gros avantage du DSP. Il est possible de choisir
exactement l’algorithme de traitement parfaitement adapté au système. Et dans certains cas, ce
traitement dépend du signal traité, ce qui est généralement très complexe sinon impossible en
analogique. L’algorithme pourra aussi être mis à jour par la suite sans modification matérielle.
•Programmation simple : Les outils de développement pour DSP sont généralement souples du
point de vue du langage de programmation (assembleur, C) mais restent limités à un langage
impératif. [6]
II.1.2.7.Caractéristiques du DSP
Un DSP est un processeur dont l'architecture est optimisée pour effectuer des calculs complexes en
un cycle d'horloge, mais aussi pour accéder très facilement à un grand nombre d'entrées-sorties
(numériques ou analogiques).
Il possède aussi quelques caractéristiques assez spécialisées :
Seulement des processus parallèles, pas de multitâche. Des contraintes sont imposées car les
DSP n'ont qu'une gestion rudimentaire des interruptions quand ils en ont une.
La possibilité d'être utilisé comme un périphérique accédant directement à la mémoire dans
un environnement hôte.
Peut acquérir les données numériques d'un convertisseur analogique-numérique (CAN ou
ADC), appliquer un traitement à ces données et les restituer au monde extérieur grâce à un
convertisseur numérique-analogique (CNA ou DAC).
Pas de mémoire virtuelle, pour diminuer les couts de fabrication et la latence des accès
mémoires
17
Chapitre II hardware et software
18
Chapitre II hardware et software
DSP : composant électronique optimisé pour l'analyse numérique. Son application principale
est le traitement du signal numérique (filtrage, encodage/décodage, extraction de signaux,
etc.).
FPU : unité de calcul sur les nombres flottants.[8]
II.1.3.3.ARM Cortex-M
ARM Cortex-M est une famille de processeur RISC 32-bits d'architecture ARM servant à la fois de
microprocesseur et de microcontrôleur à destination de l'embarqué. Elle implémente d'abord le jeu
d'instructions ARMv6-M (Cortex-M0, Cortex-M0+ et Cortex-M1) puis le ARMv7-M (Cortex-M3,
Cortex-M4 et Cortex-M7). Cette famille a été développé par ARM Ltd en parallèle à la famille
Cortex-A (ARMv7-A) destinée au marché des Smartphones et tablettes tactiles et à la famille
Cortex-R (ARMv7-R) destinée au temps réel. [9]
19
Chapitre II hardware et software
20
Chapitre II hardware et software
en tant que paquet séparé et est bien adapté pour l'intégration sur les cartes d'évaluation. Ce
composant est fourni en téléchargement séparé.
CMSIS-Zone: Définition et partitionnement des ressources système. Définit des méthodes
pour décrire les ressources système et pour partitionner ces ressources en plusieurs projets et
zones d'exécution. [11]
21
Chapitre II hardware et software
22
Chapitre II hardware et software
I2C n'utilise que deux fils: SCL (horloge série) et SDA (données série). Les deux doivent être tirés
avec une résistance a + Vdd. Il y a aussi des shifters de niveau I2C qui peuvent être utilisés pour se
connecter à deux bus I2C avec des tensions différentes. [14]
II.1. 5.3.3.Protocole I2C :
En état normal, les deux lignes (SCL et SDA) sont hautes. La communication est initiée par le
périphérique maître. Il génère la condition de démarrage (S) suivie de l'adresse de l'équipement
esclave (B1). Si le bit 0 de l'octet d'adresse a été mis à 0, le dispositif maître écrira sur le dispositif
esclave (B2). Sinon, l'octet suivant sera lu sur l'appareil esclave. Une fois que tous les octets ont été
lus ou écrits (Bn), le dispositif maître génère la condition d'arrêt (P). Ceci signale aux autres
appareils sur le bus que la communication est terminée et qu'un autre appareil peut utiliser le bus.
La plupart des appareils I2C prennent en charge des conditions de démarrage répétées. Cela signifie
qu'avant que la communication ne se termine par une condition d'arrêt, le dispositif maître peut
répéter la condition de démarrage avec l'octet d'adresse et changer le mode d'écriture en lecture.
[14]
23
Chapitre II hardware et software
II.2.Software
II.2.1.Introduction :
Dans la deuxième partie du chapitre en va exprimer l’IDE que en va utiliser dans notre Project pour
programmer notre carte.
Il y a plusieurs IDE de programmation en a par exemple : IAR Embedded Workbench IDE, GCC
(GNU compiler collection) et µVision® IDE.
Dans notre Project en utilise µVision® IDE pour programmer notre carte.
II.2.4.µVision keil
L'IDE μVision associe la gestion de projet, l'environnement d'exécution, les fonctions de
génération, l'édition de code source et le débogage de programme dans un seul environnement
puissant. μVision est facile à utiliser et accélère le développement de votre logiciel embarqué.
24
Chapitre II hardware et software
μVision prend en charge plusieurs écrans et vous permet de créer des dispositions de fenêtres
individuelles n'importe où sur la surface visuelle.
Le débogueur μVision fournit un environnement unique dans lequel vous pouvez tester, vérifier et
optimiser le code de votre application. Le débogueur inclut des fonctionnalités traditionnelles telles
que les points d'arrêt simples et complexes, les fenêtres de surveillance et le contrôle d'exécution,
ainsi qu'une visibilité complète sur les périphériques de l'appareil. [18]
II.2.4.1.Gestionnaire de projet μVision et environnement d'exécution
Avec μVision Project Manager et Run-Time Environment, vous créez une application logicielle à
l'aide de composants logiciels préconstructeurs et de la prise en charge de périphériques à partir de
Software Packs. Les composants logiciels contiennent des bibliothèques, des modules source, des
fichiers de configuration, des modèles de code source et de la documentation. Les composants
logiciels peuvent être génériques pour prendre en charge un large éventail de périphériques et
d'applications.
II.2.4.2.μVision Editor
25
Chapitre II hardware et software
L'éditeur μVision intégré inclut toutes les fonctionnalités standard d'un éditeur de code source
moderne et est également disponible pendant le débogage. La coloration de la couleur, l'indentation
du texte et le contour de la source sont optimisés pour C / C ++.
II.3.conclusion
Dans ce chapitre nous avons présenté le hardware et software qui nous avons utilisée dans notre
Project
26
Chapitre III
Application sur le traitement du son
Chapitre III Application sur le traitement du son
III.1.Introduction
Dans ce qui suit, nous allons procéder à l’exploitation la carte Cypress FM4 (FM4-176L-
S6E2CC-ETH Starter Kit) dans des manipulations de traitement du son. Pour ce faire, on
procède en premier lieu à tester la carte avec des programmes de base : bouclage du son,
introduction d’un retard, génération d’un signal sinusoïdal. En deuxième lieu, on va explorer les
concepts d’échantillonnage, repliement de spectre et reconstruction du signal à partir du Codec
WM8731 disponible sur la carte. Et en dernier, on va introduire un filtre de type FIR sur un
signal sonore et analyser l’effet résultant, en étudiant la réponse fréquentielle obtenue.
La carte FM4 sera connectée à un ordinateur hôte via un câble USB. L'environnement de
développement Keil MDK-ARM, exécuté sur le PC hôte, permet de compiler, de lier et de
télécharger/déboguer les programmes écrits en langage C sur le MCU S6E2CCA FM4. Les
entrées / sorties audio en temps réel sont fournies par le codec WM8731 de Wolfson inclus dans
la carte de développement.
Le matériel utilisé consiste en : une carte Cypress FM4, un oscilloscope, un générateur de signal
de fréquence audio, un PC exécutant Keil MDK-ARM, GoldWave/Wavepad MATLAB et des
câbles de connexion appropriés.
LINE IN
ADC
Bouclage
du son
DAC
HP OUT
27
Chapitre III Application sur le traitement du son
Le fichier source C pour un programme qui copie les échantillons d'entrée lus depuis le
convertisseur ADC du WM8731 vers le convertisseur DAC du WM8731 est répertorié dans la
figure III.3. En effet, le programme connecte la prise d’entrée microphone à la prise de sortie
casque sur la même carte. Ce programme est basé sur un modèle temps réel piloté par les
interruptions.
La figure III.4 illustre un signal carré de fréquence 24khz (fe=48khz) observé par un oscilloscope
sur la broche de test (P10).
1 // loop_intr.c
2 #include "audio.h"
3
4 volatile int16_t audio_chR=0;
5 volatile int16_t audio_chL=0;
6
7 void I2S_HANDLER(void) {
8 gpio_toggle(P2_10);
9 audio_IN = i2s_rx(); //32-bits; 16-bits channel left + 16-bits channel right
10 audio_chL = (audio_IN & 0x0000FFFF);
11 audio_chR = ((audio_IN >>16)& 0x0000FFFF);
12 audio_OUT = ((audio_chR<<16 & 0xFFFF0000)) + (audio_chL & 0x0000FFFF);
13 i2s_tx(audio_OUT);
14 }
15
16 int main(void)
17 {
18 gpio_set_mode(P2_10,Output);
19 audio_init ( hz48000, mic_in, intr, I2S_HANDLER);
20
21 while(1){}
22 }
Dans la fonction main (), une fonction d'initialisation audio_init () est appelée. Ceci
configure les entrées / sorties et les interruptions de sorte que le codec WM8731 échantillonne le
signal d'entrée analogique et interrompt le processeur à la fréquence d'échantillonnage
déterminée par le paramètre hz4800 transmis à la fonction. De plus, le paramètre mic_in
spécifie que l'entrée vers le ADC WM8731 proviendra de la ligne de microphone IN de la carte
28
Chapitre III Application sur le traitement du son
Génerer Signal
depuis Tableau
DAC
HP OUT
oscilloscope
29
Chapitre III Application sur le traitement du son
On remarque que les signaux sont continus, ceci est dû au fait que le le Codec contient un filtre
reconstruction passe bas qui introduit une interpolation entre les valeurs des échantillons de
sortie pour donner une sortie analogique sinusoïdale lisse.
La figure III.7 illustre la visualisation des échantillons des sinusoïdes en utilisant Matlab, et la
figure III.8 l’analyse fréquentielle FFT.
4
x 10
1
0.8
0.6
0.4
0.2
sample value
-0.2
-0.4
-0.6
-0.8
-1
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014
time (s)
Figure III.7 : Tracé du signal sinusoïdal envoyé au DAC du codec en utilisant Matlab
30
Chapitre III Application sur le traitement du son
115
110
105
100
magnitude (dB) 95
90
85
80
75
70 1 2 3 4
10 10 10 10
frequency (Hz)
31
Chapitre III Application sur le traitement du son
Figure III.9 : Sortie analogique générée par le programme sine_ intr.c pour différentes
fréquences.
Depuis les formes d’ondes de la figure III.9 et le tableau III.1, on remarque que : les fréquences
inférieures à 4 KHz dans l’entrée donnent les mêmes fréquences dans la sortie, alors que les fréquences
supérieures à 4 KHz dans l’entrée donnent des fréquences quelconques dans la sortie.
Donc le codec est incapable de reconstruire des signaux sinusoïdaux de fréquence supérieurs à
4khz (𝑓e /2).
Ici, on procède comme dans l’exemple III.2.2 mais cette fois avec un signal carré ( fe 8khz ).
32
Chapitre III Application sur le traitement du son
Figure III.10: Forme d'onde de sortie analogique générée en utilisant des échantillons
d'une onde carrée de 1 kHz. 200 ms/div
On remarque ici, que la forme d’onde de sortie n’est pas carrée, mais elle est la somme de deux
sinusoïdes. La fonction d’entrée étant impaire (f(-t)=-f(t)), elle se décompose en une série de
Fourier ne comprenant que des termes en sinus (voir Annexe):
∞
𝑓 𝑡 = 𝑛=1[𝑏𝑛 sin
(𝑛𝜔𝑡)] III.2
La figure III.11 montre une simulation Matlab d’un signal c=a+b telque : a(t)=50*sin(t),
b(t)=25*sin (3*t)
60
40
20
-20
-40
-60
-15 -10 -5 0 5 10 15
Figure III.11: Simulation Matlab d’un signal équivalent à celui de la figure III.10
Dans cet exemple, on reprend les mêmes opérations que dans l’exemple précèdent mais avec une
série d’échantillons de 32 valeurs consécutives de ‘10000’ suivis de 32 valeurs consécutives de
‘-10000’. La figure III.12 illustre le signal obtenu.
33
Chapitre III Application sur le traitement du son
Figure III.12 : Forme d'onde de sortie analogique générée par un signal carré de 64
échantillons (0.008 ms /div)
La sortie analogique illustrant la réponse indicielle montre que cette dernière est oscillatoire, et
présente un amortissement.
Pour avoir l’allure de la réponse impulsionnelle, on procède par envoie d’une série
d’échantillons de 64 valeurs consécutives constituée d’un premier échantillon non-nul de
‘10000’ suivis de 63 valeurs consécutives nulles. La figure III.13 illustre le signal obtenu.
L’impulsion est la dérivée dans le temps de l’échelon, donc la réponse impulsionnelle du DAC
sera oscillatoire amortie à zéro. Les max (peaks) de la réponse indicielle correspondent au
passage par zéro de la réponse impulsionnelle. La forme d’onde de sortie contient les
composants de la fréquence de 125Hz jusqu’à un maximum de 4khz. Les composants de hautes
fréquences qui peuvent rendre les bords plus lisses sont manquants. Pour illustrer cela, le tracé de
la FFT depuis un oscilloscope moderne est montré sur la figure III.14
34
Chapitre III Application sur le traitement du son
Figure III.14 : Amplitudes des composantes de fréquence présentes dans la forme d'onde
analogique générée à partir d’une entrée carrée.
Ici, on connecte à l’entrée ‘LINE IN’ de la carte, un signal carré d’amplitude env. 0.3v et de
fréquence 200Hz, issu d’un générateur de signaux. La figure III.16 montre la réponse obtenue.
LINE IN
Générateur de
signaux
ADC
Bouclage
DAC
HP OUT
oscilloscope
Figure III.16 : Forme d'onde de sortie analogique générée obtenu à partir d’un générateur
de signaux plus le signal carrée de générateur
35
Chapitre III Application sur le traitement du son
La figures III.16 montre les séquences PRBS et les réponses correspondantes pour les fréquences
8Khz et 48Khz.
Figure III.18 : Réponse fréquencielle du filtre de reconstruction DAC WM8731 pour une
séquence PRBS pour fe=8Khz zt fe=48Khz
36
Chapitre III Application sur le traitement du son
III.4.Le filtrage
III.4.1.Le filtre à moyenne mobile
Ce filtre est largement utilisé dans DSP et, sans doute, est l'un des plus faciles de tous les filtres
numériques à comprendre. Il est particulièrement utile pour supprimer le bruit aléatoire (haute
fréquence) d’un signal.
Le filtre de moyenne mobile opère en prenant la moyenne arithmétique des valeurs d'un certain
nombre d'échantillons d'entrée passés, afin de calculer chaque échantillon de sortie, cela peut être
représenté par l'équation :
1 𝑁=1
𝑦 𝑛 =𝑁 𝑖=0 𝑥(𝑛 − 𝑖) III.3
LINE IN
PRBS
Filtre à
Moyenne
Mobile
DAC
HP OUT
Oscilloscope/
GoldWave sur PC
37
Chapitre III Application sur le traitement du son
Figure III.20 : l’environnement GoldWave utilisé pour l’analyse spectrale des signaux sur un PC.
Figure III.21 : filtre à moyenne mobile de 5 coefficients, en haut : La réponse fréquentielle d’un
en utilisant Matlab, en bas : La réponse fréquentielle de l’amplitude du filtre en utilisant la carte
FM4 et GoldWave sur un PC
38
Chapitre III Application sur le traitement du son
On utilise pour la conception, l’outil Matlab ‘fdatool’ illustré dans la figure III.23 avec fe =8khz
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
1 1.5 2 2.5 3 3.5 4 4.5 5
39
Chapitre III Application sur le traitement du son
III.4.2.2.Filtre passe-bande
On utilise pour la conception, l’outil Matlab ‘fdatool’ avec une fenêtre de Kaiser fc1= 1500,
fc2=2000Hz et fe =8khz
n=40 h= [ 0.0150 -0.0098 -0.0119 0.0014 -0.0000 -0.0016 0.0156 0.0147 -0.0260
-0.0393 0.0222 0.0672 -0.0000 -0.0868 -0.0373 0.0877 0.0794 -0.0654 -0.1125
0.0242 0.1250 0.0242 -0.1125 -0.0654 0.0794 0.0877 -0.0373 -0.0868 -0.0000
0.0672 0.0222 -0.0393 -0.0260 0.0147 0.0156 -0.0016
-0.0000 0.0014 -0.0119 -0.0098 0.0150 ]
40
Chapitre III Application sur le traitement du son
0.15
0.1
0.05
-0.05
-0.1
-0.15
-0.2
0 5 10 15 20 25 30 35 40 45
Figure III.25 : filtre FIR passe bande à 40 coefficients, en haut : La réponse impulsionnelle, en
milieu : la réponse fréquentielle en utilisant Matlab-Fdatool, en bas : La réponse fréquentielle de
l’amplitude du filtre en utilisant la carte FM4 et GoldWave sur un PC (fenêtre de Kaiser)
41
Chapitre III Application sur le traitement du son
III.5.conclusion
L’expérience menée durant ce chapitre nous a permis d’acquérir plusieurs concepts relatifs à la
programmation C et au traitement du signal, où on a appliqué le traitement du son en temps réel
sur un processeur DSP de type ARM Cortex M4, en utilisant un filtre à réponse impulsionnelle
finie (FIR) tout en montrant pratiquement les notions théoriques de : théorème de Shannon,
l’échantillonnage, le repliement du spectre, analyse spectrale et le filtre à réponse impulsionnelle
finie (FIR). Les résultats obtenus en pratique étaient très proche de ceux obtenus en théorie.
42
Conclusion générale
Conclusion générale
Conclusion générale
Etant donné l’explosion des données digitale dans le monde d’aujourd’hui, l’utilisation des
processeurs DSP est devenue crucial. La plupart des kits de développement disponibles sur le
marché présentent un coût élevé. Pour implémenter quelques algorithmes DSP en temps réel
pour le traitement du son, la carte Cypress FM4 (FM4-176L-S6E2CC-ETH Starter Kit) low
cost basé un microcontrôleur 32 bits de type ARM Cortex M4 était utilisée comme Hardware
et l’environnement keil µVision était utilisé pour la développement Software.
Comme travail future, on peut envisager d’implémenter des techniques de filtrage plus
avancées ou utiliser des librairies plus optimisées pour le traitement du signal comme CMSIS-
DSP d’ARM.
43
Bibliographies
[2] : http://perso.univ-lemans.fr/~nerrien/Phy308aA_5_C1.pdf
[3] : http://www.prima.imag.fr/jlc/Courses/1999/ENSI2.TS/ENSI2.TS.S11.pdf
[5] : https://www.emse.fr/~dutertre/documents/cours_convertisseurs.pdf
[6] : http://www.orfony.fr/bdtech/DSP.html
[7] : https://fr.wikipedia.org/wiki/Processeur_de_signal_num%C3%A9rique
[8] : https://fr.wikipedia.org/wiki/Architecture_ARM
[9] : https://fr.wikipedia.org/wiki/ARM_Cortex-M
[10]: https://developer.arm.com/products/processors/cortex-m/cortex-m4
[11]: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
[12]: http://www.cypress.com/documentation/development-kitsboards/sk-fm4-
176l-s6e2cc-fm4-family-quick-start-guide
[13]: https://www.rockbox.org/wiki/pub/Main/DataSheets/WM8731_8731L.pdf
[14]: http://i2c.info/
[15]: https://www.silvaco.com/products/IP/i2s-audio-interface/index.html
[16]: https://www.brown.edu/Departments/Engineering/
Courses/En164/EWARM_UserGuide.ENU.pdf
[17]: http://www.linfo.org/gcc.html
[18]: http://www2.keil.com/mdk5/uvision/
[19]: Reay, D. S. (2016). Digital signal processing using the ARM® cortex®-M4. Wiley. DOI:
10.1002/9781119078227
44
[20]: https://www.silicium628.fr/cours/serie_fourier/page3.php
[21]: www.arm.com
[22] : www.cypress.com
Annexe
Transformer de Fourier d’un signal carrée
Soit la fonction périodique « rectangulaire » (dite aussi « signal carré ») représentée sur la figure
suivante :
Cette fonction étant impaire (f(-t)=-f(t)), elle se décompose en une série de Fourier ne comprenant
que des termes en sinus:
∞
45
0 ⁄2 𝑇
2 1 −1
𝑏𝑛 = ([ cos(𝑛𝜔𝑡)] + [ cos(𝑛𝜔𝑡)] )
𝑇 𝑛𝜔 −𝑇⁄2 𝑛𝜔 0
2 1 1 1 1
= ([ cos(0) − cos(−𝑛𝜋)] − [ cos(−𝑛𝜋) − cos(0)])
𝑇 𝑛𝜔 𝑛𝜔 𝑛𝜔 𝑛𝜔
Le résultat diffère selon que n est pair ou impair :
𝑛𝑝𝑎𝑖𝑟 ⇒ cos(𝑛𝜋) = 0
En effet :{
𝑛𝑖𝑚𝑝𝑎𝑖𝑟 ⇒ cos(𝑛𝜋) = 1
Cas n pair
(𝑛 = 2𝑘; 𝑘 ∈ 𝑁)
2 1 1 1 1
𝑏2𝑘 = ([ cos(0) − cos(−2𝑘𝜋)] − [ cos(−2𝑘𝜋) − cos(0)])
𝑇 2𝑘𝜔 2𝑘𝜔 2𝑘𝜔 2𝑘𝜔
𝑏2𝑘 =0
Donc il n’y a pas d’harmoniques de rang pair pour cette fonction carrée.
Cas n impair
(n=2k+1)
2 1 1 1 1
𝑏𝑛 = ([ (1) − (−1)] − [ (−1) − (1)])
𝑇 𝑛𝜔 𝑛𝜔 𝑛𝜔 𝑛𝜔
2 2 2
=𝑇 (𝑛𝜔 + 𝑛𝜔)
4 1
=𝜋∗𝑛
2𝜋
Puisque 𝜔=2𝜋𝑓 = 𝑇
donc 𝜔𝑇=2𝜋
Avec n=2k+1 ; k∈ 𝑁
4 1 1 1
𝑓(𝑡) = (sin(𝜔𝑡) + sin(3𝜔𝑡) + sin(5𝜔𝑡) + sin(7𝜔𝑡) + … …)
𝜋 3 5 7
4
Le facteur 𝜋 montre que l'amplitude de la fréquence fondamentale est un peu supérieure à celle de la
fonction carrée obtenue.
Nous retrouvons bien les amplitudes en 1⁄𝑛 et les harmoniques de rang n impairs uniquement, comme
nous l'avions proposé lors de l'approche graphique.
Voici d'ailleurs cette synthèse graphique à laquelle j'ai rajouté une sinusoïde d'amplitude 4⁄𝜋 qui
vient en effet tangenter le signal carré (elle ne figure bien sûr pas dans la somme).
46
Figure 2 : Signal carrée appris la transformer de Fourier
47
Résumé
Dans ce travail nous avons implémenté quelques algorithmes DSP en temps réel sur un
microcontrôleur 32 bits de type ARM Cortex M4pour application de traitement du son.
La carte Cypress FM4 (FM4-176L-S6E2CC-ETH Starter Kit) était utilisée comme Hardware
et l’environnement, keil µVision pour la programmation.
Abstract
In this work we implements some algorithm DSP real-time on a microcontroller 32 bit type
ARM Cortex M4 for application of treatment sound.
The board Cypress FM4 (FM4-176L-S6E2CC-ETH Starter Kit) was used as hardware and the
environment, keil µVision for programing.
Serveral concepts have been show in pratique, in particular the notions of sampling, the
folding of the spectruem and spectral analysis. To conclude, some type of finite impulse
response filters (FIR) were implemented. Results obtained in pratique were very close to
those obtained in theory
48