rapport com num

18
Type equation here. PROJET TELECOMMUNICATIONS SIMULATION DUNE CHAINE DE TRANSMISSION DUN MODEM V. 29 ET ETUDE DES PERFORMANCES DE LA CHAINE DE TRANSMISSION MOHAMAD FAWAZ MATTHIEU CHARPENTIER T2 ‐ TELECOM, S3, JANVIER 2008, ENSEIRB Professeur : Benoit ESCRIG [email protected] | [email protected]

Upload: jalila-mahmoud

Post on 21-Apr-2015

64 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rapport Com Num

Type equation here.

PROJETTELECOMMUNICATIONS

SIMULATIOND’UNECHAINEDETRANSMISSIOND’UNMODEMV.29ETETUDEDESPERFORMANCESDELACHAINEDE

TRANSMISSION

MOHAMADFAWAZ

MATTHIEUCHARPENTIER

T2‐TELECOM,S3,JANVIER2008,ENSEIRB

Professeur:BenoitESCRIG

[email protected]|[email protected]

Page 2: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page2/18 MaEhieuCHARPENTIERMohamadFAWAZ

Sommaire

I.Introduction....................................................................................................................................................... 4

II.Chaînedetransmission .............................................................................................................................. 5

II.1.Présentationgénérale............................................................................................................... 5

II.2.Embrouillage................................................................................................................................. 5

II.3.Lamodulation............................................................................................................................... 6

II.4.Lecanal ............................................................................................................................................ 8

II.5.Ladémodulation.......................................................................................................................... 9

II.6.Désembrouillage.......................................................................................................................... 9

III.SimulationMatlab......................................................................................................................................10

III.1.ProgrammesMatlab...............................................................................................................10

III.2.ParamétragedelasimulationsousMatlab.................................................................10

III.3.Résultatdelasimulation .....................................................................................................12

IV.Conclusion .....................................................................................................................................................12

V.Bibliographie..................................................................................................................................................13

VI.Annexes...........................................................................................................................................................13

VI.1.«Main.m» ...................................................................................................................................13

VI.2.«bintodec.m» ...........................................................................................................................15

VI.3.«debrouilleur.m» ...................................................................................................................16

VI.4.«embrouilleur.m»..................................................................................................................16

VI.5.«estimated_bits.m» ...............................................................................................................16

VI.6.«PAM_PSK.m»..........................................................................................................................16

VI.7.«PAM_PSK_demod.m».........................................................................................................17

Page 3: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page3/18 MaEhieuCHARPENTIERMohamadFAWAZ

Tablesdesfigures

Figure1:Présenta4ondelachaînedetransmission....................................................................... 5

Figure2:Schémadel’embrouilleur................................................................................................ 5

Figure3:Schémablocdelamodula4onnumérique....................................................................... 6

Figure4:Constella4onthéoriqueetsimuléedelamodula4onPAM‐PSK ....................................... 6

Figure5:Tableauxindica4fspourlecalculdelaphaseetdel’amplitudedessymboles ................. 7

Figure6:Recapitula4fduschémablocdelamodula4ondanslecasV.29..................................... 8

Figure7:Schémablocdeladémodula4on..................................................................................... 9

Figure8:Schémadudésembrouilleur .......................................................................................... 10

Figure9:Representa4ondesperformancesentermesdeBER ..................................................... 12

Page 4: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page4/18 MaEhieuCHARPENTIERMohamadFAWAZ

I. Introduc4onAfindefairecirculerdesdonnéessurunréseau,onu4lisedeschaînesdetransmission.Ces

chaînes sont différentes selon le modem u4lisé. C’est ici à un modem 9600 bits/s(recommanda4onUIT‐TV.29)quenousallonsnousintéresser.

Nousconsidéreronsdansnotreétudel’avisV29etplusprécisémentsonfonc4onnementàlavitessede9600bitsparsecondesdontvoicilesprincipalescaractéris4ques:

Transmissionenbandetransposéeavecuneporteusede1700Hz

Modula4ondephaseavecfonc4onnementsynchrone

Possibilité de fonc4onner selon lemode duplex (support guidé à 4 fils) ou semi‐duplex(supportguidéà2fils)

