Vous êtes sur la page 1sur 2

CY-TECH - Département Mathématiques

2ème année Ingénieurs - Mathématiques & Informatique


TD 1- Introduction au compressive sensing et à la parcimonie
2021-2022

Exercice 1 (Décomposition en cosinus discrets). La décomposition en cosinus discrets est un outil


fondamental introduit en 1974, il est à la base des premières méthodes de compressions de données (si-
gnaux, images,. . .) et en particlier de la norme jpeg. On parle de DCT pour Discrete Cosinus Transform.
Cette décomposition s'applique à des signaux réels, à temps discret et de longueur nie N.
On indexe les instants de t = 0 à t = N − 1 et on munit RN du produit scalaire usuel : si x et y sont
N−1
de tels signaux, leur produit scalaire est déni par ⟨x, y⟩ = xt yt .
X

t=0
On dénit N signaux Ci pour i = 0, . . . , N − 1 de longueur N comme suit.

⇝ Le premier signal est un signal constant tel que,

1
C0 (j) = √ , j = 0, . . . , N − 1.
N

⇝ les N − 1 autres signaux sont dénis pour t = 1, . . . , N − 1 par


r  
2 2j + 1
Ct (j) = cos πt , j = 0, . . . , N − 1.
N 2N

Montrer que la famille A = {Ct , t = 0, . . . , N − 1} est une famille orthonormale de RN . Est-elle une
base de RN ?

Exercice 2 (Transformée en cosinus discrète).

1. Implémenter sur Scilab/Python la matrice de la transformée en cosinus discrète pour N=500.

2. Calculer la repésentation α en cosinus discrète du signal x (voir annexe).

3. Représenter le signal original x.

4. Représenter la représentation α sur Scilab/Python. α est-elle parcimonieuse ?

5. Commenter les résultats.

Exercice 3 (Transformée en fourier discrète).

1. Implémenter sur Scilab/Python la matrice de la transformée en cosinus discrète pour N=500.

2. Représenter la représentation α par DFT du signal généré dans l'exercice précedent sur Sci-
lab/Python. α est-elle parcimonieuse ?

3. Commenter les résultats.


TD-TP Compressive Sensing

Annexe

Génération d'un signal x. On considère le signal périodique suivant :

N=500 ;

fe = 400 ; // Fréquence d'échantillonnage

t = [1 :N]/fe ; // Axe des temps

f0 = 50 ;

sinus = sin(2 × π × f0 × t) ; // Génération du sinus

fp = 100 ;

tporteuse = (1 :length(sinus))/fe ; // Génération de la porteuse

porteuse = cos(2 × π × fp × porteuse) ;

x = sinus .* porteuse ; // on multiplie terme à terme les 2 signaux

2/2

Vous aimerez peut-être aussi