Upload
jalila-mahmoud
View
66
Download
0
Embed Size (px)
Citation preview
Type equation here.
PROJETTELECOMMUNICATIONS
SIMULATIOND’UNECHAINEDETRANSMISSIOND’UNMODEMV.29ETETUDEDESPERFORMANCESDELACHAINEDE
TRANSMISSION
MOHAMADFAWAZ
MATTHIEUCHARPENTIER
T2‐TELECOM,S3,JANVIER2008,ENSEIRB
Professeur:BenoitESCRIG
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
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
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.
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)
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
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)
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.
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.
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 .
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)
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.
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 %--------------------------------------------------------------------------
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)));
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);
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)
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);...
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)));