Tp theorie du signal l3 -Traitement de signal - Télécharger

Tp theorie du signal l3 -Traitement de signal  - Télécharger

Tp theorie du signal l3 -Traitement de signal - Télécharger

Télécharger PDF

Théorie du signal : TP Initiation à MATLAB/SIMULINK et Étude des signaux

Ce document est un guide pour des travaux pratiques (TP) visant à explorer les fondamentaux de la théorie du signal à travers des outils de simulation et d'analyse comme MATLAB et SIMULINK. Il aborde l'initiation à la programmation et aux calculs numériques, ainsi que l'étude des processus de numérisation et l'analyse spectrale des signaux.

Sujet 1 : Initiation à MATLAB / SIMULINK

1. Introduction à MATLAB

MATLAB (Matrix Laboratory) est un environnement de développement numérique et un langage de programmation de haut niveau. Il est largement utilisé pour le calcul scientifique, l'analyse de données, la visualisation et la programmation dans divers domaines de l'ingénierie et de la science.

1.1 La fenêtre de commande

Après avoir lancé MATLAB et configuré le dossier courant (current folder) au dossier Signal\TP1 que vous aurez créé, positionnez-vous dans la fenêtre de commande. Le prompt (>>) vous indique que vous pouvez exécuter une commande :

>> M = 16
>> q = 2 ;
>> b = log(M)/log(q) ;
>> b
>> disp(b)
>> a = 2
>> s = sqrt(a) ;
>> fprintf('La racine carrée de %1.2f : %1.8f\n',a,s)
>> % ceci est un commentaire
>> cos(pi/4)
>> ans
>> Pi = 14.3 ;
>> sin(Pi)
>> % ah bon ?
>> sin(pi)
>> % ok...
>> x = [1 :4]
>> y = [1 :4]
>> % produit composante par composante
>> x.*y
>> y’
>> % produit matriciel ligne x et colonne y’
>> x*y’

Exercice : Concluez sur l’intérêt du ";", et sur la sensibilité à la casse des variables dans MATLAB.

Pour obtenir de l’aide sur une fonction, par exemple unefonction, vous pouvez (et devez !) entrer dans la fenêtre de commande :

>> help unefonction

1.2 Tracer des courbes

La fonction MATLAB plot permet de tracer des courbes du type y = f(x) sur un intervalle I. L’élément de départ (l’argument de la fonction plot) est un vecteur y de taille N contenant les différentes valeurs y(x). La commande plot(y) tracera la courbe reliant les points de coordonnées (i,yi) où i parcourt 1...N. On peut spécifier la variable x en définissant un vecteur x de même taille que le vecteur y. La commande plot(x,y) tracera la courbe reliant les points de coordonnées (xi,yi) où i parcourt 1...N. Cela permettra d’avoir une représentation graphique de la fonction y = f(x) sur l’intervalle [x1, xN].

>> % création d’un vecteur
>> % représentant l’intervalle [0, 2]
>> % avec un pas de 0.01
>> x = [0 :0.01 :2] ;
>> f0 = 4 ;
>> plot(x, cos(2*pi*f0*x))

1.3 Un premier script

Deux types de fichiers portent l’extension .m dans MATLAB : les scripts et les fonctions.

Les scripts permettent d’exécuter séquentiellement une suite de commandes. Créez le script script1.m suivant :

% fichier script1.m
N = 5 ;
K = 1 :N ;
f = 1 ;
% le mot réservé for permet à
% la variable k de parcourir le vecteur K
for k=K
f = f*k ;
end
% end du for
disp(f)

Exercice : Quel est le calcul effectué par le script ?

Le script est exécuté depuis la fenêtre de commande :

>> script1

1.4 Les fonctions

Une fonction mafonction sera définie dans le fichier mafonction.m dont la première ligne contiendra nécessairement le mot réservé function et permettra de définir le nombre d’arguments (les entrées) de la fonction.

Exemple de fichier mafonction.m :

% fichier mafonction.m
function res = mafonction( arg1, arg2)
%
% calcul de res en fonction des arguments
% arg1 arg2.
% res = sqrt(arg1^2+arg2^2) ;

On pourra tester la fonction depuis la fenêtre de commande :

