0% ont trouvé ce document utile (0 vote)
149 vues10 pages

Récepteurs optimaux pour canaux AWGN

Ce document décrit un travail pratique sur la modulation et la démodulation numérique pour un canal à bruit blanc gaussien. Il présente les étapes à suivre pour générer un signal QAM, l'analyser après passage dans un canal bruité, puis extraire le signal en bande de base et concevoir un détecteur optimal.

Transféré par

Ayoub ZAHRAOUI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
149 vues10 pages

Récepteurs optimaux pour canaux AWGN

Ce document décrit un travail pratique sur la modulation et la démodulation numérique pour un canal à bruit blanc gaussien. Il présente les étapes à suivre pour générer un signal QAM, l'analyser après passage dans un canal bruité, puis extraire le signal en bande de base et concevoir un détecteur optimal.

Transféré par

Ayoub ZAHRAOUI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Institut National des Télécommunications et des Technologies de l’Information et

de la Communication d’Oran

Module : Radiocommunications Numériques

TP : N°04
Optimum Receivers for
AWGN Channels

Préparé par : Mr Roumane Ahmed


Année universitaire : 2020/2021.
Estimation du temps nécessaire : 10h

Objective :

Comprendre la génération et l’analyse des signaux passe bande : Modulations numériques.


Démodulation, détection d’enveloppe, récepteur Optimal pour un canal AWGN

Se préparer au TP :

Il est recommandé de réviser les points suivants : Transformée d’Hilbert, signal analytique,
représentation vectorielle des signaux sur une base orthonormée, produit scalaire pour vecteur ou
fonction/signal, distance euclidienne, détection optimal pour un canal AWGN.

Voir les annexes.

Travail demandé :

Remarque : mettez votre script principal dans un fichier « .m » et Commentez tous les ligne de code que
vous introduisez. En cas de plusieurs fichiers, mettez-les dans un seul répertoire qui porte votre nom et
l’intitulé du TP.

Assurez-vous que l’exécution des fichiers « .m » fonctionne comme prévue (surtout la clarté de
l’affichage).

1. Préparer un signal binaire « s » contenant 1000 points et générer le signal modulé en 4-QAM en
bande de base. Tracer le signal temporel, le diagramme de constellation et le spectre.
2. Introduire la modulation QAM sur porteuse (fc=2*le débit symbole) et afficher les formes d’onde
avec le spectre correspondant. Comparer les résultats trouvés dans 1 et 2.
3. Que pouvez-vous dire sur l’enveloppe du signal ?
4. Faire passer le signal QAM passe bande dans un canal AWGN et observer l’effet du canal dans les
graphes cités. Justifier l’affichage.

Traitement coté récepteur :

5. Pour extraire le signal équivalent en bande de base, déterminer les expressions de ri(t) et rq(t)
puis implémenter le traitement illustré dans le schéma suivant :

Page 2 of 10
6. Quelle est l’utilité du traitement de l’étape (5) ? (Voir annexe 02)
7. Challenge :
Concevoir puis implémenter le détecteur optimal adéquat à ce signal. (Voir annexe 02)
Tracer la constellation et déterminer son taux d’erreurs.
8. Rédiger une conclusion générale qui résume ce que vous avez appris dans ce travail.

Page 3 of 10
Annexe 01

Some useful commands:

x = hilbert( xr ) % returns the analytic signal, x , from a real data sequence, xr

fe=8000; % define a Sampling Freq => Ts=1/8000 = 125 µs

s=[1:1:10]; % Example of Data

x=dec2bin(s);

x=x(:);

y=bin2dec(x(1:1:end,1)); % one column amplitudes

pulse= ones(50,1) ;% Rect pulse of T = 50*1/8000= 6.3 ms

Fc=4000; t=[0: 1/8000: (50-1)*1/8000];

cos_wave=cos(2*pi*Fc*t);

sin_wave=sin(2*pi*Fc*t);

