L'objectif de ce TP sera de modéliser, sous Matlab, une chaîne de communication numérique de l'émission jusqu'à la réception des données. Cette chaîne pourra se représenter ainsi :
Data - Modulation - Filtrage - Canal de transmission - Réception - Data
Par la suite nous détaillerons chacune des étapes du schéma ci-dessus.
[...] Data Du côté de l'émetteur, nous avons une source de données Data qui envoie des données binaires, exemple : 001101 Code Matlab for n=1:nbits if rand [...]
[...] Nous obtenons alors un signal numérique. Une fois le signal modulé, nous faisons 1 sur échantillonnage afin d'avoir des valeurs intermédiaire entre 2 bits. Nous obtenons ainsi un signal se rapprochant davantage d'un signal analogique. Code Matlab % Modulation for n=1:nbits if data(n)==0; signalmod(n)=-1; else signalmod(n)=1; end end figure(1) subplot(5,1,1); plot(signalmod,'o');title('Signal modulé'); % Sur échantillonnage : num ana nb_ech_symb=64; signal_se=zeros(1,nb_ech_symb*nbits); for n=1:nbits signal_se(n*nb_ech_symb)=signalmod(n); end subplot(5,1,2); plot(signal_se); title('Signal sur échantillonné'); Canaux de transmission à bande limitée Dans la réalité, il n'est pas possible de transmettre un signal sur toute la gamme de fréquences mais sur une bande limitée. [...]
[...] Exemple : S On connaît la période du signal reçu donc, a chaque période, on regarde si la valeur du signal est supérieure à 0 (symbole ou inférieure (symbole ‘0'). Si le signal émis a bien respecté certains critères (diagramme de l'œil, rapport signal sur bruit), alors le risque d'erreur est faible. [...]
[...] Donc pour simuler un canal de transmission, nous allons ajouter du bruit et plus particulièrement du bruit blanc Gaussien : Code Matlab % Canal AWGN (ajout de bruit blanc gaussien) 0.008 bruit=a*randn(1,nbits*nb_ech_symb); for n=1:nbits*nb_ech_symb sigbruit(n)=sigfilt(n)+bruit(n); end figure(1) subplot plot(sigbruit);title('Signal bruité'); subplot plot(real(fft(sigbruit)));title('Spectre signal bruité'); Il est ensuite possible d'ajuster le bruit, notamment en calculant le rapport signal sur bruit qui nous donne un bon repère de la quantité de bruit par rapport au signal émis : RSBdb = 10 log ( Ps / Pb ) Ps : Puissance du signal Pb : puissance du bruit Code Matlab % Rapport signal / bruit Pb=1/nbits*sum(bruit.^2); Ps=1/nbits*sum(signalmod.^2); RSB=Ps/Pb; RSBdb=10*log10(RSB) Un autre moyen de savoir si le bruit n'est pas trop important et que le signal original pourra être retrouvé sans trop d'erreurs est le diagramme de l'oeil : Si l'œil du diagramme est ouvert, c'est qu'il sera facile de retrouver le signal à la réception, mais si l'œil se ferme alors il y a un gros risque d'erreurs à la réception. Un moyen d'ouvrir l'œil en cas de bruit trop élevé est d'augmenter la bande passante de notre signal et donc du filtre cosinus surélevé. Code Matlab % Diagramme de l'oeil figure(3) for i=512:2*nb_ech_symb:nb_ech_symb*nbits plot(sigfilt(i:i+2*nb_ech_symb)) hold on; end Réception A la réception on peut retrouver le mot envoyé en seuillant le signal reçu. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture