Skip to content

Tutoriel : Déconvolution

Introduction

La déconvolution consiste à estimer un signal d'entrée s à partir d'observations x obtenues après convolution avec une réponse impulsionnelle h[n] connue. Ce tutoriel compare deux approches selon le type de convolution utilisé.

Modèle général

Considérons un système linéaire invariant dans le temps (LTI) de réponse impulsionnelle h[n] de longueur L. Le signal observé s'écrit :

x[n]=l=0L1h[l]s[nl]+w[n]

w[n] est un bruit additif. Notre objectif est d'estimer s à partir de x et h.

Cas 1 : Déconvolution avec convolution classique

Formulation

La convolution classique (ou linéaire) entre un signal s de longueur p et h de longueur L produit un signal de longueur m=p+L1.

Le modèle linéaire s'écrit :

x=As+n

ARm×p est une matrice de Toeplitz :

A=[h1000h2h100h3h2h10h3h2hLh300hLh1hL00hLhL1]

Une matrice de Toeplitz est constante le long de ses diagonales.

Estimateur des moindres carrés

L'estimateur du maximum de vraisemblance est :

s^=(ATA)1ATx

Exemple

Pour h=[0.5,0.3,0.2] (L=3) et p=5, on obtient une matrice 7×5 :

Matrice de Toeplitz

Figure 1: Matrice de Toeplitz pour la convolution classique

Problèmes

  • Complexité : L'inversion de ATA coûte O(p3) opérations
  • Conditionnement : La matrice ATA est pleine et peut être mal conditionnée
  • Pas de structure exploitable : Impossible d'utiliser des algorithmes rapides comme la FFT

Cas 2 : Déconvolution avec convolution circulaire

Hypothèse

Supposons maintenant que le signal reçu x de longueur p soit lié au signal s (également de longueur p) par une convolution circulaire au lieu d'une convolution linéaire :

x[n]=l=0L1h[l]s[(nl)modp]+w[n]

(nl)modp indique que les indices "bouclent" de manière périodique.

Formulation matricielle

Le modèle s'écrit :

x=Acircs+n

AcircRp×p est une matrice circulante :

Acirc=[h1hLhL1h2h2h1hLh3h3h2h1h4hLhL1hL2h10hLhL1h2000hLhL1]

Chaque ligne est une rotation circulaire de la précédente.

Propriété fondamentale

Une matrice circulante est diagonalisable par la DFT :

Acirc=FHΛF

F est la matrice DFT et Λ=diag(λ1,,λp) avec λk=(Fh)k.

Estimateur avec FFT

Grâce à cette propriété, l'estimateur se calcule efficacement dans le domaine fréquentiel :

  1. DFT des observations : X=FFT(x)
  2. Réponse fréquentielle du canal : H=FFT(h)
  3. Égalisation fréquentielle : S^k=XkHk pour k=0,,p1
  4. IFFT : s^=IFFT(S^)

Complexité : O(plogp) au lieu de O(p3)

Focus : OFDM et préfixe cyclique

Dans la pratique, le Cas 2 (convolution circulaire) ne se produit pas naturellement. Un canal physique génère toujours une convolution linéaire (Cas 1).

L'OFDM (Orthogonal Frequency-Division Multiplexing) est une technique qui permet de transformer artificiellement la convolution linéaire en convolution circulaire en ajoutant un préfixe cyclique : on répète les L1 derniers échantillons du signal au début de la transmission.

Signal transmis :

sCP=[spL+2,,sp,s1,s2,,sp]

Après convolution avec le canal et suppression du préfixe cyclique, le signal reçu correspond exactement au Cas 2 (convolution circulaire).

Gain de l'OFDM

Dans un canal sélectif en fréquence (réponse impulsionnelle longue), cette technique offre un avantage majeur :

  • Sans préfixe cyclique : Égalisation par inversion matricielle en O(p3)
  • Avec préfixe cyclique (OFDM) : Égalisation par simple division complexe dans le domaine fréquentiel en O(plogp)

Le coût est un overhead de L1p échantillons supplémentaires transmis, généralement faible (5-25%) par rapport au gain algorithmique.

Cette technique est utilisée dans WiFi (802.11a/g/n/ac/ax), 4G LTE, 5G, et DVB-T.

Code Python

Le script complet est disponible dans src/deconvolution.py.