sig =pulse*(y');

bas_bnd_sig = sig (:);

plot(bas_bnd_sig) % Adding noise

Noisy_bas_bnd_sig= Bas_bnd_sig + 0.2*randn(size(Bas_bnd_sig));

[Psd1,freq] = pwelch(Bas_bnd_sig(1:end,1),512,0,512,fe); plot (freq, 10*log10(Psd1))

%Eye Diagram

Start_eye_data =1; % Offset in starting of display eyediagram unit:symbol period.

End_eye_data = 100; % Number of symbols displayed in the eyediagram

Delay = 0.9; % Channel transmission time. Unit: symbol period.

Nb_Pt_Pls = 50 %samples per impulse

P=3; % Number of symbol period to be displayed in eye diagram

eyediagram(N_Out_Chan(round((Start_eye_data+Delay)*Nb_Pt_Pls):End_eye_data*Nb_Pt_Pls,:),P*Nb_
Pt_Pls,P);

delayed_out=[zeros(10,1); Bas_bnd_sig];

clear all; close all; clc

%QPSK

%Set the modulation order

Page 4 of 10
Annexe 01

M = 16;

%Generate random data symbols.

data = randi([0 M-1],1000,1);

%Modulate the data symbols.

txSig = pskmod(data,M,pi/M);

%Pass the signal through white noise and plot its constellation.

rxSig = awgn(txSig,20);

scatterplot(txSig)

scatterplot(rxSig)
numErrs = symerr(dataIn,dataOut)
%Modulate and demodulate the data using Gray and natural binary encoded data.
symgray = pskmod(data,M,phz,'gray');
mapgray = pskdemod(symgray,M,phz,'gray');

symbin = pskmod(data,M,phz,'bin');
mapbin = pskdemod(symbin,M,phz,'bin');
pxx = pwelch(x) returns the (PSD) estimate of x.
When x is a matrix, the PSD is computed independently for each column and stored in the corresponding
column of pxx.

To set the DC in the middle :

plot(psd(spectrum.welch,pb_sig(:),'Fs',fe,'CenterDC',true));

x2_2bit_words=reshape(x2, 20, 2)

00 -> 1 + j; 01 -> 1 – j; 10 -> -1+j; 11 -> -1-j

qam_clpx_symb=zeros(20,1);

for i = 1:20

switch bin2dec(x2_2bit_words(i,:))

case 0

qam_clpx_symb(i)= 1+j

case 1

qam_clpx_symb(i)= 1-j

case 2

Page 5 of 10
Annexe 01

qam_clpx_symb(i)= -1+j

case 3

qam_clpx_symb(i)= -1-j

end

end

qam _I=real(qam_clpx_symb);

qam _Q=imag(qam_clpx_symb);

qam_Q=cos_wave'*imag(bas_bnd_qam)';

qam_basband_I=pulse* qam _I’

qam_basband_Q= pulse*qam _Q’

#qam_basband_I= qam_basband_I(:) # to plot

#qam_basband_Q= qam_basband_Q(:)

qam_bandPas= cos_wave'* qam _I’ - sin_wave'*qam _Q’

#Demodulation:

r_anltc_x2 = hilbert( qam_bandPas) ;

r_=real(r_anltc_x2);

r_hlb=imag(r_anltc_x2);

>> r_Q=zeros(size(r_));

>> r_I=zeros(size(r_));

for j =[1:20]

r_I(:,j)= cos_wave'.*r_(:,j) + sin_wave'.*r_hlb(:,j);

r_Q(:,j)= -sin_wave'.*r_(:,j) + cos_wave'.*r_hlb(:,j);

end

filtred_r_Q= conv(r_Q(:,1),pulse);

Page 6 of 10
Annexe 2

Modulator:

Page 7 of 10
Annexe 2

Page 8 of 10
Annexe 2

Page 9 of 10
Annexe 2

Page 10 of 10

Vous aimerez peut-être aussi