Montage 23 : Mise en forme, transport et détection de l'information.

Ugo Hincelin, 27 Janvier 2017

Dans une communication, on identifie une source émettrice d'un signal contenant une information, un canal de transmission, et un destinataire qui "décode" le signal pour en extraire l'information. J'émets un son, le signal est porté par l'air, il arrive à l'oreille de mon destinataire.

On est amené à mettre en forme le signal pour plusieurs raisons. En voici quelques-unes.

La taille d'une antenne émettrice est de l'ordre de la longueur d'onde du signal envoyé. Un signal audio d'une fréquence f = 1 kHz porté par une onde électromagnétique de même fréquence nécessiterait une antenne de 300 km. Il est donc nécessaire de modifier la fréquence du signal pour pouvoir le transmettre. De plus, une antenne à taille unique ne pourrait envoyer de signaux que dans une gamme très limitée en longueur d'onde.

Si on veut transmettre une information dont la longueur d'onde est dans une gamme déjà occupée par un autre signal, il est alors nécessaire de changer cette longueur pour éviter d'avoir une superposition des signaux. On utilise le multiplexage, où dans un intervalle de fréquence (1 MHz par exemple pour l'ADSL) on trouve une multitude de canaux chacun avec sa gamme de fréquence réservée (ADSL : 4 kHz). Chaque canal est réservé à un unique signal.

On peut aussi être amené à modifier la fréquence d'un signal pour qu'il s'adapte au canal de transmission. Exemple : la fibre optique, qui demande des longueurs d'onde de l'ordre de la centaine de nm.

Dans ce montage, on commence par mettre en forme le signal, qu'il soit analogique ou numérique. C'est la modulation. Nous verrons la modulation d'amplitude et de fréquence. Nous verrons ensuite la détection de l'information en fonction du type de modulation, c'est la démodulation. Nous verrons la démodulation d'amplitude et de fréquence. Enfin, nous parlerons d'un canal de transmission, le câble coaxial. A savoir qu'il existe deux catégories de canal de tranmission : propagation libre (ex : Hertzien, satellite) et guidée (câble coaxial, fibre optique).

I - Modulation et démodulation d'amplitude d'un signal analogique

La modulation se fait par multiplication du signal informatif, le signal modulant, par le signal porteur qui est adapté au canal de transmission. Le signal résultat de cette multiplication est appelé signal modulé. La démodulation se fait à l'aide d'un détecteur de crête. Pour cette dernière, on lui préfèrera une démodulation synchrone (suggestion Franck Gobet).

Plan du montage :

Entre le multiplieur et le filtre passe-bas, le signal possède les fréquences suivantes : 0, 2Ω, 2Ω+/-ω et +/-ω. Le filtre passe-bas permet donc de ne garder que ω.

I - 1 - Modulation

- Rappel théorique

Voir [2] page 60.

signal modulant : sm(t)=Amcos(ωt)+Ao

Ao est l'offset, qui modifie la moyenne du signal.

signal porteur : sp(t)=Apcos(Ωt+ϕ)

Ω=5 ou 50 kHz >>ω=500 Hz

Modulation à multiplication de signaux : le multiplieur analogique effectue le produit de sm par sp. On obtient :

s(t)=kAoAp[1+mcos(ωt)]cos(Ωt+ϕ) avec m=AmAo

m est le taux de modulation de s(t) qui donne la variation de son amplitude, m=AmaxAminAmax+Amin

Ci-dessous, m=0.5,1,1.5

On obtient pour s :

s(t)=Acos[(Ωω)t+ϕ]+kAoApcos(Ωt)+A+cos[(Ω+ω)t+ϕ] avec m=2A+kAoAp

Il y a donc dans le signal modulé (s(t)) trois pulsations, une raie principale et deux raies latérales, ce qui occupe 2ω de largeur spectrale. Question : Faire le lien avec la limitation du nombre de raies principales dans un signal pour éviter un chevauchement. Voir ci-dessous une illustration :

- Manipulation

  • GBF1 : Am=2.5V (donc 5V pic to pic attention!), f=500Hz, Ao(offset)=2.5V
  • GBF2 : Am=2.5V, f=5kHz
  • Faire varier Ao pour visualiser la forme du signal s(t) à l'oscillo: Ao=7V donne m=0.36<1 ; Ao=2.5V donne m=1 ; Ao=1V donne m=2.5>1

  • Mode FFT avec m=0.36 : mesurer la fréquence des trois raies, et montrer que la différence entre la raie centrale et une raie latérale donne bien la fréquence du signal modulant.
  • Mode FFT toujours : calculer m à partir des mesures des amplitudes des raies (m2=AlateraleAcentrale). On doit retrouver 0.36.

I - 2 - Démodulation

- Rappel théorique

Le détecteur de crête (démodulateur à diode) et le démodulateur synchrone avec récupération de la porteuse sont bien détaillés dans [3] p.146 à 149. Voir aussi [5] p.209.

- Manipulation pour le détecteur de crête

  • Choisir une fréquence de porteuse haute, 50kHz
  • Faire le calcul des valeurs de R et C adéquates pour filtrer correctement le signal modulé et bien détecter les crêtes :

12πF=12π×50000=3×106s

12πf=12π×500=3×104s

On veut donc un 1ωc=τ=RC de 3×105s. Prendre R=4kOhm et C=80nF par exemple.

  • Montrer sur l'oscillo s(t) et s'(t).
  • Choisir un m suffisamment petit pour avoir un signal modulé dont le minimum d'amplitude est supérieur à la tension minimale pour un courant non nul passant dans la diode (voir la caractéristique (i,u) de la diode). On aura alors un signal démodulé qui suit bien l'enveloppe du signal modulé, et qui sera donc fidèle au signal modulant. En direct live, augmenter Ao jusqu'à satisfaction.

II - Modulation et démodulation de fréquence d'un signal numérique

Ici, on fabrique un signal numérique, c'est-à-dire une suite de 0 et de 1 qui représente par exemple plusieurs octets. Cela correspond à 0V et 1V. Ce signal est donné à un VCO qui fournira un signal dont la fréquence sera dépendante de la tension appliquée (Voltage Controled Oscillator). La modulation en fréquence est réalisée. Ensuite, on multiplie le signal modulé et un signal dont la fréquence est celle de la porteuse (grace à une boucle à verrouillage de phase - en anglais PLL pour Phase Locked Loop) et on filtre en passe-bas pour récupérer le signal modulant. La forme en créneau de départ ne sera pas parfaitement restituée à cause du filtre. La FFT d'un créneau est une somme de fréquence, et le passe-bas coupe à un moment donné cette somme ne permettant pas la reconstruction parfaite du créneau.

Plan du montage

Le branchement à l'entrée de chaque VCO se fait à l'arrière de l'appareil, sur VCF input. La sortie du VCO est le output habituel.

Rappel théorique

Voir [2] p.69 section 4.3, [3] p.164 chapitre 12, et les équations ci-dessus et dessous.

sm(t)=Am si <<1>> et 0 si <<0>>

s(t)=Apcos[θ(t)]

avec θ(t)=(ω0+Δω)t si <<1>> et

θ(t)=ω0t si <<0>>

Attention, contrairement à cette image, dans le montage la haute fréquence est associé à une basse tension, et la basse fréquence à une haute tension.

II - 1 - Production du signal numérique

Logiciel Synchronie : rentrer dans une colonne du tableur une suite de 0V et de 1V. Il y a 200 cellules à remplir, sinon Synchronie supposera la valeur 0V par défaut. Cela constitue notre variable, qui simule une suite d'octet.

Dans les paramètres, choisir la nouvelle variable en "Sorties".

Exécuter le signal en "Sorties analogiques". Choisir 1000 ms, 1 répétition, signal permanent. Cela enverra en continu le signal, en le répétant une fois toutes les 1s. Voici une impression écran de Synchronie :

Le signal est transmis sur la carte d'acquisition Sysam. Visualiser sur l'oscilloscope le signal "pseudo-carré" issu de la carte.

II - 2 - Modulation FSK (Frequency Shift Keying)

Le VCO, pour Voltage Controlled Oscillator, envoie un signal sinusoïdal dont la fréquence est fonction de la tension appliquée. On va tracer la fonction fréquence = fonction(tension).

Choisir une fréquence du GBF1 d'environ f0=1kHz par exemple. Cela signifie que pour une tension nulle, la fréquence sera f0. Puis activer le mode SWEEP puis EXT afin de lancer la fonction VCO. Visualiser le signal à l'oscilloscope.

Dans Synchronie par exemple, créer plusieurs colonnes avec des valeurs constantes en tension : de -2V à 2V par pas de 1. Cela constitue 5 signaux constants en tension. Exécuter le signal et mesurer la fréquence du signal généré par le VCO. On obtiendra des fréquences autour de f0. Attention à respecter une bande de tension permise par le VCO (voir documentation), sinon la fréquence générée ne sera plus proportionnelle à la tension! En pratique, éviter de tomber sur une fréquence trop faible.

In [1]:
%matplotlib inline

import numpy as np
import pylab as plt
from scipy.optimize import curve_fit

# Création des listes de données
X_tab =    [-2,-1,0,1,2] # unité : V
errX_tab = [0,0,0,0,0]
Y_tab =    [2273,1775,1250,750,250] # unité : Hz
errY_tab = [10,25,5,10,1]

# Conversion de ces listes en tableaux (pour traiter les données)
X_tab = np.array(X_tab)
Y_tab = np.array(Y_tab)
errX_tab = np.array(errX_tab)
errY_tab = np.array(errY_tab)

# Définition de la fonction pour le calcul du chi^2 et du chi_réduit^2
# Bally, Berroir 2008, Incertitudes expérimentales
# chi_reduit^2 ~ 1 : bon accord avec le modèle
# chi_reduit^2 >> 1 : modèle non validé
# chi_reduit^2 << 1 : incertitudes surestimées ?
def chi2(sigma_exp,y_th,y_exp,nb_param):
    chi2 = sum(((y_th - y_exp)/sigma_exp)**2)
    nDOF = len(y_exp) - nb_param
    chi_red_2 = chi2/(nDOF)
    return chi2,chi_red_2

# Régression linéaire sur Y=f(X)
def flin(x,a,b):
    return a*x+b
p, covm = curve_fit(flin,X_tab,Y_tab)
a,b = p

# Compute chi2
chi2_lin,chi_red_2_lin = chi2(errY_tab,flin(X_tab,a,b),Y_tab,2)

# Correction des barres d'erreur (kesako? à voir...)
erra, errb = np.sqrt(np.diag(covm)/chi_red_2_lin)

# Figure
fig, ax = plt.subplots(1)
ax.errorbar(X_tab,Y_tab,errY_tab,errX_tab,fmt='.',label="données")
Y_fit = flin(X_tab,a,b)
ax.plot(X_tab,Y_fit,label="ajustement")
textstr = "y(x) = a*x + b\n\
a = %.0f +/- %.0f \n\
b = %.0f +/- %.0f \n\
chi_red_2 = %.2f"  %(a,erra,b,errb,chi_red_2_lin)
ax.text(0.45, 0.95, textstr,transform=ax.transAxes, fontsize=12, verticalalignment='top')
ax.legend(loc=8)
plt.xlabel("$tension \, (V)$", fontsize=16)
plt.ylabel("$frequence \, (Hz)$", fontsize=16)
plt.show()

On obtient la fréquence générée par le VCO en fonction de la tension appliquée en entrée : 1260 Hz - 507*tension, à comparer aux données de la documentation du GBF.

II - 3 - Démodulation FSK à l'aide d'une PLL.

  • Modifier f0 : prendre 100 kHz. On aura un signal carré de meilleure qualité.

  • Choix du gabarit du filtre : on veut fcoupure=12π×tau=12π×RC<<f0. Choisir par exemple 100 Ω et 180 nF.

  • Le GBF2 est aussi configuré en VCO avec une f0 de même valeur que celle pour le GBF1.

  • Il peut être nécessaire d'aider la PLL à synchroniser les fréquences. Pour cela, modifier légèrement la fréquence du GBF1 jusqu'à synchronisation des deux GBF.

  • Visualiser le signal numérique modulant et le signal démodulé à l'oscilloscope.

On remarque un signal non parfaitement carré. Le filtre passe-bas a coupé des fréquences hautes. Le carré est une somme de sinusoïdes de fréquences différentes (ω0, 2ω0, 3ω0...). La troncature ne permet pas de reconstituer le signal avec une forme "parfaite". Voir [4] p.371.

III - Transport du signal - La câble coaxial

Parmi les canaux de transmission, étudions le câble coaxial. L'adjectif coaxial vient du fait qu'il possède deux conducteurs selon le même axe : un fin fil de cuivre central appelé "âme", et une tresse de fils de cuivre très fin en forme de cylindre. Les deux conducteurs sont isolés par un diélectrique. Le tout est recouvert d'une gaine. La tresse joue le rôle de cage de Faraday ce qui limite les perturbations électromagnétiques de l'extérieur. Cependant si une perturbation existe, elle devrait toucher l'âme et la tresse à la fois. La tension prise étant celle entre l'âme et la tresse, la mesure éliminera naturellement l'effet de la perturbation. La tension se propage dans le câble, on parle d'onde de tension. [5] p.358 et 384 et [6] p.439

Piège dans ce montage ! Bien prendre en compte les impédances pour gérer les réflexions !

III - 1 - Vitesse du signal

  • Montage Réaliser le branchement suivant :

    Réflexion = ZairZcableZair+Zcable1

Envoyer une impulsion qui fera l'aller retour dans le cable. Période : 2μs et rapport cyclique proche de 2%.

  • Résultats

    Le signal retour n'est pas parfaitement carré. Un carré est une somme de sinus à différentes fréquences. On va voir que l'atténuation dépend de la fréquence. Cela empèche une "reconstruction" à l'identique du carré.
In [2]:
import numpy as np

d = 2*(49.70+31.10+30.60) # m
t = 1.14e-6 # s
Dt = 0.01e-6 # m
Dd = 0.01*2 # s
v = d/t # m/s
Dv = np.sqrt((d/t**2*Dt)**2 + (Dd/t)**2) # m/s
"v = %.2e +/- %.0e m/s" % (v,Dv)
Out[2]:
'v = 1.95e+08 +/- 2e+06 m/s'

La vitesse est plus faible que celle d'une onde EM dans le vide. Attention, cela n'est à priori pas dû à des réflexions comme dans une fibre optique. La permittivité du diélectrique, i.e. du matériau isolant non magnétique, ϵ=ϵrϵ0 n'est pas égale à celle du vide ϵ0. ϵr=2.26 pour le polyéthylène. Cela donne une célérité telle que c=1ϵμ0=1ϵ0ϵrμ0=c0ϵr2×108m.s1. Voir [8].

III - 2 - Atténuation du signal

Voir [5] p.370

  • Montage

Réaliser le branchement suivant :

Réflexion 1 sur l'oscillo = ZoscilloZcableZoscillo+Zcable1

Réflexion 2 en bout de cable = ZRZcableZR+Zcable=0

Envoyer un signal sinusoïdal. Mesurer les amplitudes des signaux transmis et réfléchis. Calculer l'atténuation AttdB=20log(VeVs)

III - 2 - 1 - En fonction de la longueur du câble

Les mesures sont faites à 100 kHz.

In [3]:
%matplotlib inline

import numpy as np
import pylab as plt
from scipy.optimize import curve_fit

# Création des listes de données
X_tab =    [30.6,49.70,61.7,111.40] # unité : m
errX_tab = [0.01,0.01,0.01,0.01]
Ye_tab =   [4.86,4.94,5.00,5.22] # unité : V
errYe_tab = [0.02,0.02,0.02,0.02]
Ys_tab =   [4.58,4.52,4.50,4.38] # unité : V
errYs_tab = [0.02,0.02,0.02,0.02]

# Conversion de ces listes en tableaux (pour traiter les données)
X_tab = np.array(X_tab)
Ye_tab = np.array(Ye_tab)
Ys_tab = np.array(Ys_tab)
errX_tab = np.array(errX_tab)
errYe_tab = np.array(errYe_tab)
errYs_tab = np.array(errYs_tab)

Y_tab = 20*np.log10(Ye_tab/Ys_tab)
errY_tab = np.sqrt((errYe_tab/Ys_tab)**2+(errYs_tab*Ye_tab/Ys_tab**2)**2)

# Définition de la fonction pour le calcul du chi^2 et du chi_réduit^2
# Bally, Berroir 2008, Incertitudes expérimentales
# chi_reduit^2 ~ 1 : bon accord avec le modèle
# chi_reduit^2 >> 1 : modèle non validé
# chi_reduit^2 << 1 : incertitudes surestimées ?
def chi2(sigma_exp,y_th,y_exp,nb_param):
    chi2 = sum(((y_th - y_exp)/sigma_exp)**2)
    nDOF = len(y_exp) - nb_param
    chi_red_2 = chi2/(nDOF)
    return chi2,chi_red_2

# Régression linéaire sur Y=f(X)
def flin(x,a,b):
    return a*x+b
p, covm = curve_fit(flin,X_tab,Y_tab)
a,b = p

# Compute chi2
chi2_lin,chi_red_2_lin = chi2(errY_tab,flin(X_tab,a,b),Y_tab,2)

# Correction des barres d'erreur (kesako? à voir...)
erra, errb = np.sqrt(np.diag(covm)/chi_red_2_lin)
print(a,erra,b,errb)

# Figure
fig, ax = plt.subplots(1)
ax.errorbar(X_tab,Y_tab,errY_tab,errX_tab,fmt='.',label="données")
Y_fit = flin(X_tab,a,b)
ax.plot(X_tab,Y_fit,label="ajustement")
textstr = "y(x) = a*x + b\n\
a = %.4f +/- %.4f \n\
b = %.3f +/- %.3f \n\
chi_red_2 = %.2f"  %(a,erra,b,errb,chi_red_2_lin)
ax.text(0.05, 0.95, textstr,transform=ax.transAxes, fontsize=12, verticalalignment='top')
ax.legend(loc=8)
plt.xlabel("$distance \, (m)$", fontsize=16)
plt.ylabel("$attenuation \, (dB)$", fontsize=16)
plt.show()
0.0124075955816 0.000108920137234 0.145544762176 0.00762894012765

On obtient une atténuation de (1.24+/-0.01) dB par 100 m. Ce phénomène, général, devient important sur de très longues distances. On trouve alors, comme pour traverser l'atlantique, des répéteurs qui vont amplifier le signal.

III - 2 - 2 - En fonction de la fréquence du signal

On choisit une longueur de cable, et on modifie la fréquence du signal entrant. On mesure les amplitudes des signaux entrant et sortant. Ici, d=49.7m et A=20Vpp.

In [4]:
%matplotlib inline

import numpy as np
import pylab as plt
from scipy.optimize import curve_fit

# Création des listes de données
X_tab =    [100e3,10e3,1e6,10e6,1e3,100,10] # unité : Hz
errX_tab = [0,0,0,0,0,0,0]
Ye_tab =   [4.94,4.86,5.66,4.92,4.82,5.02,4.18] # unité : V
errYe_tab = [0.02,0.02,0.02,0.02,0.02,0.02,0.02]
Ys_tab =   [4.52,4.56,4.30,3.40,4.56,4.80,3.98] # unité : V
errYs_tab = [0.02,0.02,0.02,0.02,0.02,0.02,0.02]

# Conversion de ces listes en tableaux (pour traiter les données)
X_tab = np.array(X_tab)
Ye_tab = np.array(Ye_tab)
Ys_tab = np.array(Ys_tab)
errX_tab = np.array(errX_tab)
errYe_tab = np.array(errYe_tab)
errYs_tab = np.array(errYs_tab)

Y_tab = 20*np.log10(Ye_tab/Ys_tab)
errY_tab = 20/np.log(10)/Y_tab*np.sqrt((errYe_tab/Ys_tab)**2+(errYs_tab*Ye_tab/Ys_tab**2)**2)

# Figure
fig, ax = plt.subplots(1)
ax.errorbar(X_tab,Y_tab,errY_tab,errX_tab,fmt='.',label="données")
ax.legend(loc=2)
ax.set_xscale('log')
plt.xlabel("$frequence \, (Hz)$", fontsize=16)
plt.ylabel("$attenuation \, (dB)$", fontsize=16)
plt.show()

L'atténuation augmente avec la fréquence du signal d'entrée de façon non linéaire.

Conclusion

Aujourd'hui, l'information transmise est essentiellement numérique. Atténuation et vitesse de transmission sont des paramètres importants mais nous n'avons pas parlé de débit de transmission. Pour augmenter le débit, les technologies modernes utilisent du multiplexage. La famille des xDSL (ADSL, VDSL qui différent par la nature symétrique ou non du débit entrant et sortant, et par la valeur de ce débit) utilise la plage de fréquence non utilisée par la voix sur les lignes téléphoniques. Sur cette plage libre, 255 canaux (donc 255 porteuses) d'environ 4 kHz de large se partagent une bande passante de 1.1 MHz. L'ADSL2+ utilise une bande passante de 2.2 MHz, pour 511 canaux. La technologie VDSL2 passe cette bande à 12 MHz. Aujourd'hui, la transmission par fibre optique est privilégiée pour augmenter le débit et diminuer l'atténuation. On passe de 100 Mbit/s (VDSL2) à 10 Gbit/s. Il existe ce qu'on appelle le multiplexage en longueur d'onde pour les fibres. Le débit devient alors impressionant, de l'ordre de 10 Tbit/s. [7]

Bibliographie

[1] Perez, Cap Prépa, Physique MPSI-PCSI-PTSI, Pearson Education, 2009 (seulement pour un exercice en modulation démodulation d'amplitude en section III p.392)

[2] Cottet, Traitement du signal, Dunod, 2011 - Ce livre contient principalement la théorie

[3] Manneville, Esquieu, Electronique - Systèmes bouclés linéaires, de communication et de filtrage, Dunod, 2001 - Ce livre contient la théorie et les montages

[4] Tec&Doc Compétences Prépas PCSI 2013, Chapitre 15 : Filtrage d'un signal périodique

[5] Bellier et al., Physique expérimentale aux concours de l'enseignement - Electricité..., Dunod, 2012

[6] Vidal, Prépas Sciences MP MP* Physique, Ellipses, 2010 - Pour quelques infos sur le câble coaxial

[7] Panorama de la physique, Belin pour la science, 2007 - En conclusion sur la transmission optique à haute capacité.

[8] H Prépa, Ondes, 2e année, édition 2004 - Application 2 p.63 + chapitre entier sur le câble coaxial

In [ ]: