Académique Documents
Professionnel Documents
Culture Documents
Ele207 Presentation Ofdm PDF
Ele207 Presentation Ofdm PDF
1
Canal non-sélectif en fréquence
Ce canal ne peut pas générer d’interférence inter symbole (ISI) car il ne comporte
qu’un seul trajet.
A n(t)
x(t) y(t)
x +
2
Canal non-sélectif en fréquence : pas d’ISI
1. taille_trame=1000;
2. data_bin=randint(1,taille_trame);
3. data = 2*data_bin-1;
4. data_surech=zeros(4,taille_trame);
5. data_surech(1,:)=data;
6. data_surech=reshape(data_surech,1,taille_trame*4);
9. n = 0.0; % ou n = 0.1
10. bruit=n*randn(1,taille_trame*4+15);
11. data_rec=conv(b,data_out+bruit);
12. data_recp = data_rec(16:4*taille_trame+15);
13. eyediagram(data_recp, 4)
Un canal sélectif en fréquence est un canal multi-trajet, chaque trajet étant un canal non-
sélectif en fréquence d’atténuation Ai associé à un retard τi.
A0
τ0 x
A1 n(t)
τ1 x
y(t)
x(t) . + +
.
. AL-1
τL-1 x
4
Canal sélectif en fréquence
On peut modéliser le canal multi-trajet avec un filtre à réponse impulsionnelle finie (FIR).
Le retard maximum Δτ du canal est égal au nombre de coefficients du FIR multiplié par
Tech.
x(t)
b0
x
Tech b1 n(t)
x y(t)
+ +
Tech BM-1
5
Canal sélectif en fréquence
On définit la bande de cohérence Bc d’un canal comme étant l’écart qui doit séparer deux
porteuses afin qu’elles soient complètement décorrélées.
1. nbc = 0; % Δτ = 1
2. b = [1 0.2*ones(1,nbc) 0.5];
3. freqz(b,1)
6
Canal sélectif en fréquence
1. nbc = 5; % Δτ = 6 1. nbc = 9; % Δτ = 10
2. b = [1 0.2*ones(1,nbc) 0.5]; 2. b = [1 0.2*ones(1,nbc) 0.5];
3. freqz(b,1) 3. freqz(b,1)
Bc
7
Canal sélectif en fréquence : présence d’ISI
1. taille_trame=1000;
2. data_bin=randint(1,taille_trame);
3. data = 2*data_bin-1;
4. data_surech=zeros(4,taille_trame);
5. data_surech(1,:)=data;
6. data_surech=reshape(data_surech,1,taille_trame*4);
7. b=[1 0 -4 -7 -2 17 45 65 65 45 17 -2 -7 -4 0 1]/114.9695;
8. data_out=conv(b,data_surech); sans bruit (n = 0)
9. n = 0.0; % ou n = 0.1
10. bruit=n*randn(1,taille_trame*4+15);
13. data_recf=conv(b,data_rec);
14. data_recp = data_rec(16:4*taille_trame);
15. eyediagram(data_recp, 4, 1, 1)
9
Canal sélectif en fréquence : conséquence
• Solution 2 : on connait le canal h(t) ou on peut le découvrir et le canal varie lentement
(cas de l’ADSL par exemple).
Inconvénients :
1) la complexité est en générale assez élevée (donc le circuit est coûteux) et
l’égalisation ne fonctionne pas forcément dans tous les cas.
2) Le rapport signal sur bruit (SNR) n’est pas amélioré.
10
Canal sélectif en fréquence : conséquence
• Solution 3 bis : Modulation multi-porteuses.
BN = B/N et RN = R/N
11
Modulation multi-porteuses : principe
H(f), la réponse en
fréquence du canal peut
être décomposée en une
succession de canaux
élémentaires autour de
chaque porteuse
Ex : Combien de porteuses doit-on utiliser pour qu’elles ne subissent qu’une simple atténuation
avec un canal urbain de largeur B = 1 MHz et d’étalement Δτ = 20 μs.
Où :
si est le symbole associé à la ième sous porteuse,
13
Modulation multi-porteuses : émetteur
14
Modulation multi-porteuses : récepteur
Chaque signal si(t) d’une sous-bande est affecté par une pondération αi = |Hi(fi)|
Hi(fi)
correspondant au gain du ième canal.
15
Modulation multi-porteuses : limitations
• Mais pour que les canaux soit orthogonaux, c’est-à-dire que la mise à 0
d’un canal ne modifie pas les signaux dans les autres canaux, il faut qu’ils
soient suffisamment espacés. En pratique, il faudra avoir une bande
occupée B’ = N(1+k) .BN ce qui est inefficace spectralement.
16
Modulation multi-porteuses avec recouvrement
C’est l’OFDM. il existe des algorithmes rapides pour calculer les transformations
(FFT et IFFT) et la base d’exponentielles complexes est orthogonale.
18
OFDM : émission
x(t)
Longueur N
Durée TN
19
OFDM : réception
for i = 1:NbSym
% calcul ième symbole OFDM
symbole=ifft(X((i-1)*Nb+1:i*Nb));
% sauvegarde du symbole i dans x
x((i-1)*Nb+1:i*Nb) = symbole;
end
subplot(2,1,1); plot(real(x))
title('partie réelle de x')
subplot(2,1,2); plot(imag(x)) 21
title('partie imaginaire de x')
simulation OFDM : réception
% ajout de bruit complexe
x = x + 0.06*(randn(size(x)) + j*randn(size(x)));
for i = 1:NbSym
% décodage du symbole i
y=fft(x((i-1)*Nb+1:i*Nb));
% sauvegarde du ième symbole décodé
Xdec((i-1)*Nb+1:i*Nb) = y;
end
scatterplot(Xdec)
for i=1:Nb*NbSym
if Rdec(i) ~= R(i)
cnt_err = cnt_err+1;
TES =
end
end 0.0027
TES = cnt_err / (Nb*NbSym) 22
OFDM : x réel ou imaginaire ?
X[0] x[0]
0 x[0]
X[0] x[1]
Avec une IFFT 2N point, si on place N .
points sur la partie basse et le miroir .
IFFT 2N
X[N-2]
complexe conjugué sur la partie haute, points
x réel, valeur
on obtient alors un signal x réel mais X[N-1]
moyenne nulle
avec deux fois plus de points que *
X [N-2]
quand il est complexe. .
.
X*[0] x[2.N-1]
23
OFDM : signal en sortie de IFFT
• Le coefficient X[0] correspond à la
valeur moyenne du signal x.
• Le coefficient X[1] correspond à la
fréquence fondamentale f0 du signal
x, c’est-à-dire une période sur N
points (cosinus sur la partie réelle,
sinus sur la partie imaginaire).
• Le coefficient X[2] correspond à
2.f0, c’est-à-dire deux périodes sur
N points.
• Le coefficient X[i] correspond à i.f0
x=ifft([0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
(i<N/2), c’est-à-dire i périodes sur N plot(real(x), 'r+')
points. hold on
plot(imag(x), 'b*')
legend('x réel','x imaginaire',2,'location','SouthWest')
S’il y a plusieurs coefficients non nuls,
le signal sur x est la somme des
signaux élémentaires. 24
OFDM : changement de fréquence
Pour l’instant, nous sommes restés en bande de base. Comment réalise-t-on le
changement de fréquence ?
x(t) X s(t)
Si le signal x(t) est réel, on le multiplie par un cos(ω0.t).
Mais il faut un filtre analogique pour supprimer la partie ~
symétrique du spectre. cos(ω0.t)
I(t) X
for i = 1:NbSym
% calcul ième symbole OFDM
symbole=ifft([X((i-1)*Nb+1:(i-1)*Nb+Nb/2); zeros(512 - Nb, 1); X((i-1)*Nb+Nb/2+1:i*Nb)], 512);
% sauvegarde du symbole i dans x
x((i-1)*512+1:i*512) = symbole;
end
% Affichage du spectre.
f=linspace(0,8,SS(1));
plot(f,20*log10(abs(fft(x_mod))+0.01)) 26
OFDM : problème sur le bord du spectre
40
1/TN = 1/64 = 15.625 ms
35
30
Cela pose des problèmes d’un point de vue
réglementaire car la non limitation du spectre 25
crée des interférences avec les canaux
20
d’émission adjacents. Le filtrage est difficile,
mais rien n’empêche de mettre à 0 les 15
porteuses sur les extrémités du spectre afin
10
qu’il tienne dans le gabarit demandé par la
1.4 1.45 1.5 1.55 1.6
norme.
Zoom sur le spectre précédent.
27
OFDM : canal sélectif en fréquence
En présence d’un canal multi-trajet, des version décalées du symbole n
s’additionnent entre eux, créant de l’ISI entre symboles OFDM. La récupération
du symbole est impossible.
Le retard maximum entre les symboles est égal à Δτ
x(t)
Récupération
impossible
28
OFDM : canal sélectif en fréquence
Pour absorber ce retard, on va allonger le symbole OFDM avec un intervalle de garde (GI). Sa
durée est généralement comprise entre 1/4 et 1/32 de la durée du symbole. Le débit utile est
réduit dans les mêmes proportions. Le spectre est légèrement modifié sur les bords à cause
de l’élargissement de la porte (on ne voit plus les lobes secondaires car les sinus cardinaux ne
s’annulent plus en même temps. L’allure générale du spectre ne change pas).
x(t)
Récupération
possible ?
Que doit-on mettre dans l’intervalle de garde pour pouvoir décoder correctement
le symbole n ?
29
OFDM : canal sélectif en fréquence
Il faut restaurer l’orthogonalité des porteuses qui a été perdue. Pour cela, on va
copier la fin du symbole au début.
GI Symbole n
GI Symbole n
30
OFDM : canal sélectif en fréquence
Que se passe-t-il en présence d’ISI ?
GI Symbole n
Continuons la raisonnement avec une porteuse
réelle. On additionne des versions décalées du
symbole. Si l’intervalle de garde est plus long que le
retard max du canal Δτ et si on sait retrouver
l’emplacement du symbole, alors on obtient la somme
de signaux sinusoïdaux de même fréquence, mais
d’amplitude et de phase différents. +
Cette somme est un signal sinusoïdal de même
fréquence mais dont la phase et l’amplitude ont +
changé. Ce changement correspond au Hi(fi) de la
porteuse. Ce raisonnement est valable pour toutes
les porteuses, réelles ou complexes.
31
OFDM : canal sélectif en fréquence
% création de trois symboles périodiques
% avec un intervalle de garde 1/8 (t=-3/32 à 0)
f0 = 3;
t= -3/32:1/32:1; % Fech = 32
symbole_1 = 0.7*sin(2*pi*f0*t);
f0 = 2;
symbole_2 = 0.5*sin(2*pi*f0*t+pi/2);
f0 = 7;
symbole_3 = sin(2*pi*f0*t+pi/4);
32
OFDM : canal sélectif en fréquence
figure
plot(x, 'r-'); hold on
plot(xrec, 'b-.')
legend('x','xrec',2,'location','North')
%récupération du symbole 2
% après extraction de l'intervalle de garde
symb2rec = xrec(41:41+31);
figure
plot(symbole_2(5:36), 'r-')
hold on
plot(symb2rec, 'b-.')
legend('Symb2','Symb2Rec',2)
33
OFDM : canal sélectif en fréquence
Conséquences : Raisonnons sur 2 signaux
sinusoïdaux.
Il faut pouvoir l’estimer afin de le corriger. Pour cela, nous allons insérer des valeurs
constantes sur certains point à l’entrée de la IFFT. On appelle ces valeurs des pilotes.
X[0] x[0]
IFFT N x = I+j.Q
pilotes points
X[N-1] x[N-1]
35
Correction du canal : réception
A la réception, pour le pilote sur le canal n, on va lire : yn = αn.xn + N, xn étant le symbole
connu émis, yn le symbole reçu, αn le coefficient d’atténuation du canal et N le bruit.
yn
Pour estimer le coefficient du canal n, il suffit de calculer (en complexe) : α̂ n =
xn
PB : si α est faible, on va estimer sur la valeur du bruit N.
Pour chaque pilote, on va obtenir une estimation du canal. Par interpolation, on va déduire
les coefficients d’atténuation αi pour les valeurs entre les pilotes. Une fois que l’on a obtenu
tous les αi, il suffit de corriger les valeurs yi à la sortie de FFT. Le SNR n’est pas amélioré,
car le bruit est amplifié en même temps que le signal. En cas de zéro sur une porteuse, la
correction n’a plus grand sens.
x[0] X[0]
1/α0
x[N-1]
1/αN-1
X[N-1]
36
Correction du canal : simulation
% Nombre d'états de la QAM.
M = 16;
% Nombre de porteuses dans le symbole OFDM
Nb = 256;
% Nombre de symboles OFDM dans la simulation % Création signal OFDM
NbSym = 1; x = zeros(NbSym*(Nb + NbGI),1);
% durée de l'intervalle de garde GI = 1/8 symbole_GI = zeros(Nb + NbGI,1);
NbGI = Nb/8;
% Tirage aléatoire d'entiers allant de 0 à M-1 for i = 1:NbSym
R = randint(Nb*NbSym,1,M); % calcul ième symbole OFDM et copie à la fin du symbole
% Mise en constellation QAM. symbole_GI(NbGI+1:Nb + NbGI)=ifft(X((i-1)*Nb+1:i*Nb));
[I Q] = qaskenco(R,M); % copie du préfixe cyclique
symbole_GI(1:NbGI)=symbole_GI(Nb+1:Nb + NbGI);
% insertion pilote 1+j tous les 16 symboles % sauvegarde du symbole i dans x
debut = 1; x((i-1)*(Nb + NbGI)+1:i*(Nb + NbGI)) = symbole_GI;
fin = 15; end
X = [1+j; I(debut:fin)+j*Q(debut:fin)];
% passage dans le canal multi-trajet (retard max < GI = 4)
for i = 1:15 cmt = [1 0 0 0.1];
debut = debut + 15; xrec = conv(cmt,x);
fin = fin+15;
X = [X; 1+j; I(debut:fin)+j*Q(debut:fin)]; for i = 1:NbSym
end % extraction du symbole reçu sans le préfixe cyclique
sym_rec = xrec((i-1)*(Nb + NbGI)+NbGI+1:i*(Nb + NbGI));
% décodage du symbole i
y=fft(sym_rec);
% sauvegarde du ième symbole décodé
Xdec((i-1)*Nb+1:i*Nb) = y;
37
end
Correction du canal : simulation
% extraction des pilotes, puis calcul des estimations
alpha_pilotes = Xdec(1:16:256)/(1+j);
% calcul par interpolation des coefficients de correction
% pour les symboles autres que les pilotes
xi=0:1/16:255/16;
% on interpole séparément les parties réelles et imaginaires
alpha = interp1(0:15, real(alpha_pilotes), xi) + j*interp1(0:15,
imag(alpha_pilotes), xi);
% correction des symboles (y compris les pilotes)
Xdec_cor = Xdec./alpha;
38
Exemple de système OFDM
Considérons un canal de largeur B = 1 MHz et d’étalement maximum Δτ = 5 μs.
Quel est l’espacement entre porteuses, le surcout dû à GI ainsi que le débit total ?
Durée totale du symbole OFDM = 128 + 8 = 136 μs => surcout = 8/136 = 5,9 %.
Débit total avec GI = = 4 bits x 128 porteuses / (TN + TGI) = 3,76 Mbit/s.
39
OFDM : réseau mono-fréquence
Les interférences entre émetteurs sont un des grands problèmes de la télévision. Pour
éviter de trop dégrader l’image à la réception (chaque émetteur voisin étant vu comme une
source de bruit par le récepteur), on utilise des fréquences différentes pour les émetteurs
proches les uns des autres. Cela conduit à une très grande inefficacité spectrale puisqu’il
faut environ 60 canaux analogiques pour émettre 6 chaines en France.
Avec l’OFDM, il suffit de synchroniser tous les émetteurs d’un territoire avec la même
fréquence (par satellite par exemple) et on peut réaliser un réseau mono-fréquence (Single
Frequency Network : SFN). Le réseau multi-fréquence (MFN) est aussi possible.
En effet, l’émetteur voisin sera vu comme un trajet retardé supplémentaire et traité par la
correction du canal. Il faudra bien sur que l’intervalle de garde soit plus long que ce trajet
supplémentaire (donc diminution du débit par rapport à une solution MFN et /ou
plus d’émetteurs) et que les fréquences d’émission soit strictement identiques (problème
aux frontières).
Sur la bande UHF (470 à 862 MHz, canal 21 à 69), c’est impossible à cause des émissions
analogiques, mais sur la bande VHF, cela sera possible quand Canal+ aura libéré les 3
canaux entre 47 et 68 MHz.
40
Correction d’un canal sélectif en fréquence
faiblement variable, voir statique
Pour un canal statique comme par exemple la ligne téléphonique pour l’ADSL,
deux autres méthodes peuvent être utilisées :
41
Canal sélectif en temps
42
Canal sélectif en temps
Le spectre de α est la TF de la fonction
d’autocorrelation Γ qui est une fonction de Bessel de
premier genre à l’ordre 0 dans le modèle de Jakes.
C’est le spectre en U bien connu de ce modèle.
Plus la vitesse du mobile augmente, plus l’étalement
Doppler fD augmente et plus la fonction
d’autocorrelation Γ décroit rapidement.
44
Canal sélectif en temps et en fréquence : COFDM
On peut bien sur ajouter des codes correcteurs d’erreurs pour améliorer la
protection de l’information transmise dans ce canal, mais ajouter de la
redondance s’avère inutile si tous les bits redondants sont transmis sur la
même porteuse du canal affectée d’un évanouissement. Le codage avec
entrelacement temporel et fréquentiel permet de lutter contre le fading
(annulation du canal pendant un symbole OFDM) mais aussi contre
l’annulation de sous porteuses.
45
Canal sélectif en temps et en fréquence : COFDM
Chaque x[i] est la somme sur N de variables aléatoires suivant une loi
uniforme. Si N est grand (> 64), le théorème de la limite centrale s’applique et
x[n] est une variable aléatoire qui suit une loi gaussienne centrée tant sur sa
partie réelle que sur sa partie imaginaire. Le module de x[n] suit donc une loi
de Rayleigh et sa phase suit une loi uniforme.
Le problème est que la loi de Rayleigh a un support infini et donc que x n’est
pas borné. La valeur crête de x dépassera toujours un seuil donné avec une
probabilité non-nulle.
47
OFDM : PAR
Pour un signal échantillonné quelconque, on définit
le PAR comme le rapport entre la puissance crête
et la puissance moyenne. Par exemple, pour un
signal sinusoïdal, c’est (Vmax/Veff)2 = 2.
48
OFDM : PAR
En première approximation, on peut considérer que pour un signal OFDM, le
PAR croit linéairement avec N, N étant le nombre de porteuses.
49
OFDM : simulation N = 64
% Nombre d'états de la QAM.
M = 16;
% Nombre de porteuses dans le symbole OFDM
Nb = 64;
%Nombre de symboles OFDM dans la simulation
NbSym = 1000;
% Tirage aléatoire d'entiers allant de 0 à M-1
seq_em = randint(Nb*NbSym,1,M);
% Mise en constellation QAM.
[I Q] = qaskenco(seq_em,M);
constel_emis = I+j*Q;
for i = 1:NbSym
x=ifft(constel_emis((i-1)*Nb+1:i*Nb));
xx((i-1)*Nb+1:i*Nb) = x;
end
for i = 1:NbSym
x=ifft(constel_emis((i-1)*Nb+1:i*Nb));
xx((i-1)*Nb+1:i*Nb) = x;
end
Nb = 15;
PAR = zeros(1,Nb);
for i=1:Nb
N = 2^(i+5);
x=randn(1,N)+j*randn(1,N);
PAR(1,i) = (max(abs(x))^2)/var(abs(x));
end
plot(PAR)
line([1 15],[20 68],'LineStyle', '--')
52
OFDM : saturation du module (clipping)
On reprend la simulation des transparents T21-T22 et on sature le module de x de façon à
ce que x(i)^2/variance(x) ne dépasse jamais 10 (quelque soit i).
% conversion rectangulaire/polaire
mod = abs(x);
theta = angle(x);
vari = var(mod);
PAR = (max(mod)^2)/vari
% saturation canal
SI = size(mod);
cnt_sat = 0;
retrait = 10;
for i=1:SI(1)
if ((mod(i)^2)/vari) > retrait
mod(i) = sqrt(retrait*vari);
cnt_sat = cnt_sat+1;
end
end
54
Décalage fréquentiel et temporel
L’OFDM est très sensible au décalage fréquentiel à cause de l’orthogonalité des porteuses. En
cas de décalage en fréquence, même faible, on récupère sur la ième sortie de la FFT des
données issues de toutes les fréquences porteuses. C’est l’interférence entre porteuses ICI.
Si le décalage est important (> BN/10), la récupération du signal OFDM est impossible.
Si le décalage est faible, cela va se traduire par un ajout de bruit sur les symboles et donc par
une dégradation du taux d’erreurs.
55
Décalage fréquentiel et temporel
Exemple : avec un oscillateur à quartz grand public 50 ppm, on a une incertitude de 25
kHz à 500 MHz (bande UHF pour la TNT). Comme en TNT, on a un écart entre porteuses
de 1116 Hz, la récupération du signal OFDM est impossible. Il faut un algorithme qui
utilise l’information contenue dans les pilotes pour ramener le signal en bande de base.
C’est impossible à réaliser en analogique.
L’effet d’un décalage temporel est moins important. En effet, du moment que l’on
récupère un symbole OFDM complet sans ISI, la FFT sera correcte. L’intervalle de garde
simplifie considérablement la tache car il est statistiquement peu utilisé jusqu’à son
maximum (le pire des cas ne se produit pas très souvent). La précision nécessaire pour
l’extraction du symbole n’en est que plus faible.
Imprécision sur la
récupération 56
Décalage fréquentiel et temporel
On connait la durée de l’intervalle de garde TGI et la durée du symbole OFDM TN en nombre
d’échantillons. Supposons que TGI = 8 et TN = 64.
TGI
EQM minimum
Pour réduire l’influence du bruit, il faut réaliser cette opération simultanément sur plusieurs
symboles consécutifs. Cela permet de moyenner l’EQM.
57
Etude de cas : 802.11a
La norme WiFi 802.11a occupe un canal B = 20 MHz dans la bande des 5 GHz. La norme
802.11g est identique, mais dans la bande ISM 2.4 GHz (bande de 802.11b, l’ancienne
norme de WiFi).
58
Etude de cas : 802.11a
La trame physique 802.11a est composée d’un préambule (16 μs), d’un champ signal (4 μs),
suivi d’un nombre variable de symboles OFDM (4 μs) portant les données utiles.
Exemples de calcul :
59
Etude de cas : DVB-T
Il y a deux modes 2k/8k qui indique le nombre de porteuses. Pour un débit utile
identique, le mode 8k permet de choisir un intervalle de garde plus grand que le mode
2k, et donc une meilleure robustesse aux échos. En France, les paramètres sont les
suivants :
Intervalle de garde (étalement max entre 4 et 224 μs) 1/32, 1/16, 1/8, 1/4
60
DVB-T : format de la trame
769 porteuses (sur 6817) sont utilisées pour transporter 3 types de porteuses pilotes : pilotes
fixes, disséminés et TPS(transmission parameter signal). Ces pilotes permettent au décodeur
d’assurer la synchronisation en fréquence, en temps ainsi que l’estimation du canal.
61
DVB-T : Débits utiles dans un canal 8 MHz
Exemple de calcul : 64QAM, R=2/3, GI = 1/4
62
DVB-T : synoptique encodeur
63