>> a=3,b=4 ;
>> c = mafonction(a,b)

Exercice : Réalisez une fonction factorielle que vous pourrez, depuis la fenêtre de commande, utiliser de la manière suivante :

>> factorielle(4)
>> k = 6 ;
>> x = factorielle(k) ;

Exemple de fichier factorielle.m :

% fichier factorielle.m
function f = factorielle(N)
if N<=1
f = 1 ;
else
f = N * factorielle(N-1) ;
end

On observe que toutes les variables définies et utilisées dans la fonction sont locales : il n’est pas possible d’y faire référence en dehors de la fonction.

1.5 La FFT

La transformée de Fourier, telle que définie par l'intégrale continue (pour un signal analogique à puissance ou énergie finie) :

X(f) = ∫R x(t)· e^(-2jπft) dt

est calculée numériquement. Dans MATLAB, un signal x(t) est représenté par la variable x, un vecteur de taille N. L’outil utilisé pour étudier ce dernier dans le domaine fréquentiel est la TFD (Transformée de Fourier Discrète) X(k), k ∈ [1...N], définie pour un signal numérique x(n), n ∈ [1...N] par :

X(k) = Σn=1 à N x(n)· e^(-2jπkn/N)

Si la suite x(nTe) est le signal x(t) échantillonné à la fréquence fe = 1/Te (le théorème de Nyquist-Shannon impose fe/2 > fmax pour un signal x(t) à bande limitée), alors on a X(k), la TFD de x(nTe), qui s'approxime par :

X(k) = Σn=1 à N x(nTe)· e^(-2jπkn/N) ≈ (1/Te) ∫0 à NTe x(t)· e^(-2jπk/fe N t) dt (1.1)

L’approximation (1.1) montre que le coefficient k de la TFD de x(nTe) est la transformée de Fourier du signal x(t) à :

  • la fréquence k fe/N pour k < N/2;
  • la fréquence fe/2 − k fe/N pour k ≥ N/2.

La fonction MATLAB fft permet de calculer la DFT d’un signal représenté par un vecteur x de taille N. Le résultat est un vecteur, dont la k-ième composante (k ≤ N/2) est une estimation de la transformée de Fourier de x(t) à la fréquence k fe si la n-ième composante du vecteur x représente x(nTe).

Exercice : Créez le script calcul_dft.m permettant de représenter le spectre du signal x(t) = A1 cos(2πf1t) + A2 cos(2πf2t).

% fichier calcul_dft.m
fe = 44000 ; % fréquence d'échantillonnage
% observation sur 3s,
% donc sur N échantillons
N = 3*fe ;
% création du vecteur temps
t = [1 :N]/fe ;
% création du signal x
f1 = 1000, f2 = 3000 ;
A1 = 2, A2 = 0.5 ;
x = A1*cos(2*pi*f1*t)+ A2*cos(2*pi*f2*t) ;
% calcul de la DFT de x
X = fft(x) ;
% création du vecteur
% fréquence
f = [1 :N]/N*fe ;
plot(f, abs(X))

Exercice : Expliquez l’utilité de la fonction abs.

Exercice : Interprétez le résultat de l’exécution du script calcul_dft.m. Modifiez la fréquence f1 = 26000Hz.

Exercice : Quel problème apparaît ? Quelle solution simple proposez-vous pour le résoudre ?

2. Utilisation de SIMULINK

SIMULINK est un environnement de programmation graphique pour la modélisation, la simulation et l'analyse de systèmes dynamiques multi-domaine. Il est intégré à MATLAB et permet de concevoir des systèmes par glisser-déposer de blocs graphiques.

Sujet 2 : Les signaux

1. Numérisation (SIMULINK)

La numérisation d'un signal analogique implique deux étapes principales : l'échantillonnage, qui discrétise le signal dans le temps, et la quantification, qui discrétise son amplitude.

1.1 Échantillonneur

Créez un modèle SIMULINK (ech_bloq.mdl) permettant d’étudier l’échantillonnage-bloqueur d’un signal sinusoïdal.

