cours Traitement de Signal Numérique - Freescan78.free.fr/Elektor/Elektor 1998...

4
Elektor 1/98 Ce cours a pour objectif d'expliquer, à celui qui le suivra assidûment, les prin- cipes de base importants du traitement numérique de signal par le biais d'exemples simples et d'expériences à faire soi-même. Nul n'est besoin de matériel spécifique, un PC standard (il n'est pas nécessaire qu'il soit un foudre de vitesse) et une carte-son, il n'en faut pas plus. On pourra suivre ce cours à plusieurs niveaux. La solution la plus simple consiste à procéder aux expériences telles qu'elles sont proposées sans cher- cher à comprendre le fin mot des prin- cipes. L'option suivante consiste à pro- céder, en s'aidant des programmes pro- posés, à ses propres expérimentations. Le cours en fournit les moyens. Le degré de « sagesse » suivant sera atteint par le lecteur qui essaiera, en s'aidant des codes-source des programmes et des explications fournies, de com- prendre le fonctionnement des pro- grammes. Il pourra à partir de là écrire ses propres programmes de traitement de signal et réaliser ses propres pré- sentations. La dernière étape pourrait consister à tenter de transférer les pro- cessus et programmes décrits ici vers un « vrai » processeur de signal. Ceci est réservé aux programmeurs expéri- mentés vu qu'il faut s'attendre à ren- contrer de nombreux problèmes inat- tendus, tels que définition de l'échelle, arithmétique intégrale, initialisation de composants, différents aspects que nous ne pouvons pas intégrer dans le présent cours vu qu'ils ne concernent pas le traitement de signal à propre- ment parler. S'il est dans vos intentions de faire vos premiers pas dans cette direction il vous faudra impérative- L'idée de proposer un cours consacré au « Traitement de Signal Numérique » trottait depuis longtemps dans la tête de l'au- teur. Ce n'est qu'au- jourd'hui que de nom- breux lecteurs d'Elek- tor disposent enfin du matériel nécessaire au suivi avec succès de ce cours, à savoir un PC doté d'une carte-son et d'un (lec- teur de) CD-ROM. 68 Traitement de Signal Numérique 1 ère partie: Présentation et premières expériences Points forts • Exécution immédiate possible de tous les exemples • Nombreux fichiers Wave pour analyse • Bibliothèque de programmes pour de nombreuses applications • Codes-source de tous les pro- grammes présents sur le CD-ROM • Fichiers batch pour expériences com- plexes • Simulation de systèmes de transfert complexes • Se passe de tout matériel (hardware) à réaliser soi-même. cours

Transcript of cours Traitement de Signal Numérique - Freescan78.free.fr/Elektor/Elektor 1998...

Page 1: cours Traitement de Signal Numérique - Freescan78.free.fr/Elektor/Elektor 1998 FR/f981068.pdfElektor 1/98 Ce cours a pour objectif d'expliquer, à celui qui le suivra assidûment,

Elektor 1/98

Ce cours a pour objectif d'expliquer, àcelui qui le suivra assidûment, les prin-cipes de base importants du traitementnumérique de signal par le biaisd'exemples simples et d'expériences àfaire soi-même. Nul n'est besoin dematériel spécifique, un PC standard (iln'est pas nécessaire qu'il soit un foudrede vitesse) et une carte-son, il n'en fautpas plus.On pourra suivre ce cours à plusieursniveaux. La solution la plus simpleconsiste à procéder aux expériencestelles qu'elles sont proposées sans cher-

cher à comprendre le fin mot des prin-cipes. L'option suivante consiste à pro-céder, en s'aidant des programmes pro-posés, à ses propres expérimentations.Le cours en fournit les moyens. Ledegré de « sagesse » suivant sera atteintpar le lecteur qui essaiera, en s'aidantdes codes-source des programmes etdes explications fournies, de com-prendre le fonctionnement des pro-grammes. Il pourra à partir de là écrireses propres programmes de traitementde signal et réaliser ses propres pré-sentations. La dernière étape pourraitconsister à tenter de transférer les pro-cessus et programmes décrits ici versun « vrai » processeur de signal. Ceciest réservé aux programmeurs expéri-mentés vu qu'il faut s'attendre à ren-contrer de nombreux problèmes inat-tendus, tels que définition de l'échelle,arithmétique intégrale, initialisation decomposants, différents aspects quenous ne pouvons pas intégrer dans leprésent cours vu qu'ils ne concernentpas le traitement de signal à propre-ment parler. S'il est dans vos intentionsde faire vos premiers pas dans cettedirection il vous faudra impérative-

