Codes cycliques

publicité
Propriétés
(−1)a = −a et ab = 0 ⇒ a = 0 ou b = 0
a, b et m > 1 entiers ; a ≡ b mod m si m | (a − b)
Zm est un corps ssi m est premier
Rappels d’algèbre
F un corps. La caractéristique de F est le plus petit entier
positif p tel que p.1 = 0 pour 1 élément neutre de F. Si un tel
p n’existe pas, F est de caractéristique nulle.
La caractéristique d’un corps est soit 0 soit un nombre premier
Un corps fini F de caractéristique p contient p n éléments pour
un entier n ≥ 1
Corps
Anneau de polynômes
Un corps F est un ensemble non vide d’éléments muni des
opérations + et . satisfaisant les axiomes :∀a, b, c ∈ F
1
F est clos pour + et .
2
commutativité
3
associativité
4
distributivité a(b + c) = ab + ac
!
Soit F un corps. F[x] = { ni=0 ai x i : ai ∈ F, n ≥ 0} est
l’anneau des polynômes sur F. F[x] vérifie tous les axiomes
d’un corps sauf l’existence d’un inverse multiplicatif.
!
Pour f (x) = ni=0 ai x i , n est le degré du polynôme.
f (x) est monique si an = 1
De plus, il existe deux éléments neutres, un pour + et un pour .
satisfaisant
∀a ∈ F
5
a + 0 = a,
6
a1 = a et a0 = a,
7
tout élément a un inverse pour l’addition
8
tout élément a un inverse multiplicatif
∀a ∈ F
f (x) est réductible s’il existe g (x) et h(x) tq. deg(g )<deg(f )
et deg(h)<deg(f ) et f (x) = g (x).h(x) ; sinon, il est
irréductible
pour f (x), g (x) ∈ F[x], le pgcd de f et de g est le polynôme
monique de plus haut degré qui divise simultanément f et g
Soit f (x) ∈ F[x] de degré ≥ 1 alors F[x]/f (x) forme un
anneau. De plus, si f est irreductible, F[x]/f (x) est un corps.
Structure des corps finis
Parties génératrices et libres
∀β ∈ F de cardinalité q, on a β q = β
F, sous-corps de E de cardinalité q. Alors, un élément β de E
vit dans F ssi β q = β
Pour tout p premier et tout entier n ≥ 1, il existe un unique
corps fini à p n éléments
α ∈ Fq est dit primitif (ou générateur) si
Fq = {0, α, α2 , · · · , αq−1 }
l’ordre de α ∈ Fq , noté ord(α) est le plus petit entier k tq.
αk = 1
∀α ∈ F!q , ord(α) | q − 1
Une partie génératrice de E est un sous-ensemble G ⊆ E tel que
le sous-espace engendré par G est E . Ou, de manière équivalente,
que tout vecteur de E est combinaison linéaire d’éléments de G . E
est dit de dimension finie s’il contient une partie génératrice finie.
Une partie libre de E est un sous-ensemble L ⊆ E tel qu’aucun
élément v ∈ L n’est une combinaison linéaire d’autres éléments de
L. Ou, de manière équivalente, la seule combinaison linéaire
d’éléments de L qui est nulle est celle dont tous les coefficients
sont nuls.
Un élément non nul de Fq est primitif ssi il est d’ordre q − 1
tout corps fini a au moins un élément primitif
Espace vectoriel – Sous-espace vectoriel
E est un espace vectoriel sur un corps K si et seulement si,
∀u, v , w ∈ E
1.
2.
3.
4.
(u + v ) + w = u + (v + w )
∃0 : u + 0 = 0 + u = u
∀u∃(−u) : u − u = 0
u+v =v +u
5.
6.
7.
8.
∀c ∈ K , c(u + v ) = c.u + c.v
∀a, b ∈ K , (a + b)u = a.u + b.v
∀a, b ∈ K , (a.b)u = a.(b.u)
1.u = u
F (= ∅ est un sous-espace vectoriel de E si et seulement si
"
x + y ∈ F ∀x, y ∈ F
λx ∈ F
∀λ ∈ K , ∀x ∈ F
Si A ⊆ E , alors le sous-espace engendré par A est l’ensemble de
toutes les combinaisons linéaires d’éléments de A.
Famille génératrice et base
Une famille d’éléments de E est génératrice si son ensemble
sous-jacent engendre E . Une famille d’éléments de E est libre si
son ensemble sous-jacent est libre.
Une base de E est une famille d’éléments de E qui est libre et
génératrice. Si (bi )i∈I est une
! base de E , alors
∀x ∈ E ∃!(λi )i∈I ∈ K : x = i∈I λi bi .
Dimension
Si la dimension de E est finie alors chaque base de E est finie (son
ensemble sous-jacent est de cardinal fini) et toutes les bases ont le
même nombre d’éléments. Ce nombre est la dimension de l’espace.
Si la dimension de E est n, alors
si (gi )i∈I est une famille génératrice de E alors |I | ≥ n. S’il y a
égalité, alors (gi )i∈I est une base.
si (li )i∈I est une famille libre de E alors |I | ≤ n. S’il y a
égalité, alors (li )i∈I est une base.
Codes cycliques
si E = K n , alors la famille (ei )i∈I avec I = {1, 2, . . . , n} et
ei = (0, 0, . . . , 1, 0, . . . , 0) avec 1 à la i e position est une base,
la base canonique de K n .
Application linéaire
Description
On dit que f est un application linéaire de E dans V si f est une
application qui vérifie :
∀x ∈ E , ∀y ∈ E
∀λ ∈ K , ∀x ∈ E
f (x + y ) = f (x) + f (y )
f (λ.x) = λ.f (x)
Codes les plus utilisés [7, 4, 3].
Implémententation facile au moyen de registres linéaires.
Pour certains, bonnes techniques de décodage basées sur des
transformées de Fourier discrètes.
Ce cours : codes binaires (sur F2 ).
Définition
Représentation polynomiale
Un code linéaire C de longueur n est cyclique si ses mots vérifient :
Si (x1 , . . . , xn ) ∈ C , alors (xn , x1 , . . . , xn−1 ) ∈ C
Un code est cyclique s’il est invariant par «shifts» (ou décalages).
Exemple : Le code C = {000, 110, 011, 101} est cyclique.
Exemple : Le code de Hamming est cyclique. Matrice génératrice
de Ham(3) :
# 1101000 $
G = 0110100
0011010
0001101
0110100 ∈Ham(3) ainsi que 1101000 ; ils vérifient la condition de
cyclicité.
Anneau des polynômes binaires
Soit F2 [x] l’anneau des polynômes en x à coefficients dans F2 .
Définition (Anneau)
Un anneau A est un ensemble muni de deux opérations internes
(+, .) tel que (A, +) est un groupe commutatif muni d’une
opération . qui satisfait :
a.b = b.a, a.(b + c) = a.b + a.c, (a.b).c = a.(b.c) et qui contient
un élément noté 1 tel que 1.a = a.1 = a.
Pour plus de détails, voir [2] ou [5, 6].
Définition
On appelle représentation polynomiale l’application
θ : (F2 )n → F2 [x]/(x n − 1) définie par
θ : (c0 , c1 , . . . , cn−1 ) -→ c0 + c1 x + . . . + cn−1 x n−1
La représentation polynomiale de c = (c0 , c1 , . . . , cn−1 ) est le
polynôme c(x) = c0 + c1 x + . . . + cn−1 x n−1 .
Exemple : Représentation polynomiale de 0110100 : x + x 2 + x 4
et celle de 1101000 est 1 + x + x 3 . Observons que
x + x 2 + x 4 = x(1 + x + x 3 ).
La représentation polynomiale d’un code C est l’ensemble des
représentations polynomiales de ses mots.
Exemple
Le code C = {000, 110, 011, 101} correspond aux polynômes
0, 1 + x, x + x 2 , 1 + x 2 pris modulo x 3 − 1. Sa représentation
polynomiale est donc C = {0, 1 + x, x + x 2 , 1 + x 2 }.
Faire un décalage sur un mot revient à multiplier par x sa
représentation polynomiale, modulo x n − 1.
C est cyclique SSI pour tout mot c ∈ C , xc(x) mod x n − 1 est la
représentation polynomiale d’un mot de C .
Code cyclique = idéal
Exemple
Si c(x) ∈ C , alors xc(x) ∈ C et p(x)c(x), pour tout p(x) ∈ F2 [x].
Code cyclique de longueur n est un idéal de F2 [x]/(x n − 1).
Définition (Idéal)
Un sous-ensemble I d’un anneau commutatif A est un idéal si,
pour a, b ∈ I , a − b ∈ I et si, pour a ∈ I et x ∈ A, a.x ∈ I .
Théorème
I est un idéal de K [x] si et seulement si il existe a(x) ∈ K [x] tel
que I est l’ensemble des multiples de a(x) dans K [x].
Le code de Hamming de paramètres (7, 4, 3) admet comme
générateur g (x) = x 3 + x + 1.
Ses mots consistent en tous les multiples de g (x) modulo x 7 − 1.
Par exemple le mot a(x) = (x 8 + 1)g (x). On a
(x 8 + 1)g (x) = (x + 1)g (x) mod (x 7 − 1) = x 4 + x 3 + x 2 + 1.
Ainsi, a = (1011100).
Définition
Un idéal I est principal s’il consiste en tous les multiples d’un
polynôme fixé, g(x), appelé polynôme générateur de I .
Code cyclique et polynôme générateur
Posons Rn = F2 [x]/(x n − 1). L’anneau Rn = F2 [x]/(x n − 1) est
composé des classes résiduelles de F2 [x] modulo x n − 1.
Théorème
Un code cyclique C de longueur n est un idéal principal de Rn . Il
admet un unique générateur de degré minimal dans C .
Exemple : Le code C = {0, 1 + x, x + x 2 , 1 + x 2 } est engendré par
g (x) = 1 + x dans R3 .
Théorème
La dimension d’un code cyclique de longueur n et de générateur
g (x) est
k = n − deg g (x)
Matrice génératrice
Soit g (x) = g0 + g1 x + . . . + gt x t le générateur d’un code cyclique
C de longueur n. Une matrice génératrice de C est donnée par :


g0 g1 g2 . . . gt 0 . . . . . . 0
 0 g0 g1 g2 . . . gt 0 . . . 0 




G =  ... . . . . . . . . . . . . . . . . . . . . . ... 


 0 . . . 0 g0 g1 g2 . . . gt 0 
0 . . . . . . 0 g0 g1 g2 . . . gt
Pour construire tous les mots de C , il faut multiplier g (x) par tous
les polynômes p(x) de degré inférieur ou égal à k − 1.
Matriciellement, les mots m peuvent s’écrire m = p G .
Exemple
Code engendré par le polynôme de contrôle
Le code de Hamming Ham(3) de paramètres [7,4,3] et de
générateur g (x) = 1 + x + x 3 admet pour matrice génératrice


1 1 0 1 0 0 0
0 1 1 0 1 0 0 


0 0 1 1 0 1 0 
0 0 0 1 1 0 1
Quels sont les mots du code ?
Polynôme de contrôle
Soit C un code cyclique de générateur g (x). Le polynôme de
contrôle de C est défini par
h(x) = (x n − 1)/g (x)
Le degré de h(x) est donc n−deg g (x) = k. Si c est un mot de C ,
alors c(x)h(x) = 0
Le code engendré par h(x) est équivalent au code dual de C . C’est
un code cyclique de dimension n − dim C =deg g (x). Pour
h(x) = h0 + h1 x + . . . + hk x k , on peut construire sa matrice H :


0 ...
0 hk . . . h1 h0
 0 . . . 0 hk . . . h1 h0 0 



.. 
..
..
H =  ...
.
.
.


0

hk . . . h1 h0 0 . . .
0
Exemple
le polynôme de contrôle correspondant à g (x) = 1 + x + x 3 est
h(x) = (x 7 − 1)/(x 3 + x + 1) = x 4 + x 2 + x + 1. La matrice de
contrôle du code est :


0 0 1 0 1 1 1
0 1 0 1 1 1 0 
1 0 1 1 1 0 0
Quels sont les paramètres du dual de Ham(3) ?
Propriété du polynôme générateur
Ordre multiplicatif
Le polynôme générateur d’un code cyclique binaire de longueur n
(impaire tel que n soit premier avec 2) doit être un facteur de
x n − 1.
Il faut étudier le corps de décomposition de x n − 1, i.e. les
facteurs de x n − 1 sur F2 pour trouver quels polynômes peuvent
engendrer des codes.
L’ordre multiplicatif de 2 modulo n est le plus petit entier m tel
que n divise 2m − 1.
Les racines de Φn = x n − 1, ne polynôme cyclotomique, sont
appelées racines ne de l’unité. Elles vivent dans l’extension de
corps F2m .
F2m est aussi appelé le corps de décomposition de x n − 1.
Exemple : L’ordre multiplicatif de 2 mod 7 est le plus petit entier
m tel que n|2m − 1. Ici, on a 7|2m − 1 et donc m = 3. Les racines
de x 7 − 1 vivent donc dans l’extension de corps F23 .
Le corps F2m
F2m est le plus petit corps contenant toutes les racines de Φn (elles sont
distinctes puisque x n − 1 n’a pas de racines multiples dans F2 ).
Dans F2m , on a donc pour les αi racines ne de l’unité,
xn − 1 =
Les facteurs de Φn = x − 1 sur F2
n
n−1
+
i=0
(x − αi )
F2m possède également une racine primitive ne de l’unité. α est dite
primitive lorsque les puissances de α permettent de retrouver toutes les
autres αi ; si α est primitive alors,
xn − 1 =
n−1
+
i=0
(x − αi )
Corps d’extension F2m
F2m est obtenu en ajoutant à F2 une racine primitive ne de l’unité.
Le polynôme minimal d’une telle racine primitive est un facteur
irréductible dans F2 [x] du polynôme cyclotomique Φn = x n − 1.
Un polynôme sur F2 [x] est irréductible sur F2 s’il ne peut être
factorisé par un produit de deux polynômes sur F2 [x] de degré
moindre.
Exemple : construction de F23
F23 est l’extension de degré 3 de F2 .
Pour le construire, on ajoute la racine d’un polynôme qui n’a
normalement pas de racine sur F2 [x].
Comme l’extension est de degré 3, on cherche un polynôme
irréductible de degré 3. Par exemple, x 3 + x + 1 ou x 3 + x 2 + 1.
Choisissons f (x) = x 3 + x + 1. On a donc f (α) = 0 et on pose
α3 + α + 1 = 0 ⇔ α3 = α + 1.
On a une racine dans le corps à 23 éléments engendré par α, racine
primitive. f (x) est le polynôme minimal et on a ainsi le plus petit
corps contenant α, F2 [α] = F2 [x]/f (x)F2 [x]. De plus, (1, α, α2 )
est une base de F23 .
Décomposition de Φn = x n − 1
Considérons la décomposition en t facteurs irréductibles de x n − 1
sur F2 ,
x n − 1 = f0 (x)f1 (x) . . . ft−1 (x)
Si α est racine de fi (x), fi (x) est appelé polynôme minimal de α
sur F2 . Les autres racines de fi (x) sont les conjugués de α : soit
s
α, α2 , α4 , . . . , α2 i −1 , (où si est le degré de fi (x)).
, 1 −1
j
Supposons que f1 (x) = sj=0
(x − α2 ) alors, les autres facteurs
sont
, i −1
j
fi (x) = sj=0
(x − αi2 )
Classe cyclotomique
Définition
Le cycle (i, 2i, 4i, . . . , 2j i, . . .) s’appelle la classe cyclotomique de
i (relative à 2 modulo n). Plus précisément, pour i ∈ Zn , la classe
cyclotomique de i relative à 2 modulo n est :
Ci = {i2j
mod n : j ∈ N}
Le nombre d’éléments dans la classe cyclotomique est égal au
degré du facteur irréductible.
Exemple : Factorisation de x 7 − 1 sur F2
On a m = 3 car 7 = 23 − 1. L’extension de corps est F23 / F8 .
Calculons les classes cyclotomiques modulo 7 :
C0 = {0} = {0.2j },
C1 = {1, 2, 4} = {2j } = C2
C3 = {3, 6, 5} = {3.2j }
On en déduit qu’il existe un facteur de degré 1 et deux de degré 3.
Remarquons que les degrés des facteurs (ici 3) divisent n − 1 (ici
6).
Les trois polynômes minimaux sont :
Alors
f1 (x) = (x − α)(x − α2 )(x − α4 )
= x 3 + (α + α2 + α4 )x 2 + (α3 + α5 + α6 )x + α7
= x 3 + x + 1,
et on trouve de manière analogue que f3 (x) = x 3 + x 2 + 1
Donc x 7 − 1 = (x − 1)f1 (x).f3 (x)
f0 (x) = x − 1,
f1 (x) = (x − α)(x − α2 )(x − α4 ),
f3 (x) = (x − α3 )(x − α6 )(x − α5 )
Implémentation du codage [1]
On sait que x 3 + x + 1 est un polynôme irréductible de degré 3,
l’autre se trouve facilement par division. D’où la factorisation :
x 7 − 1 = (x − 1)(x 3 + x + 1)(x 3 + x 2 + 1)
Pour retrouver les coefficients de f1 (x) et f3 (x) on calcule dans F8 .
Puisque 8 = 23 , nous considérons un polynôme binaire de degré 3
irréductible, par exemple f (x) = x 3 + x + 1.
Si α est une racine primitive de f (x) = x 3 + x + 1, alors f (α) = 0.
On a donc
α3 = α + 1
α4 = α2 + α
α5 = α2 + α + 1
α6 = α2 + 1
α7 = 1.
Considérons le (7,4,3) code de Hamming Ham(3) engendré par
g (x) = x 3 + x + 1.
Supposons que le message a = a0 , a1 , . . . , a3 est à encoder en
c = c0 , . . . , c3 , c4 , . . . , c6 .
Pour trouver c, il suffit d’effectuer le produit a(x).g (x)
mod x 7 − 1 qui peut être implémenté efficacement au moyen d’un
registre à décalages.
c0 , c1 , . . . , ck+3
g1
a0 . . . ak
g0
Décodage
codons le message a(x) = x 2 + x 3 :
entrée registre sortie
0110
000
011
000
0
01
100
10
0
110
110
011
1110
001
01110
000
101110
000
0101110
c0 . . . c6
Le décodage s’effectue de la manière suivante :
Calcul du syndrome avec un registre à décalage.
Association du syndrome à l’erreur correspondante grâce à
une table. La consultation de la table se fait à l’aide d’un
circuit de logique combinatoire.
Ajout de l’erreur au mot reçu, en utilisant des ou exclusifs.
Le message à émettre est donc : c(x) = x + x 3 + x 4 + x 5 .
Décodage
Soit C un (n, k, d) code cyclique binaire engendré par g (x) de
degré n − k. Soit e sa capacité de correction.
Un mot y recu est corrigé en un mot c ∈ C si y = c + η avec
w(η) ≤ e.
Exemple du code de Hamming Ham(4)
Ham(4) a comme paramètres (15,11,3) et est engendré par
g (x) = x 4 + x + 1. Trouver le syndrome correspondant au message
x 8 + x 5.
Définition
Le syndrome S(y (x)) d’un mot y (x) ∈ Rn est le reste de la
division de y (x) par g (x) dans F2 [x].
En particulier, y (x) ∈ C si et seulement si g (x) divise y (x) dans
F2 [x].
Les mots de C sont ceux qui possèdent un syndrome nul.
. . . bn
r0
r3
. . . ak
Par exemple, pour la division du polynôme b(x) = x 8 + x 5 par
g (x), on a :
entrée registre sortie
000001001 0000
00000100 1000 0
0000010 0100 00
000001 0010 000
00000 1001 0000
0000 1000 10000
000 0100 010000
00 0010 0010000
0 0001 00010000
1100 100010000
On trouve que le syndrome est x + 1, le contenu des cellules du
registre.
Les codes BCH (Bose, Chaudhuri, Hocquenghem)
Codes cycliques qui minorent la distance minimum du code avant
construction.
Soit F2m le corps des racines ne de l’unité. Un code BCH binaire de
longueur n et de distance construite δ est le code de plus grande
cardinalité admettant comme zéros αb , αb+1 , . . . , αb+δ−2 où
α ∈ F2m racine primitive ne de l’unité et b ∈ N! .
Définition
Un code BCH binaire de longueur n et de distance construite δ est
un code cyclique dont le générateur est le produit (sans répétition
de facteurs) des polynômes minimaux de αb , αb+1 , . . . , αb+δ−2 , où
b est un entier positif. Si b = 1, le code est BCH au sens strict.
Théorème
Le code BCH binaire de longueur n et distance construite
δ = 2t + 1 a pour dimension k ≥ n − mt et distance minimum
d ≥ δ.
Exemple
Le code de Hamming Ham(3) est un code BCH avec δ = 3 et
b = 1.
En fait, les codes BCH ont été construits comme une
généralisation des codes de Hamming.
Exemples de codes cycliques
Les codes de Reed-Solomon
Les codes BCH peuvent aussi être construits sur Fq , le corps à q
éléments, q premier. Quand leur longueur n est telle que
n = q − 1, ils sont appelés codes de Reed-Solomon. Ce sont des
codes MDS (Maximum Distances Separable). Cela signifie que
d = n − k + 1, où d et k représentent respectivement la distance
minimum et la dimension du code.
Ils sont utilisés :
pour construire d’autres codes,
lorsqu’on désire un code de longueur moindre que la
cardinalité du corps,
C’est le code qui est à la base du mécanisme de correction pour la
lecture des disques compacts dont nous allons découvrir le principe.
Code t-raccourci
Le code raccourci d’un code C est obtenu en supprimant, pour
chaque mot de C , les composantes dont les indices appartiennent
à un ensemble fixé. On considère seulement le cas particulier de la
définition suivante [7] :
Définition
Le code t-raccourci d’un code C est le code noté C # qui est
l’ensemble des mots (xt+1 , . . . , xn ) tels que
(0, . . . , 0, xt+1 , . . . , xn ) ∈ C .
Propriété
Le code C # , t raccourci d’un (n, k, d) code linéaire C a pour
paramètres (n# , k # , d # ) avec n# = n − t, k # ≥ k − t et d # ≥ d.
Exemple
Considérons le (5, 2)-code binaire défini par la matrice génératrice :
.
1 1 0 1 1
1 0 1 0 0
l’ensemble de ses mots est :
Codes raccourcis
{(0, 0, 0, 0, 0), (1, 1, 0, 1, 1), (1, 0, 1, 0, 0), (0, 1, 1, 1, 1)}
le code 1-raccourci C # de paramètres (4, 1) est
{(0, 0, 0, 0), (1, 1, 1, 1)}
Application
S. Lang.
Algèbre linéaire, volume 2.
Considérons le code de Reed-Solomon de paramètres
n = 255, k = 251 et d = 5.
Son polynôme générateur est
g (x) = (x − α)(x − α2 )(x − α3 )(x − α4 ) pour α un élément
primitif de F28 .
Il est possible, à partir de ce code, de construire deux codes
raccourcis.
Le premier, noté C1 a pour paramètres n1 = 28, k1 = 24, le second
C2 a pour paramètres n2 = 32, k2 = 28. La distance minimale d1
(resp. d2 ) de C1 (resp. C2 ) est 5.
Ils servent à la construction du CIRC, mécanisme de correction des
erreurs des CD [8].
Dans le cas d’un Reed-Solomon, le code t-raccourci d’un code de
Reed-Solomon de paramètres (n, k, d), C # a pour distance
minimale d.
R.E. Blahut.
Theory and practice of error-control codes.
Addison Wesley, 1983.
M. Demazure.
Cours d’algèbre, primalité, divisibilité, codes.
Cassini, 1997.
R. Hill.
A first course in coding theory.
Oxford University Press, 1986.
D.G. Hoffman, D.A. Leonard, C.C. Linder, K.T. Phelps, C.A.
Rodger, and J.R. Wall.
Coding theory, the essentials.
Pure and applied mathematics. Dekker, 1991.
S. Lang.
Algèbre linéaire, volume 1.
InterEditions, 1976.
InterEditions, 1976.
J. Wolfmann and O. Papini.
Algèbre discrète et codes correcteurs.
Number 20 in Mathématiques & Applications. Springer Verlag, 1994.
J.-P. Zanotti.
Codage d’un signal audio-numérique.
Rapport de recherche 3333, INRIA, 1998.
Dies ist ein WWF-Dokument und kann nicht ausgedruckt werden!
Das WWF-Format ist ein PDF, das man nicht ausdrucken kann. So einfach können unnötige Ausdrucke von
Dokumenten vermieden, die Umwelt entlastet und Bäume gerettet werden. Mit Ihrer Hilfe. Bestimmen Sie
selbst, was nicht ausgedruckt werden soll, und speichern Sie es im WWF-Format. saveaswwf.com
This is a WWF document and cannot be printed!
The WWF format is a PDF that cannot be printed. It’s a simple way to avoid unnecessary printing. So here’s
your chance to save trees and help the environment. Decide for yourself which documents don’t need
printing – and save them as WWF. saveaswwf.com
Este documento es un WWF y no se puede imprimir.
®
SAVE AS WWF, SAVE A TREE
Un archivo WWF es un PDF que no se puede imprimir. De esta sencilla manera, se evita la impresión
innecesaria de documentos, lo que beneficia al medio ambiente. Salvar árboles está en tus manos. Decide
por ti mismo qué documentos no precisan ser impresos y guárdalos en formato WWF. saveaswwf.com
Ceci est un document WWF qui ne peut pas être imprimé!
Le format WWF est un PDF non imprimable. L’idée est de prévenir très simplement le gâchis de papier afin
de préserver l’environnement et de sauver des arbres. Grâce à votre aide. Définissez vous-même ce qui n’a
pas besoin d’être imprimé et sauvegardez ces documents au format WWF. saveaswwf.com
® WWF International – World Wide Fund For Nature, Gland/Switzerland.
Téléchargement