Le modèle SIMULINK typique implique des blocs tels que :

  • Sine wave : Générateur de signal sinusoïdal.
  • Zero-order hold : Bloqueur d'ordre zéro, simulant l'échantillonnage et le maintien de la valeur.
  • Mux : Multiplexeur pour combiner les signaux à visualiser.
  • Scope : Oscilloscope pour visualiser les signaux.

Les paramètres des différents blocs du modèle SIMULINK seront indiqués par des variables :

  • Pour le bloc Sine Wave : la fréquence f0 de la source sinusoïdale (le paramètre Frequency sera réglé à 2*pi*f0).
  • Pour le bloc Zero-order hold : la fréquence d’échantillonnage fe (le temps d’échantillonnage de l’échantillonneur-bloqueur sera 1/fe).

On prendra un temps de simulation de 10 s. Dans le volet Solver des paramètres du modèle, on choisira ode45 de type à pas variables. On indiquera dans la fenêtre de commande de MATLAB les valeurs suivantes :

>> f0 = 1 ;
>> fe = 20 ;

Exercice : Le théorème de Shannon est-il respecté dans cet exemple ?

Le bloc Analog filter design permet de modéliser un filtre analogique. On souhaite, à l’aide d’un filtre passe-bas, retrouver à partir du signal échantillonné le signal original.

Exercice : Quelle devra être sa fréquence de coupure ? Expérimentez pour f0 = 1Hz et fe = 20Hz, puis fe = 3Hz.

Exercice : En choisissant fe, illustrez le phénomène de repliement spectral.

Exemple de fichier init_quant_mdl.m pour l'initialisation des paramètres :

% fichier init_quant_mdl.m
% sinusoide
f0 = 1.7 ;
A0 = 1.5 ;
phi0 = 0 ;
% bruit à bande limitée
Bwn = 10.5 ;
Vwn = 1 ;
% dent de scie
f1 = 1.3 ;
A1 = 1 ;
% ech-bloq
fe = 15 ;
% quantificateur
Aq = 2 ;
b = 4 ;
q = 2*Aq/2^b ;

1.2 Quantificateur

La quantification est l'étape où l'amplitude du signal échantillonné est discrétisée en un nombre fini de niveaux. Le modèle SIMULINK permettant d’étudier la quantification doit être configuré (par exemple, à l'aide d'un fichier de configuration).

Exercice : Quelle mesure est-elle affichée par le bloc Display1 ? Expliquez le calcul.

Exercice : Comparez le résultat obtenu avec la théorie pour les différents signaux. Appliquez pour b = 4, b = 3, b = 8.

Exercice : Que mesure le bloc Ddp eq ? Que conclure de la mesure effectuée ?

2. Études à l’analyseur de spectre

L’analyseur de spectre est un instrument essentiel pour l'étude des signaux dans le domaine fréquentiel. Il permet de mesurer la densité spectrale de puissance (DSP) d’un signal. On l'utilise notamment pour :

  • mesurer le taux de distorsion harmonique d’un signal sinusoïdal,
  • mesurer la DSP d’un signal carré.

2.1 Principe de fonctionnement de l’analyseur de spectre

L’analyseur de spectre est un appareil permettant de mesurer Sx(f), la DSP d’un signal x(t).

Balayage en fréquence

Le principe de fonctionnement simplifié est le suivant :

  • La largeur B du filtre d’analyse (un filtre passe-bande) est définie. Plus B est faible, meilleure sera la résolution fréquentielle.
  • Le filtre d’analyse a une fréquence centrale fA qui variera dans une plage de fréquence appelée le span : [fmin, fmax].
  • La puissance du signal en sortie du filtre permet de mesurer la DSP Sx(f) du signal x(t) : Sx(fA) ≈ P(fA)/B.

Le fonctionnement réel permet de pallier la difficulté de créer un filtre passe-bande sélectif à fréquence centrale variable. Le filtre d’analyse est centré en fI, la fréquence intermédiaire, et le spectre du signal est translaté par multiplication d’une porteuse de fréquence fA − fI. Ce principe est l’hétérodynage.

Lien entre les paramètres d’analyse

Le temps de balayage T est celui nécessaire à l’analyse du spectre sur la bande de fréquence étudiée (le span). On notera le span D = fmax − fmin. La largeur B du filtre d’analyse implique un temps d’analyse inversement proportionnel à cette dernière. Par ailleurs, T est proportionnel au rapport entre le span D et la largeur de la fenêtre d’analyse B : T ≥ kD/B^2.