L'idée de proposer uncours consacré au

« Traitement de SignalNumérique » trottait

depuis longtempsdans la tête de l'au-teur. Ce n'est qu'au-

jourd'hui que de nom-breux lecteurs d'Elek-tor disposent enfin du

matériel nécessaireau suivi avec succèsde ce cours, à savoir

un PC doté d'unecarte-son et d'un (lec-

teur de) CD-ROM.

68

Traitement deSignal Numérique

1ère partie:Présentation et premières expériences

Points forts

• Exécution immédiate possible de tous

les exemples

• Nombreux fichiers Wave pour analyse

• Bibliothèque de programmes pour de

nombreuses applications

• Codes-source de tous les pro-

grammes présents sur le CD-ROM

• Fichiers batch pour expériences com-

plexes

• Simulation de systèmes de transfert

complexes

• Se passe de tout matériel (hardware)

à réaliser soi-même.

cours

Page 2: cours Traitement de Signal Numérique - Freescan78.free.fr/Elektor/Elektor 1998 FR/f981068.pdfElektor 1/98 Ce cours a pour objectif d'expliquer, à celui qui le suivra assidûment,

ment vous plonger dans de la littéra-ture additionnelle.Le tableau 1 récapitule les thèmes trai-tés dans ce cadre du présent cours.Nombre des processus qui forment letraitement de signal font appel à desconcepts mathématiques que nouscontournerons prudemment pourautant que cela est possible. Dans cer-tains cas il nous faudra faire le grandsaut. S'il devait se faire qu'un para-graphe vous paraisse trop ténébreux,sautez-le et poursuivez le cours sansvous casser la tête pour essayer de lecomprendre !

L E L O G I C I E LProgrammeTout au long de ce cours nous propo-serons et utiliserons de nombreux pro-grammes de traitement de signaux.Tous les programmes nécessaires setrouvent sous la forme de fichiers .EXEsur un CD-ROM pressé spécialementà cette intention (EPS 986004-1) dispo-nible au cours du mois de février 98aux adresses habituelles. Ces pro-grammes permettent à leur utilisateurde procéder à un certain nombred'exercices, de fabriquer et analyser sespropres fichiers. Le tableau 2 en donneune liste exhaustive.

InstallationOn installera le logiciel depuis le CD-ROM en suivant les indications don-nées dans le fichier INSTALL.DOC. Enfait tout ce que cela sous-entend est unerecopie vers un sous-répertoire proprede tous les programmes et de l'adjonc-tion, pour certaines parties du cours,des longs fichiers .WAV lorsque cela estnécessaire. Le CD-ROM comporte éga-lement quelques conseils pour se fami-liariser avec le logiciel, informations quenous ne pouvons pas reproduire ici,pour des raisons de manque d'espacerédactionnel à cet effet.

Codes-sourceLa plupart des programmes sontécrits en TURBO-PASCAL 5.0. Leurcode-source est également donné surle CD-ROM ce qui permettra auxplus entreprenants d'entre nos lec-teurs de les modifier, voire de lesdoter de fonctions additionnelles. Detemps en temps nous verrons, dansle cadre de ce cours, le fonctionne-ment de l'un ou l'autre programmede manière à donner une formeconcrète aux concepts dont il a étéquestion. Lesdits programmes peu-vent, de par l'utilisation d'une biblio-thèque de modules pour traitementde signaux, rester courts et simples,ce qui permettra au lecteur de seconcentrer sur les aspects importantspour la compréhension du processus.

Fichiers d'expérimentationQuelques-unes des expériences consis-

tent à exécuter à la queue leu leu, dansl'ordre indiqué, un certain nombre deprogrammes. On commencera, parexemple, par générer des signaux, quel'on modifiera ensuite (à l'aide filtres)avant de les visualiser. On pourraainsi, par exemple, simuler, à l'aide dufichier SSB EMPFANGER, le compor-tement précis d'un émetteur BLU (SSB= Single Sided Band soit Bande LatéraleUnique). Vu qu'une seule expériencefait souvent appel à toute une ribam-

belle de fichiers (servant entre autresau déroulement du processus, auxdéfinitions des filtres, au paramétragede l'oscilloscope et de l'analyseur despectre), nous avons prévu uneapproche pratique permettant de pilo-ter le tout, à savoir le

SPP, Simple-Pre-ProcessorCe programme SSP permet de décrire,sous forme de fichier, le déroulementcomplet d'une expérience. En principe,

69Elektor 1/98

Les thèmes (prévisionnels) traitésdans le cours3 fichiers Wave 3 signaux échantillonnés3 théorèmes d'échantillonnage 3 repliement (aliasing)3 filtre passe-bas et passe-bande récursif d'échantillonnage3 analyse de filtre avec balayage de fréquence3 réponse impulsionnelle et courbe de réponse de filtres3 générateurs de signal 3 analyseur de spectre3 transformation de Fourier discrète 3 FFT (Fast Fourier Transformation)3 fenêtrage 3 génération d'écho3 filtre FIR 3 modulation de phase3 conception de filtre 3 signaux de bruit3 analyse de filtre avec bruit 3 signaux périodiques3 synthèse de Fourier 3 modulation/démodulation d'amplitude3 modulation de fréquence 3 processus de quadrature3 téléscripteurs, modulation R.D.S.

Programmes du CD-ROM du coursGénérateurs de signal

SIN0 générateur de signaux sinusoïdauxSIN1 générateur de signaux sinusoïdauxPULSE1 générateur d'impulsions uniquesSTEP1 générateur en marches d'escalierNOISE1 générateur de bruit blancFMSWEEP1 générateur de balayageMUSICG1 générateur de gamme

FiltreSINFIL1 filtre passe-bande simpleBANDP1 filtre passe-bande simpleBUTTER1 filtre Butterworth numériqueLP1 passe-bas simpleECHO1 générateur d'échoFIRFIL1 filtre FIR universelSPECFIL1FIR programme de synthèse de filtre

Modulation, démodulation, mathématiquesDWNSMPL1 ÉchantillonnageSUM1 somme pondérée de 2 signauxMUL1 produit de signaux (fonction de mélange, etc.)AMGEN1 modulation d'amplitude, démodulation synchrone, mélangeur)FMGEN1 modulateur de fréquenceSCHMITT1 fonction de trigger de SchmittSHORT1 séparation de parties de signauxRTTYRX1 décodage de données sérielles de téléscripteur

AnalyseursINFO1 informations générales, valeur moyenne, énergie de signauxSCOPE1 oscilloscope multi-canalSPEC1 analyseur de spectre multi-canal

DiversSHELP aide pour les programmes en PASCAL et exécutables (EXE)SPP préprocesseur de fichiers d'expérimentation

Page 3: cours Traitement de Signal Numérique - Freescan78.free.fr/Elektor/Elektor 1998 FR/f981068.pdfElektor 1/98 Ce cours a pour objectif d'expliquer, à celui qui le suivra assidûment,

le SPP ne fait rien de plus que de géné-rer, à partir des instructions que com-porte ledit fichier, un certain nombrede fichiers nécessaires au déroulementde l'expérience. Une seule commandesuffit ainsi à déclencher toute une sériede traitements. Il faudra donc, si l'onveut réaliser l'expérience « décrite »dans le fichier TEST3.SPP, entrer toutsimplement la commandeDO TEST3.SPP <Return>.Pourquoi ne tenteriez vous pas, dèsmaintenant, cette expérience ? Lafigure 1 vous en montre le résultat. Lelancement des autres simulations sefait exactement de la même façon.

Fonction SHELPIl est possible, pour de nombreux pro-grammes, en faisantSHELP Nomdefichier <Return>d'obtenir une liste des paramètres lesplus importants du programme.SHELP SIN1.PAS <Return> ouSHELP SPP.PAS <Return>donne des informations sur, respecti-vement, le générateur sinusoïdal SIN1et le SPP.

M A T É R I A U - S O U R C EOn a besoin, si l'on veut effectuer soi-même les différentes opérations dutraitement de signal, de matériau-source (un signal) sur lequel on pourralancer le traitement. Le CD-ROM pro-

pose une collection importante dematériau-audio permettant d'effecteur,en grandeur nature, toutes les expé-riences. Rien n'interdit non plus detraiter des signaux que l'on aura enre-gistrés soi-même. Tous lesdits signauxsont traités sous la forme de fichiersWave (suffixe .WAV). Dans le présentcours les fichiers Wave (suffixe .WAVtant sous DOS que sous Windows)constituent le maillon central del'échange de données (signaux) entreles programmes et le monde extérieur.L'entête (header) d'un fichier Wavestocke différents paramètres concer-nant les données. Dans notre cas, lamajorité des fichiers Wave travaillentavec les paramètres suivants :

Taux d'échantillonnage 44 100,22 050 ou 11 025 éch/s

Bits/échantillon 16Format non compriméCanaux Mono

ReproductionIl faudra, si l'on veut pouvoir, non passeulement voir les expériences s'affi-cher sous la forme de courbes maisaussi les entendre, disposer d'une pos-sibilité de reproduire les fichiers Wave.Il existe toute une série de pro-grammes pour ce faire, souvent four-nis avec la carte-son lors de l'achat decelle-ci ou sous la forme de Sharewareou de Freeware (CD-ROM ou Inter-net). Il faudra disposer d'un pro-gramme de ce genre tournant sousDOS. Une fois que l'on aura activé ledit programme on pourra essayer dereproduire le fichier SPEECH1.WAVque l'on aura recopié du CD-ROM. On

devrait, si tout se passe bien, entendrede l'anglais accompagné de musique.

EnregistrementSi l'on veut enregistrer ses propressignaux (en provenance, par exemple,d'un récepteur ou de circuits électro-niques) il faudra activer le programmepermettant l'enregistrement de fichiersWave à l'aide de la carte-son. Ce pro-gramme accompagne, en règle géné-rale, la carte-son, voire est à trouver enshareware. Il n'est pas nécessaire, poursuivre ce cours, de disposer d'une pos-sibilité d'enregistrement de données, leCD-ROM mettant à disposition tousles fichiers nécessaires. Il n'est pasmauvais cependant de s'entraîner àl'enregistrement d'un fichier Wave.

