La modulation de fréquence est une technique permettant de transmettre des informations par onde radio ou par voie filaire. Elle est utilisée en transmission radiophonique, télévision, wifi, fibre optique, etc.
Dans une première partie, on effectuera la modulation de fréquence d'une porteuse à partir d'un signal à transmettre sinusoïdal, afin d'en faire son analyse spectrale.
Dans une seconde partie, on verra comment effectuer la démodulation au moyen d'une boucle à verrouillage de phase.
Matériel :
La porteuse est une sinusoïde de fréquence f0=1000 Hz qui sera délivrée par le GBF Metrix 3240, avec une amplitude de 5 V environ.
Le signal à transmettre s(t) sera tout d'abord une sinusoïde de fréquence fm=10 Hz, délivrée par le GBF Metrix GX240. Son amplitude doit être très faible et il faudra donc utiliser l'atténuation -20 dB.
Le premier GBF, qui délivre la porteuse modulé en fréquence, fonctionne en oscillateur commandé en tension. Il faut pour cela envoyer le signal s(t) sur l'entrée VCF IN (Voltage Controled Frequency), puis activer la fonction SWEEP en sélectionnant la source EXT (externe) pour le balayage.
Figure pleine pageEn mode SWEEP, le GBF délivre une sinusoïde dont la fréquence est , où α est une constante. Cette sinusoïde s'écrit :
Si s(t) est une sinusoïde de la forme alors la déviation de fréquence est . L'indice de modulation β est défini par β=Δf/fm.
La largeur de bande fréquentielle du signal u(t) est environ (règle de Carson) :
Plus précisément, 98 pour-cent de la puissance du signal se trouve dans la bande de fréquences
Pour faire l'acquisition et l'analyse spectrale, on utilisera le script suivant :
# -*- coding: utf-8 -*- import pycanum.main as pycan import numpy import numpy.fft from matplotlib.pyplot import * sys = pycan.Sysam("SP5") sys.config_entrees([0,1],[5,1]) fe=50000 te = 1.0/fe ne=100000 T = ne*te print("T = %f"%T) sys.config_echantillon(te*1e6,ne) sys.acquerir() u=sys.entrees() t=sys.temps()[0] te = t[1]-t[0] U0 = u[0] U1=u[1] sys.fermer() figure() plot(t,U0) plot(t,U1) xlabel("t (s)") ylabel("u (V)") grid() te=t[1]-t[0] N=len(U0) spectre = numpy.absolute(numpy.fft.fft(U0))*2/N freq = numpy.arange(N)*1.0/(N*te) figure() plot(freq,spectre) axis([0,2000,0,spectre.max()]) xlabel("f (Hz)") ylabel("A") grid() show()
Obtenir le spectre du signal u(t) et mesurer sa largeur.
Observer l'augmentation de la largeur lorsque l'indice de modulation augmente.
Diminuer l'amplitude S afin que le spectre ne présente que trois raies.
En pratique, la modulation de fréquence est utilisée pour transmettre des signaux numériques. Le signal s(t) est alors binaire, c'est-à-dire qu'il ne contient que deux niveaux. Bien qu'un signal numérique réel soit plutôt aléatoire, on peut le simuler par un signal périodique carré.
La démodulation d'un signal modulé en fréquence consiste à extraire le signal s(t) du signal u(t). Elle se fait avec une boucle à verrouillage de phase, dont nous allons étudier le fonctionnement.
Figure pleine pageUne boucle à verrouillage de phase (Phase Locked Loop) est constituée d'un comparateur de phase et d'un oscillateur commandé en tension (OCT).
Le comparateur de phase effectue la comparaison des phases du signal d'entrée u(t) et du signal x(t) (délivré par l'OCT). Il est constitué d'un multiplicateur analogique et d'un filtre RC passe-bas. Le multiplicateur délivre le signal
Considérons le cas d'un signal u(t) sinusoïdal. Lorsque la boucle est verrouillée, le signal x(t) est synchrone avec u(t), c'est-à-dire qu'il a exactement la même fréquence, tout en étant déphasé :
Le signal en sortie du multiplicateur a alors la forme suivante :
Le filtre RC passe-bas est conçu pour atténuer suffisamment la composante de fréquence 2ω. Il reste donc en sortie du filtre :
Ce signal commande l'OCT. Celui-ci a une fréquence f=f0 lorsque s=0. La fréquence de la sinusoïde en sortie de l'OCT est :
Lorsque la boucle est verrouillée, cette fréquence est identique à celle de u(t), c'est-à-dire ω=2πf. Si la fréquence de u(t) change légèrement, la boucle s'adapte automatiquement pour maintenir une fréquence en sortie de l'OCT égale à la fréquence de u(t). Il s'en suit que le signal s(t) qui commande l'OCT reproduit les variations de fréquence de u(t). La sortie du démodulateur est donc s(t). Pour que la boucle reste constamment verrouillée, il faut que la fréquence de u(t) reste proche de f0.
Pour mettre au point la boucle, on utilisera le GBF Metrix GX240 pour délivrer le signal u(t), et le GBF Metrix 3240 pour réaliser l'oscillateur commandé en tension. La fréquence centrale est réglée à f0=1000 Hz. Le filtre RC est réalisé avec C=1 μF et R=10 kΩ.
Calculer la fréquence de coupure du filtre.
Réaliser la boucle. Attention au câblage du multiplicateur (AD633), qui comporte une alimentation et dont certaines bornes doivent être reliées à la masse.
Dans un premier temps, la fréquence de u(t) est ajustée à 1000 Hz. Observer u(t) et x(t) à l'oscilloscope. Si nécessaire, augmenter l'amplitude de l'OCT pour que la boucle se verrouille. Observer alors le déphasage entre u(t) et x(t).
Faire varier manuellement (et légèrement) la fréquence de u(t) et observer comment le déphasage de x(t) varie. Observer que si la variation de fréquence est trop grande la boucle se déverrouille.
Observer la tension s(t) en faisant varier la fréquence.
Relever la tension s(t) pour différentes fréquences et tracer la courbe. Vérifier que s(t) varie linéairement avec la fréquence.
Faire fonctionner la boucle avec des signaux carrés TTL prenant les valeurs 0 et 5 Volts, aussi bien pour u(t) que pour x(t).
Le signal modulé en fréquence est délivré sur la sortie audio de l'ordinateur, et généré par la fiche PureData modulationFrequence.pd, qui permet de générer un signal modulant s(t) périodique, comportant jusqu'à quatre harmoniques.
Faire fonctionner le démodulateur avec le signal audio modulé en fréquence.