Modulations analogique et numérique

Author

Alexis HOBL

Published

August 1, 2024

Un petit peu d’histoire

Les ondes électromagnétiques

  • 1865 : James Clerk Maxwell unifie l’électromagnétisme à l’aide de huits équations. Oliver Heaviside réécrit ces équations en 1884 sous forme de quatre équations vectorielles.

  • 1887 : Heinrich Hertz vérifie expérimentalement la théorie de Maxwell, selon laquelle la lumière est une onde électromagnétique.

Les télécommunications sans fil

  • 23 Décembre 1900 : Reginald Fessenden transmet la voix humaine pour la première fois de l’histoire grâce à de la modulation d’amplitude (AM). C’est le début des télécommunications sans fil.

  • 1901 : Guglielmo Marconi réalise la première transmission radio transatlantique. Cet exploit lui a valu le prix Nobel de Physique de 1909 partagé avec Karl Ferdinand Braun.

  • 192X : Jhon Renshaw Carson publie sa théorie mathématiques sur la modulation de fréquence (FM). Edwin Howard Armstrong met au point un récépteur hétérodyne permettant de faire de la modulation de fréquence.

  • 1938 : Alec Reeves brevete son invention de modulation d’impulsion codée permettant de réduire le bruit de la voix transmise sur e longue distance.

  • 1948 : Claude Shannon publie “A Mathematical Theory of Communication” établissant les principes de base mathématiques de la communication numérique.

Prérequis

  • Trigonométrie

  • Analyse spectrale

  • Modèle OSI

Définitions

Système de communication
On définit un système de communication comme étant l’ensemble des système composé d’une source d’information via un récepteur via le passage d’un canal de transmission.

flowchart LR
A(Source) -- Message émis --> B(Canal de transmission) -- Message transmis --> C(Récepteur)
D(Perturbations) ==> B

Canal de transmission
On définit un canal de transmission comme étant tout support physique à travers lequel l’information est transmise. Ce support peut être * Hertzien (air principalement) * Filaire à support électrique (câble coaxial, lignes torsadées, …) * Filaire à support optique (fibre optique, guide d’ondes, …)

Un canal de transmission est défini par deux caractéristiques : 1. Sa bande passante. 2. Son bruit.

Modulation
Opération consistant à reporter le spectre d’un signal dans un domaine fréquentiel favorable à sa transmission. Il faut adapter le signal au canal auquel il est confronté.
Signal analogique
Un signal est analogique si \(s(t) : t \in X \subseteq \mathbb{R}\) et lorsqu’il ne dépend que d’une variable indépendante.

Modulation analogique

La modulation est dite analogique si le signal transmis via le canal reste analogique durant tout le processus de transmission.

Modulation d’amplitude (AM)

La modulation d’amplitude est une modulation qui consiste à faire varier l’amplitude d’une porteuse à la même fréquence qu’un signal modulant.

Notations
On appelle : * Porteuse le signal \(p(t) = A_p cos(\omega_p t +\varphi_p))\). * m(t) le signal modulant. Ce signal contient l’information * s(t) le signal modulé en amplitude.

Bande Latérale Unique (BLU)

Double bande latérale (DSB)

On distingue deux types de modulation d’amplitude à double bande latérale :

  • La modulation d’amplitude Double Bande Avec Porteuse (DBAP)

  • La modulation d’amplitude Double Bande Sans Porteuse (DBSP)

L’expression générale du signal modulé est donnée par :

\[f[m(t)]cos(\omega_p t + \varphi_p)\]

Avec \(f[m]\) une fonction affine.

Il est alors possible d’écrire l’expression du signal modulé pour la AM-DBAP et la AM-DBSP.

AM-DBAP
\(s(t) = A_p[1+k\cdot m(t)]cos(\omega_p + \varphi_p)\)
AM-DBSP
\(s(t) = A_p\cdot k\cdot m(t)cos(\omega_p + \varphi_p)\)

L’emploi d’une fonction \(f\) linéaire permet de considérer un signal modulant périodique comme une somme de signal sinusoïde. Le principe de superposition peut alors s’apppliquer.

On considérere par la suite que \(\varphi_p = 0\).

#| standalone: true
#| viewerHeight: 600
#| viewerWidth: 700
from shiny import App, render, ui
import numpy as np
#from scipy import signal
import matplotlib.pyplot as plt

app_ui = ui.page_fluid(
    ui.layout_sidebar(
        ui.sidebar(
            ui.input_slider("f_porteuse", "Fréquence_porteuse", 0, 50, 10, step=1),
            ui.input_slider("f_modulant", "Fréquence_modulant", 0, 5, 1, step=0.1),
            ui.input_slider("amplitude", "Amplitude", 0, 2, 1, step=0.25),
            ui.input_slider("shift", "Déphasage", -2*3.14, 2*3.14, 0, step=0.1),
            ui.input_slider("m", "Indice de modulation", -5, 5, 0.5, step=0.1),
        ),
    ui.output_plot("plot"),
    ), 
)

def server(input, output, session):
    @output
    @render.plot(alt="Sine function")
    def plot():
        t = np.arange(0.0, 4.0, 0.0001) # vecteur de temps

        p = input.amplitude()*np.sin((2 * np.pi * input.f_porteuse()) * (t - input.shift() / 2)) # porteuse

        m = input.amplitude()*np.sin((2*np.pi*input.f_modulant()) * (t - input.shift() / 2)) # signal modulant sinus

        #carre = input.amplitude()*signal.square((2*np.pi*input.f_modulant()) * (t - input.shift() / 2)) # signal modulant carré
        
        s_sinus = input.amplitude()*(1+input.m()*m)*np.sin((2 * np.pi * input.f_porteuse()) * (t - input.shift() / 2)) #signal modulé
        
        #s_carre = input.amplitude()*(1+input.carre()*m)*np.sin((2 * np.pi / input.period_porteuse()) * (t - input.shift() / 2)) #signal modulé

        e_sinus = input.amplitude()*(1+input.m()*m) # enveloppe supérieure

        #e_carre = input.amplitude()*(1+input.m()*carre) # enveloppe supérieure

        fig, axs = plt.subplots(3, 1)

        axs[0].plot(t, p, label = 'Porteuse')
        axs[0].set_ylim([-2*input.amplitude(), 2*input.amplitude()])
        axs[0].legend()
        axs[0].grid()

        
        axs[1].plot(t, m, label = 'Modulant sinusoïdal')
        axs[1].set_ylim([-2*input.amplitude(), 2*input.amplitude()])
        axs[1].legend()
        axs[1].grid()

        """
        axs[2].plot(t, carre, label = 'Modulant carré')
        axs[2].set_ylim([-2*input.amplitude(), 2*input.amplitude()])
        axs[2].legend()
        axs[2].grid()
        """

        axs[2].plot(t, e_sinus, label = 'Enveloppe')
        axs[2].set_ylim([-2*input.amplitude(), 2*input.amplitude()])
        axs[2].plot(t, s_sinus, label = 'Signal modulé')
        axs[2].legend()
        axs[2].grid()

        """
        axs[4].plot(t, e_carre, label = 'Enveloppe')
        axs[4].set_ylim([-2*input.amplitude(), 2*input.amplitude()])
        axs[4].plot(t, s_carre, label = 'Signal modulé')
        axs[4].legend()
        axs[4].grid()
        """
        
app = App(app_ui, server)

Modulation de fréquence

Modulation de phase

Modulation numérique

La modulation est dite analogique si le signal est discrétisé avant sa transmission via le canal.

PSK

FSK

Modulations complexes

QAM

MSK

GMSK

Delta-Sigma

Modulation multi-porteuses