P R E M I È R E SE X P É R I E N C E SUn générateur sinusoïdal numériquePrenons le taureau par les cornes et,pour vous donner une idée de l'ap-proche adoptée dans ce cours, com-mençons par un exemple pratique. LeCD-ROM comporte un programmeSIN1.EXE destiné à générer un fichierWave contenant un signal sinusoïdal.Allons-y. Son lancement se fait par :SIN1 <Return>De par le paramétrage par défaut onobtient un signal sinusoïdal de1 000 Hz d'une durée de 2 s(44 100 échantillons à 22 500 éch/s).L'amplitude est de 10 000 (valeur decrête). Le signal est stocké dans unfichier SIN1.WAV. Il est possible main-tenant de « jouer » ce fichier. Ce faisantnous venons de mettre à notre dispo-

70 Elektor 1/98

1

Figure 1. Les signaux pro-duits sont visualisés telsqu'ils apparaîtraient surun oscilloscope.

Page 4: cours Traitement de Signal Numérique - Freescan78.free.fr/Elektor/Elektor 1998 FR/f981068.pdfElektor 1/98 Ce cours a pour objectif d'expliquer, à celui qui le suivra assidûment,

sition un signal sinusoïdal que l'onpourra utiliser à des fins de test dansle cadre d'un laboratoire d'électro-nique. On peut, par modification desparamètres du programme, produired'autres signaux. Si l'on veut, parexemple, disposer d'un signal sinusoï-dal de 500 Hz constitué de100 000 échantillons à un taux d'échan-tillonnage de 11 025 éch/s et ayant uneamplitude de 5 000, il suffit d'appelerle programme de la manière suivante(le stockage des données se fait dans lefichier SIN2.WAV).SIN1 \scale=5000 \ f0=500 \n=100000\fs=11025 \out=sin2.wav <Return>.Essayez de générer plusieurs signauxsinusoïdaux et de les écouter. Nousentrerons plus tard dans le fonction-nement de ce programme.

L A P R E M I È R ET H É O R I ENous allons maintenant nous attaqueraux premiers éléments de théorieconcernant le traitement numériquede signaux. Nous allons nous intéres-ser aux phénomènes prenant place aucours de l'échantillonnage et de laconversion A/N de signaux analo-giques. On connaît, en analogique, des

signaux x normés, une tension aucoeur d'un circuit électronique qui, àchaque instant t, prend une valeurdonnée. La fonction de cette tensionrépond à l'équation x(t) (cf. figure 2).Il faut, pour pouvoir effectuer des opé-rations sur des signaux, procéder à sonéchantillonnage. Pour ce faire ondétermine la valeur du signal à chacundes points d'échantillonnage (tk). À cetendroit le signal possède une valeurx(tk) que nous dénommerons, à partirde maintenant, xk. Normalement, l'in-tervalle séparant 2 valeurs d'échan-tillonnage successives est le même. Onappelle fréquence d'échantillonnage lenombre d'échantillons pris parseconde. Le signal continu dans letemps x(t) est devenu un signal à chro-nologie discrète. La représentationdudit signal est une suite de nombres.Dans la seconde partie de ce coursnous examinerons les conséquences del'échantillonnage et effectuerons nospremiers pas dans le monde des filtresnumériques.

980015-I

71Elektor 1/98

x1

t1 t2 t3 tn

x

x2

x3

xn

x

t

t

x(t)

980015 - 12

2

Figure 2. Échantillon-nage d'un signal ana-logique.