Cemodem peut également fonc4onner aux vitesses de replie de 7200 et 4800 bits parsecondes selonque l’on transmeEe4,3ou2 bitspar symbole.Cependantquelque soit le débitbinaire,ledébitdesymbolesrestetoujoursconstantetégal2400bauds.Ainsi,lalargeurdebandedu signal est de 2400 bauds. En effet, le canal est un canal à bande limitée de fréquences decoupure300Hzet3400Hz.

L’objec4fest icidesimulerunechaînedetransmissionà l’aidedu logicielMatlabetd’enétudier lesperformances.Unetellesimula4onnécessitelamiseenplacedefonc4onsaussibiendu côté émeEeur que du côté récepteur. Ensuite l’évalua4on du SER (Symbol Error Rate) en

fonc4ondurapportEb

N0

(où Ebdésignel’énergietransmiseparbitet

N0

2ladensitéspectraledu

bruit introduit entre l’émission et la récep4on) permeEra de mesurer les performances de lachaîneainsicréée.Puis,aprèsavoireffectuélecalculdesperformancesthéoriquesdelachaîne,ilsera possible de faire une comparaison avec les valeurs réelles et d’évaluer la qualité de lasimula4oneffectuée.

Page 5: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page5/18 MaEhieuCHARPENTIERMohamadFAWAZ

II. Chaînedetransmission

II.1. PrésentaFongénérale

La chaîne de transmission comporte de diverses étapes. Dans un premier temps, lesdonnées sont embrouillées avant d’être modulées. Ensuite, elles traversentle canal detransmissionoùellessontparasitéesparunbruitblancgaussienaddi4f.Aprèscepassagedanslecanal, lesignalestdémodulépuisdésembrouilléafinderécupéreruneséquenceéquivalenteàlaséquencededépart.Lareprésenta4ondelachaînedetransmissionestdonnéeparlafigure1.

Figure1:PrésentaFondelachaînedetransmission

II.2. Embrouillage

Aucoursd’unetransmission,lepassagedesbitsparlecanalentraînesouventdeserreurssur une suite de bits et non sur des bits isolés. Les opéra4ons d’embrouillage et dedésembrouillageconsistentalorsàdisperserceserreursafindepouvoirlescorrigerplusaisémentà l’aide de codes correcteurs. Le fonc4onnement de l’embrouilleur peut être représenté par leschéma‐blocsuivant:

Figure2:Schémadel’embrouilleur

LepolynômemessageestdoncdiviséparlepolynômegénérateurPtelque:

P(x) = 1+ x!18

+ x!23 (1)

Page 6: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page6/18 MaEhieuCHARPENTIERMohamadFAWAZ

Chacundesbitsembrouillésestdéfiniparlarela4onsuivante:

Ds= D

i! D

s" x

#18! D

s" x

#23 (2)

Pour implémenter l’embrouilleur sous Matlab, nous avions d’abord opté pour uneimplémenta4on théorique comme cela est expliqué dans le cours de codage canal avec desdivisions polynomiales binaire. Cependant, nous nous sommes vite rendu compte que ceEemodélisa4onétait tropcomplexeàmeEreenplace.C’estdoncpourcelaquenousavonsplutôtoptépouruneimplémenta4on«logique»avecdesregistresàdécalage.

II.3. LamodulaFon

Lamodula4onnumériqueestlatransforma4ond’untraindedonnéesbinairesenunsignaldontlabandepassanteestcompa4bleavecWetautourdelafréquenceporteuse fc .Ellepeutseséparerendeuxétapes:

1. Transforma4onenunsignalpasse‐basdontlabandeestW = 300,[ 3400]

2. Transposi4on dans la bande allouée au système centrée autour de la fréquenceporteuse fc = 1700Hz .

Figure3:SchémablocdelamodulaFonnumérique

En ce qui concerne la recommanda4on V.29, pour un débit binaire a 9600 bit/s, lamodula4onadoptéeestunePAM‐PSKavecM = 16 (n = log2 (M ) = 4 )commenouslemontrelafigure4ci‐dessous.