Dans l’utilisation que nous ferons par la suite de l’analyseur de spectre, nous laisserons à ce dernier le soin de définir au mieux les paramètres B et T (mode automatique, utilisé par défaut).

2.2 Manipulation de l’AS

On commencera par une réinitialisation par l’utilisation de la touche RESET. Les marqueurs affichent des informations comme MKR f=205kHz -15.5dBm REF=0dBm 10dB/div.

Réglages

Les menus FREQUENCY et SPAN permettent de régler les paramètres liés à l’axe des abscisses : fmin, fmax et D = fmax − fmin, réglables grâce aux valeurs FMIN et FMAX ou FCENTER et SPAN. Le menu AMPLITUDE permettra notamment de choisir entre une échelle logarithmique (mesures en dBm) et une échelle linéaire (mesures en mV).

On rappelle ici que l’expression d’une puissance se fait sur une échelle logarithmique en dBm :

(P)dBm = 10log(P / 1mW)

Mesures

Les spectres observés seront généralement constitués de raies spectrales. Un curseur (MKR) permettra de mesurer la puissance d’une raie en dBm (ou son amplitude en mV si le choix d’une échelle linéaire est fait) ainsi que sa fréquence. La navigation se fera facilement grâce au menu PEAK.

Ce qui est susceptible de nous intéresser est le rapport de puissance entre les différentes raies (par exemple entre la fondamentale à f0 et l’harmonique de rang n à n f0) :

∆n = 10log(P1 / Pn) = (P1)dBm − (Pn)dBm

Il est important de noter que ∆n s’exprime en dB (il s’agit d’un rapport de puissance). Par ailleurs, la raie spectrale à f = 0Hz (la composante continue) ne pourra pas être mesurée à l’analyseur de spectre (malgré sa présence manifeste à l’écran).

2.3 Mesure de la distorsion harmonique

La distorsion harmonique rend compte de la présence d’harmoniques indésirables dans le spectre d’un signal sinusoïdal. C'est une mesure de la déformation d'un signal idéal.

Définition

Un signal sinusoïdal idéal x(t) = Acos(2πf0t + φ) de fréquence f0 s’écrit x(t) = c−1e^(-2jπf0t) + c1e^(2jπf0t). Les coefficients de Fourier vérifient c−1 = c1. On a c1 = (A/2)ejφ.

La transformée de Fourier est X(f) = c−1δ(f + f0) + c1δ(f − f0) et la DSP s’écrit Sx(f) = |c−1|^2δ(f + f0) + |c1|^2δ(f − f0).

L’observation du spectre d’un signal sinusoïdal en sortie d’un Générateur de Fonctions (GBF) nous fait remarquer la présence d’harmoniques indésirables, dont la DSP s'écrit :

Sx(f) = Σn∈Z |cn|^2δ(f − n f0)

On rappelle ici l’égalité de Parseval :

P = ∫R Sx(f)df = Σn∈Z |cn|^2 = 2|c1|^2 + 2Σn≥2 |cn|^2

Le terme PHD = 2Σn≥2|cn|^2 est la puissance totale des composantes contribuant à la distorsion harmonique. Le rapport entre cette dernière et la puissance totale du signal (P) permet de définir le taux de distorsion harmonique (THD, Total Harmonic Distortion).

THD = √(PHD / P) = √( (Σn≥2|cn|^2) / (Σn≥1|cn|^2) ) = √( (Σn≥2|cn|^2) / (|c1|^2 + Σn≥2|cn|^2) )