Figure4:ConstellaFonthéoriqueetsimuléedelamodulaFonPAM‐PSK

Page 7: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page7/18 MaEhieuCHARPENTIERMohamadFAWAZ

À lasor4ede l’embrouilleur, letraindesbitsestdoncdécoupéengroupedequatrebits(quadribits:Q1Q2Q3Q4).Lepremierbitsertàdéterminerl’amplitudedusymboletandisquelestrois autres bits servent à coder un saut de phase (cf. figure 5). Chaque symbole est ainsireprésentéparuncomplexedelaformeAme

j!m .

Q2 Q3 Q4Changementde

phase

0 0 1 0°

0 0 0 45°

0 1 0 90°

0 1 1 135°

1 1 1 180°

1 1 0 225°

1 0 0 270°

1 0 1 315°

Phaseabsolue Q1

AmplituderelaFvedel’élémentde

signal

0 30°,90°,180°,

270°1 5

0 2 45°,135°,225°,315°

1 3 2

Figure5:TableauxindicaFfspourlecalculdelaphaseetdel’amplitudedessymboles

Pourchaquesymbole,ilafallucalculerlaphaseabsoluedépendantedessautsdephaseetdelaphasedusymboleprécédentils’agitdoncd’unemodula4ondifféren4elle.

Cessymbolessontmisàchaqueinstant kTs (k = 0,...,N !1) dansunvecteur«symbols»

ini4alement nul, où Ts est la période symbole, elle‐même un mul4ple en4er de la période

d’échan4llonnagedusignal.

La fréquence d’échan4llonnage fe =1

Te doit être supérieur au double de la fréquence

maximale, d’après le théorème de Shannon. Pour respecter les deux condi4ons précédentes( fe > 8000Hz et fe = 2400 ! k )soientrespectées,nousavonschoiside fe = 96000Hz ( k = 40 ).

Ilnousresteàchoisirlaportedemiseenforme.Notrecanalestuncanalàbandelimitée,ilestdoncdéconseilléd’u4liseruneportecarréepouréviterlesinterférencesentresymboles.Uneporteencosinussurélevéestunchoixplusjudicieux.Onconstruitunfiltreencosinussurélevée«gt»dontlabandepassanteestaumaximumW = 300,3400[ ]etcentréeautourdelafréquence

porteuse fc = 1700Hz .

Onendéduitdonclabandepassantedenotrefiltre:

Wf = 1700 !1400,1700 +1400] = 300,["# 3100] (3)

Page 8: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page8/18 MaEhieuCHARPENTIERMohamadFAWAZ

Orlabandeoccupéeparlaréponsefréquen4elledufiltreencosinussurélevéestdelaforme:

!1+"

2T

#

$%,1+"

2T

&

'( (4)

D’oùl’on4releroll‐offducosinussurelevé:

1+!

2T< 1400"! <

1400

1200#1 (5)

Alasor4edufiltre,onob4entdoncunsignalpassebasdontlabandeestW ;cesignalestensuitetransposé(étape2)autourde la fréquenceporteuse.Enfinon récupérer lapar4e réelleafindeformerlesignalpasse‐bande s

m(t) àtransmeEretelque:

sm (t) = Am cos(!m )cos(2" fct) # Am sin(!m )sin(2" fct) (6)

Figure6:RecapitulaFfduschémablocdelamodulaFondanslecasV.29

II.4. Lecanal

Le filtre surélevé crée précédemment lors de la modula4on jouent le rôle du canal encoupantlesfréquencesendehorsdelabandeallouée,W = 300,3400]!" .Ilsuffitdoncd’ajouterun

bruit blanc gaussien de densité spectraleN0

2au signal entre l’émeEeur et le récepteur pour

modéliserlecanaldetransmission.Onpeutnoterqu’onu4liseunbruitblancgaussienetnond’unautretypedufaitdu«théorèmedelalimitecentrale».Eneffet,lasommed'ungrandnombredevariables aléatoires est presque gaussienne, ce qui fournit une approxima4on souvent plusfacilementu4lisableetmodélisable.

Page 9: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page9/18 MaEhieuCHARPENTIERMohamadFAWAZ

II.5. LadémodulaFon

Ladémodula4onconsisteàretrouver lessymbolesgénérésà l’émissionàpar4rdusignalbruité,noté r(t) .Lemodulateurcons4tueundesdeuxprincipauxblocsdurécepteur:

Figure7:SchémablocdeladémodulaFon

Ilexistedeuxprincipalesméthodesdedémodula4on:

• Corrélateurs

• Filtresadaptés

DanslecasdelachaînedetransmissiondeV.29,nousavonsimplémentéundémodulateurfondé surunfiltreadaptédecosinus surélevé. A la sor4edu filtre le signalestéchan4llonnéàTs(périodesymbole)entenantcomptedesretardsprovoquéparlesdeuxfiltresàl’émissionetà

larécep4on.

Les symboles obtenus sont bruités mais proches des symboles émises. Ce train desymboles bruités entre dans le bloc de détec4onqui calcule la distance euclidienne de chaquesymbole avec tous les symboles de la constella4on. Ceci permet d’es4mer le symbole qui étaiteffec4vementémisd’aprèslecritèreML(MaximumLikelyhood)àdistanceminimale.

sm= argmin

sm

(rk! s

mk)2

k=0

N !1

"#

$%

&

'( (7)

II.6. Désembrouillage

Le polynôme cons4tué par la séquence reçue estmul4plié par le polynôme générateurpourretrouver lepolynômemessage.Lescoefficientsdupolynômeobtenu,prisdansl’ordredespuissances décroissantes, forment la successionD

0 des bits de données délivrés en sor4e. Le

schémadeprincipedudésembrouilleurestreprésentéfigure6.

Page 10: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page10/18 MaEhieuCHARPENTIERMohamadFAWAZ

Figure8:Schémadudésembrouilleur

Chacundesbitsdésembrouillésestdéfiniparlarela4onsuivante:

D0= D

i= D