Une autre formulation du THD en fonction des rapports de puissance ∆n (où P1 est la puissance fondamentale et Pn la puissance de l'harmonique de rang n) est :

THD = √ ( 1 / (1 + Σn≥2 10^(-∆n/10) ) )

Le coefficient ∆n exprime le rapport en dB entre la composante fondamentale et l’harmonique de rang n :

∆n = 10log(P1 / Pn) = (P1)dBm − (Pn)dBm

Le détail du calcul se trouve en section 1 de l’annexe 1.

Mesures à l’analyseur de spectre

Le signal en entrée est un signal sinusoïdal :

  • d’amplitude crête-crête Vcc = 500mV (L’amplitude crête-crête Vcc est double, donc l'amplitude V0 du signal est 250mV);
  • de fréquence f0 = 100 kHz.

Les réglages seront assistés d’une observation à l’oscilloscope. L’observation du spectre à l’analyseur de spectre exigera un certain nombre de paramétrages (principalement la plage de fréquences de l’analyse, le span, dont le réglage est décrit à la partie 2.2). Pour mesurer la distorsion harmonique, on ne tiendra compte que des raies spectrales présentes aux multiples de la fréquence fondamentale et dont l’amplitude est supérieure au plancher de bruit (par exemple, un plancher de bruit visible à −60 dBm).

L'écart ∆n entre la fondamentale et l'harmonique de rang n est un indicateur clé pour le calcul du THD.

Exercice : Calculer le taux de distorsion harmonique (THD) du signal observé.

2.4 Étude du spectre d’un signal carré

En début d’exercice, un rapport cyclique r sera assigné au signal carré.

Densité spectrale de puissance

Le signal carré de rapport cyclique r est un signal T-périodique décrit sur l'intervalle [−T/2, T/2] par :

x(t) = A si −rT/2 ≤ t ≤ rT/2 ; 0 sinon.

Mesures à l’oscilloscope

Le signal en entrée est un signal carré :

  • d’amplitude A0 = 1V;
  • de fréquence f0 = 100 kHz;
  • de rapport cyclique r.

Les réglages seront assistés d’une observation à l’oscilloscope.

Exercice : Mesurer et comparer aux résultats théoriques :

  • a) la moyenne du signal;
  • b) la valeur efficace.

Différentes définitions ainsi que le détail des calculs sont rappelés en section 2.1 de l’annexe 1.

Mesures à l’analyseur de spectre

La plage de fréquence d’observation devra être judicieusement choisie.

Exercice : Mesurer et comparer aux résultats théoriques les rapports de puissance ∆n entre la composante fondamentale et l’harmonique de rang n, pour n = 1...7 (rappelés en section 2.2 de l’annexe 1).

Annexe 1 : Résultats théoriques

1. Calcul du taux de distorsion harmonique

On rappelle ici l’égalité de Parseval :

P = ∫R Sx(f)df = Σn∈Z |cn|^2 = 2|c1|^2 + 2Σn≥2 |cn|^2

Le terme 2Σn≥2|cn|^2 est la puissance totale des composantes contribuant à la distorsion harmonique. Le rapport entre cette dernière et la puissance totale du signal (P) permet de définir le taux de distorsion harmonique (THD, Total Harmonic Distortion).

THD = √( (2Σn≥2|cn|^2) / P ) = √( (Σn≥2|cn|^2) / (Σn≥1|cn|^2) )

= √( (Σn≥2|cn|^2) / (|c1|^2 + Σn≥2|cn|^2) ) = √( 1 - ( |c1|^2 / (|c1|^2 + Σn≥2|cn|^2) ) )

Une forme simplifiée utilisant les rapports ∆n est :

THD = √ ( 1 / (1 + Σn≥2 10^(-∆n/10) ) )

Le coefficient ∆n exprime le rapport entre la composante fondamentale et l’harmonique de rang n :

∆n = 10log(P1 / Pn) = (P1)dBm − (Pn)dBm

La symétrie hermitienne (c−n = cn, pour un signal réel) justifie que l’étude du spectre ne se fait que pour les fréquences positives.

2. Signal carré

Le signal carré de rapport cyclique r est un signal T-périodique décrit sur l'intervalle [−T/2, T/2] par :

x(t) = A si −rT/2 ≤ t ≤ rT/2 ; 0 sinon.

2.1 Valeur moyenne, valeur efficace

Définitions

La valeur moyenne d’un signal T-périodique est :

µ = (1/T) ∫[T] x(t)dt

La puissance est la moyenne de la puissance instantanée |x(t)|^2 :

P = (1/T) ∫[T] |x(t)|^2dt