s(1! x

"18! x

"23) (8)

III. Simula4onMatlab

III.1. ProgrammesMatlab

PourréaliserceEesimula4on,nousavonsimplémenté6fonc4onsetunprogrammeprincipale:

• «Bintodec.m»noustransformeunvecteurde3bitsenunnombredécimal.

• «debrouilleur.m»réaliselafonc4ondedébrouillagedumodem.

• «embrouilleur.m»réaliselafonc4ondebrouillagedumodem.

• «PAM_PSK.m» réalise lamodula4on PAM_PSK selon lesmodalités décrites dans lecahierdescharges

• «PAM_PSK_demod.m»réaliseladémodula4on.

• «esFmated_bits.m» nous renvoie un train de bits es4més à par4r des symboleses4més.

• «main.m»estleprogrammeprincipal,c’estceluiquipermetdelancerlasimula4on.

III.2. ParamétragedelasimulaFonsousMatlab

L’avis V.29 impose certains paramètres. Ainsi le débit est fixé à 9600 bits/s ce quicorrespondà2400baudspuisqu’ilya4bitsparsymbole.Lafréquencedusignalporteurestquantàellefixéeà1700Hzparlecahierdescharges.

Lesparamètresdenotrefiltredemiseen formesont jus4fiésdans lapar4emodula4on.NéanmoinsnousavonsWf = 300,3100[ ] etnotreRoll‐off! < 0.1667 .

Page 11: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page11/18 MaEhieuCHARPENTIERMohamadFAWAZ

Ensuite,lorsquelesignaltraverselesfiltresd’émissionetderécep4on,unretardapparaît.Afindeleprendreencomptedanslamodélisa4on,ondéfinitdesdélaisdelafaçonsuivante:

delay_ gt = 6

gt _delay = gr _delay = length(gt) / 2

!"#

(9)

Enfin,ilfautnoterquelegaindenotrefiltreadaptévamodifierl’amplitudedenotresignalet c’est donc pour cela que l’on divise l’amplitude du signal par la racine carré de la moi4é

l’énergiedufiltre(Eg

2).

Lesparamètresde la chaîneétantdéfiniset jus4fiés,nouspassonsà la simula4ond’unetransmissiondeblocsdesymbolesavecdesSNRvariantde‐3à10dB.

CeEesimula4onvanouspermeEredecomparer:

• laprobabilitéd’erreurthéoriquedessymboles,PMetleSER(Symbolserrorrate).

• LaProbabilitéd’erreurthéoriquedesbits,PbetleBER(Bitserrorrate)

Pb=2n!1

2n!1

PM (10)

Nousfixons laprécision pour ceEesimula4onà10%, cecinouspermeEradecalculer lenombred’erreuràaEeindrelorsdelatransmissiondesblocsdesymboles:

! = 0.1" nombre_d 'erreurs =1

!2= 100 erreurs (11)

Lechoixdenombresdeblocsainsique lenombresymbolesparblocsestchoisidetellesfaçonsquelenombred’erreursnesoitpasaEeinttropvite.Cecasseprésentelorsquelenombrede symboles par blocs est très élevé.D’où un compromis entre le nombre de blocs limite et lenombredesymbolesémisparblocs.

LaQAMétant la plus proche de notremodula4on PAM‐PSK en termes de constella4on,nousallonsdonccomparerleSERsimuléalaPMdelamodula4on16‐QAM:

PM= 1! (1! P

M)2 avec

PM= (1!

1

M)erfc(

3 "Emoy

2 " (M !1) "N0

Emoy =1

MEi

i=1

16

#

$

%

&&

'

&&

(12)

Page 12: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page12/18 MaEhieuCHARPENTIERMohamadFAWAZ

III.3. RésultatdelasimulaFon

Lerésultatdelasimula4onestsurlafigureci‐dessous:

-4 -2 0 2 4 6 8 1010

-3

10-2

10-1

100

Eb/N

0 (dB)

Pb

BER simulee

BER theorique

Figure9:RepresentaFondesperformancesentermesdeBER

Notre BER simulé se confond presque avec la courbe du BER théorique calculé à l’aided’une16‐QAM.Lesperformancesainsiobtenuesparnotre simula4onmontre laper4nencedesparamètresappliquésàlasimula4on.

Néanmoins, on remarquera que notre BER simulé se trouve légèrement au‐dessus de lacourbeduBERdela16‐QAM.Eneffet,unePAM‐PSKestlogiquementplusefficaceentermesdeBERqu’une16‐QAM.

IV. ConclusionAl’aidede l’ou4lMatlabetde la«communica4ontoolbox»,nousavonspusimulerune

chaînedetransmissionayantdepartetd’autreunmodemconformeàl’avisV.29référencéparl’IUT‐T.Nousavons toutd’abord implémentéchaqueblocenpartantdu centralpour sedirigerverslesextrémités.NousavonsalorstestélesperformancesdeceEechaînefaceaubruitetavonstrouvédesrésultatssa4sfaisantspuisqueconformesàlathéorie.

Page 13: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page13/18 MaEhieuCHARPENTIERMohamadFAWAZ

V. Bibliographie[1] BenoitESCRIG,coursdecommunicaFonsnumériques,ENSEIRB

[2] Patrice KADIONIK, Bases de transmissions numériques, les modula4ons numériques,ENSEIRB

[3] hEp://fr.wikipedia.org/

[4] Communica4onsdedonnéessurleréseautéléphonique,RecommandaFonUIT‐TV.29

VI. Annexes

VI.1. «Main.m»

close all clear all %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Recommendation UIT-T V.29 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %-------------------------------------------------------------------------- % Parameters %-------------------------------------------------------------------------- fe=96000; % sampling frequency fc=1700; % carrier frequency Ds=2400/fe; % symbol rate Ds=9600/n Ts=1/Ds; % symbol period Ns=200; % number of emitted symbols nb=4; %bits per symbols M=2^nb; Npts=Ns*Ts; % total number of samples time_axis=linspace(0,Ns,Npts); % time axis as numbers of symbol period carrier_signal=exp(j*2*pi*fc/fe*[0:Npts-1]); % carrier signal %-------------------------------------------------------------------------- % Filters parameters %-------------------------------------------------------------------------- delay_gt=6; % Propagation group delay of the SRRCF % (as a number of symbol period) roll_off=(1400/1200)-1; % Roll-off factor of the SRRCF gt=rcosfir(roll_off,delay_gt,Ts,1,'sqrt/fir'); % IR of the SRRCF Egt=sum(gt.^2); % Energy of the shaping filter gt_delay=length(gt)/2; % Propagation group delay of the SRRCF gr=fliplr(gt); % IR of the matched filter gr_delay=length(gr)/2; % Propagation group delay of the matched filter %-------------------------------------------------------------------------- % Parameters de simulation %-------------------------------------------------------------------------- EbN0dB=[-3:1:10]; % Eb/N0 ratio in dB EbN0=10.^(EbN0dB/10); % Eb/N0 ratio in linear scale Es=1/2*Egt*1/M*4*(2+9+18+25); % Energie moyenne par symbole envoyé Eb=Es/log2(M); N0=Eb./EbN0; % N0 computation %--------------------------------------------------------------------------

Page 14: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page14/18 MaEhieuCHARPENTIERMohamadFAWAZ

% Calcul du SER theorique %-------------------------------------------------------------------------- % SER et BER théorique d'une modulation 16-QAM SER_theo_QAM=1- (1-((1-1/sqrt(M))*erfc(sqrt(3*Es./(N0*2*(M-1)))))).^2; BER_theo=( (2^(nb-1))/(2^nb-1) )*SER_theo_QAM; %-------------------------------------------------------------------------- % Simulation %-------------------------------------------------------------------------- xx=waitbar(0,'Veuillez patienter ...'); % initiating the wait bar Nerror=100; % Target Number of Errors n_blocks_limit=130; % Maximum Number of emitted blocks SER=zeros(1,length(EbN0)); % SER Initialisation for n=1:length(EbN0dB) % For each value of Eb/N0 ratio waitbar(n/length(EbN0dB),xx); % updating the wait bar Nb_errors(n)=0; % Initializing the number of errors n_blocks(n)=0; % Initializing the number of emitted blocks BER(n)=0; while (Nb_errors(n)<Nerror)&&(n_blocks(n)<n_blocks_limit) % % The simulation run until one of the two % conditions is met %-------------------------------------------------------------------------- % Emission %-------------------------------------------------------------------------- symbols=zeros(1,Npts); % Generating a null signal emitted_bits=randint(1,Ns*4); % Generating the bits (0,1) scrambled_bits=embrouilleur(emitted_bits) ; % scrambling the bits emission symbols(1:Ts:Npts)=PAM_PSK(scrambled_bits,0); % Mapping the symbols symbols_emis=symbols(1:Ts:Npts); % Ns=NPTS/Ts emitted symbols signal=real( filter(gt,1,symbols).*carrier_signal ); % Generating the bandpass signal %-------------------------------------------------------------------------- % ADD Noise %-------------------------------------------------------------------------- noise=sqrt(N0(n)/2)*randn(1,Npts); % Noise computation r=sqrt(2/Egt)*signal.*conj(carrier_signal)+noise; % ADD noise to signal %-------------------------------------------------------------------------- % Matched Filters Demodulator (Reception using SRRCF) %-------------------------------------------------------------------------- rsig=filter(gr,1,r); % Matched Filter rumf=rsig(gt_delay+gr_delay:Ts:Ns*Ts); % Sampling estimated_symbols=PAM_PSK_demod(rumf/sqrt(Egt/2),0); % Detector estimated_bit=estimated_bits(estimated_symbols,0); discrambling_bits=debrouilleur(estimated_bit); nb_symbols_perdus=numel(symbols_emis)-numel(estimated_symbols); %% 988 =le nombre de symboles estime recue , il ya une perte de 12 %%derniers symboles. Nb_errors(n)=Nb_errors(n)+sum(conj(symbols_emis([1:Ns-nb_symbols_perdus]))'~=estimated_symbols); BER(n)=BER(n)+sum( emitted_bits([1:4*(Ns-nb_symbols_perdus)])~=discrambling_bits); % Accumulating the number of errors n_blocks(n)=n_blocks(n)+1; % Updating the number of emitted blocks end SER(n)=Nb_errors(n)/(n_blocks(n)*(Ns-nb_symbols_perdus)); % SER Computation BER(n)=BER(n)/(4*(n_blocks(n)*(Ns-nb_symbols_perdus)));

Page 15: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page15/18 MaEhieuCHARPENTIERMohamadFAWAZ

end close(xx); %-------------------------------------------------------------------------- % Figures %-------------------------------------------------------------------------- figure(1),plot(symbols(1:Ts:Npts),'*') title('la constellation') figure(9),plot(symbols(1:Ts:Npts),'*') title('la constellation, et symboles recus') hold on plot(rumf/sqrt(Egt/2),'r*') figure(2),plot(1:Ns,abs(symbols(1:Ts:Npts)),'*') title('Amplitude symbols') figure(3),plot(1:Ns,(angle(symbols(1:Ts:Npts)))*360/(2*pi),'*' ) title('Phase Absolus') figure(4),plot(time_axis,signal,'r') xlabel('[t/T]') title('Signal s(t)') figure(5),plot(abs(rumf/sqrt(Egt/2)),'ro') hold on,plot(1:Ns,abs(symbols(1:Ts:Npts)),'*') title('comparaison Amplitude emission-reception') figure(6),plot(angle(rumf)*360/(2*pi),'ro') hold on,plot(1:Ns,(angle(symbols(1:Ts:Npts)))*360/(2*pi),'*') title('comparaison Phase emission-reception') figure(7),plot(symbols(1:Ts:Npts),'*') hold on plot(estimated_symbols,'go') title('comparaison symbols emission-reception') figure(8) semilogy(EbN0dB,SER,'*') hold on semilogy(EbN0dB,SER_theo_QAM,'r') legend('SER simulee','SER theorique') xlabel('E_b/N_0 (dB)') ylabel('P_M') figure(10) semilogy(EbN0dB,BER,'r*') hold on semilogy(EbN0dB,BER_theo,'b') legend('BER simulee','BER theorique') xlabel('E_b/N_0 (dB)') ylabel('P_b') %-------------------------------------------------------------------------% % End of the program % %-------------------------------------------------------------------------%

VI.2. «bintodec.m»

function decimale=bintodec(v) %v=vecteur de 3 elements en binaire decimale=4*v(1)+2*v(2)+v(3);

Page 16: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page16/18 MaEhieuCHARPENTIERMohamadFAWAZ

VI.3. «debrouilleur.m»

function [bits_debrouilles]=debrouilleur(bits_embrouilles) %prend un vecteur de bits embrouillés en multiple de 4 en entree et renvoie un vecteur %contenant le flot de bits debrouillés registre = zeros(1,23); for k=1:length(bits_embrouilles) sortie(k) = xor(bits_embrouilles(k),xor(registre(18),registre(23))); registre = [bits_embrouilles(k) registre(1:22)]; end bits_debrouilles = sortie;

VI.4. «embrouilleur.m»

function [bits_embrouilles]=embrouilleur(bits_emis) %prend un vecteur de bits en multiple de 4 en entree et renvoie un vecteur %contenant le flot de bits embrouillés registre = zeros(1,23); for k=1:length(bits_emis) sortie(k) = xor(bits_emis(k),xor(registre(18),registre(23))); registre = [sortie(k) registre(1:22)]; end bits_embrouilles=sortie;

VI.5. «esFmated_bits.m»

function [bits]=estimated_bits(estimated_symbols,theta0) amplitudes=abs(estimated_symbols); %symbols amplitude phases_absolues=mod( (angle(estimated_symbols)*360/(2*pi)),360); %symbols phase vect_dephasage=( phases_absolues-[ theta0;phases_absolues([1:length(phases_absolues)-1]')+360]); vect_dephasage=mod(vect_dephasage,360); matrice_dephasage=[0 0 1;... 0 0 0;... 0 1 0;... 0 1 1;... 1 1 1;... 1 1 0;... 1 0 0;... 1 0 1 ]; vecteur_Q1= (amplitudes>3); matrice_Q2_Q3_Q4= matrice_dephasage((vect_dephasage/45 +1),:); matrice_Q1_Q2_Q3_Q4=[vecteur_Q1 matrice_Q2_Q3_Q4]; bits=reshape(matrice_Q1_Q2_Q3_Q4',[1,numel(matrice_Q1_Q2_Q3_Q4)]);

VI.6. «PAM_PSK.m»

function [emitted_symbols]=PAM_PSK(emitted_bits,theta0) %prend un vecteur des bits en multiple de 4 en entree, et la phase initiale %et donne en sortie un vecteur dont les elements sont de la forme %Ak exp(jOk)

Page 17: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page17/18 MaEhieuCHARPENTIERMohamadFAWAZ

quadruple=reshape(emitted_bits,4,length(emitted_bits)/4)'; %matrice dont les lignes sont les quadruplets Q1 Q2 Q3 Q4 dephasage=theta0; %dephasage initiale (souvent pris nulle) changement_de_phase=45*[1 0 2 3 6 7 5 4] ; % vecteur de de changement de phase placee d'une maniere %Astuce: le numero de l'element +1 =la valeur decimal de (Q2 Q3 Q4) %voir ligne 19 amplitudes=[3 5 sqrt(2) 3*sqrt(2) ]; %vecteur contenat les amplitudes relatives for k=1:length(emitted_bits)/4 %indices pointant sur chaque quadruplets de la matrice quadruple quadruplet=quadruple(k,:); %on code le keme quadruplet emis phase_relative=changement_de_phase( bintodec(quadruplet([2:4]))+1 ); % calcul de la phase relative grace a Q2 Q3 Q4 phase_absolue=mod( (phase_relative+dephasage),360) ; %la phase absolue modulo 2*pi au cas ou ca depasse 2*pi %l'amplitude du signal :si Q1=1 --->soit phase_absolue multiple pair de pi/4 % %donc amplitude_signal=5 % --->soit phase_absolue multple impaire de pi/4 % %donc amplitude_signal=3*sqrt(2) % si Q1=0 --->soit phase_absolue multiple pair de pi/4 %donc amplitude_signal=3 % --->soit phase_absolue multple impaire de pi/4 % %donc amplitude_signal=sqrt(2) %D'ou la formule suivante qui donne directement la valeur de l'amplitude : amplitude_signal=quadruplet(1)*( 5*(mod(phase_absolue/45,2)==0) + 3*sqrt(2)*( mod(phase_absolue/45,2)~=0 ))+... not(quadruplet(1))*( 3*(mod(phase_absolue/45,2)==0) + sqrt(2)*( mod(phase_absolue/45,2)~=0 )); emitted_symbols(k)=amplitude_signal*exp(j*phase_absolue*2*pi/360); % le point de la constellation correspondant a (Q1(k) Q2(k) Q3(k) Q4(k)) dephasage=phase_absolue; %mise a jour du dephasage pour le prochain symbole end

VI.7. «PAM_PSK_demod.m»

function [estimated_symbols]=PAM_PSK_demod(r,theta0) constellation =[PAM_PSK([0 0 0 0],0);... PAM_PSK([0 0 0 1],0);... PAM_PSK([0 0 1 0],0);... PAM_PSK([0 0 1 1],0); ... PAM_PSK([0 1 0 0],0);... PAM_PSK([0 1 0 1],0);... PAM_PSK([0 1 1 0],0);... PAM_PSK([0 1 1 1],0);... PAM_PSK([1 0 0 0],0);... PAM_PSK([1 0 0 1],0);... PAM_PSK([1 0 1 0],0);... PAM_PSK([1 0 1 1],0);... PAM_PSK([1 1 0 0],0);... PAM_PSK([1 1 0 1],0);... PAM_PSK([1 1 1 0],0);...

Page 18: Rapport Com Num

Communica4onsNumériquesENSEIRB‐Janvier2008

Page18/18 MaEhieuCHARPENTIERMohamadFAWAZ

PAM_PSK([1 1 1 1],0)]; matrice_r=ones(length(constellation),1)*r;%matrice ou dans tous les colonnes'il y a le vecteur r matrice_constellation=(constellation*ones(1,length(r))); D=(abs(matrice_constellation-matrice_r));% matrice des distance [I indice]=min(D); estimated_symbols=((constellation(indice)));