On note que P est homogène à |x(t)|^2. Si le signal observé décrit une variation de tension électrique, il faudra tenir compte d’une impédance pour obtenir une puissance P en W. Pour cette raison, on préfère considérer la valeur efficace √P, homogène à x(t).

Signal carré

Pour un signal carré, on obtient :

Valeur moyenne : µ = (1/T) ∫[-rT/2 à rT/2] A dt = rA

Puissance : P = (1/T) ∫[-rT/2 à rT/2] A^2 dt = rA^2

2.2 Densité spectrale de puissance

Série de Fourier

Un signal T-périodique s’écrit comme une série de Fourier. On note f0 = 1/T la fréquence fondamentale :

x(t) = Σn∈Z cn * e^(2jπn f0t)

Les coefficients de Fourier cn sont :

cn = (1/T) ∫[T] x(t)· e^(-2jπn f0t)dt = (1/T) XT(n f0)

Dans cette formule, xT(t) est le signal x(t) restreint à une période de durée T : xT(t) = x(t)· 1[T].

La densité spectrale de puissance (DSP) d’un signal T-périodique s’écrit :

Sx(f) = Σn∈Z |cn|^2 δ(f − n f0)

Note : Formellement, la DSP d’un signal est la transformée de Fourier de l’autocorrélation.

Signal carré

Dans le cas particulier du signal carré de rapport cyclique r, on a :

xT(t) = A si −rT/2 ≤ t ≤ rT/2 ; 0 sinon.

La transformée de Fourier de xT(t) est :

XT(f) = ∫R xT(t)· e^(-2jπft) dt = A ∫[-rT/2 à rT/2] e^(-2jπft) dt

= A / (-2jπf) [e^(-2jπft)]_(-rT/2)^(rT/2) = A / (-2jπf) (e^(-jπfrT) − e^(jπfrT))

= A / (πf) sin(πfrT) = ArT * sinc(r f T)

D'où les coefficients cn :

(1/T) XT(n f0) = Ar * sinc(r n)

Les rapports de puissance entre la fondamentale (n=1) et les harmoniques (n) sont donnés par :

|cn|^2 / |c1|^2 = sinc^2(nr) / sinc^2(r)

Et en termes de ∆n (en dB) :

∆n = 20log | (sinc(r)) / (sinc(nr)) | = 20log | (n sin(πr)) / sin(nπr) |

FAQ - Questions Fréquemment Posées

Qu'est-ce que la Transformée de Fourier Rapide (FFT) et à quoi sert-elle ?

La Transformée de Fourier Rapide (FFT) est un algorithme optimisé pour calculer la Transformée de Fourier Discrète (TFD) d'un signal. Elle permet de décomposer un signal du domaine temporel en ses composantes fréquentielles (son spectre). C'est un outil fondamental en traitement du signal pour l'analyse spectrale, le filtrage et la compression de données, très utilisé dans MATLAB.

Quel est le principe de l'échantillonnage et pourquoi le théorème de Nyquist-Shannon est-il crucial ?

L'échantillonnage consiste à convertir un signal analogique continu en une séquence de valeurs discrètes prises à intervalles réguliers. Le théorème de Nyquist-Shannon stipule que pour reconstruire fidèlement un signal analogique à partir de ses échantillons, la fréquence d'échantillonnage (fe) doit être au moins le double de la fréquence maximale (fmax) contenue dans le signal. Si cette condition n'est pas respectée, un phénomène appelé repliement spectral (aliasing) se produit, où les fréquences élevées du signal original sont incorrectement interprétées comme des fréquences plus basses.

Comment l'analyseur de spectre aide-t-il à évaluer la qualité d'un signal ?

L'analyseur de spectre est un instrument qui affiche l'amplitude d'un signal en fonction de sa fréquence. Il est essentiel pour évaluer la qualité d'un signal en permettant de visualiser sa composition spectrale, d'identifier les fréquences indésirables (harmoniques, bruit, interférences) et de mesurer des paramètres comme le taux de distorsion harmonique (THD). Un signal "pur" (par exemple, une sinusoïde parfaite) ne devrait afficher qu'une seule raie spectrale à sa fréquence fondamentale ; la présence d'autres raies indique une distorsion ou du bruit, affectant la fidélité du signal.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne