1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
clear;
clc ;
close all;
k=2; %Ordre de modulation%
Nsymb=20;%Nbre de symbole
N=16;% le taux d'échantillonage
SNR=1; %rapport signal sur bruit en Db
%---------Paramètres du filtre de mise en forme
g=ones(N,1);
Eg=sum(abs(g).^2); % Eg=16
g=g/sqrt(Eg); % Eg=1 normalisation de l energie de l impulsion a l unité
Eg=sum(abs(g).^2);
%---------Generation des donnees binaires
rand ('state', 13215); randn ('state', 13215);
data_tx=rand(Nsymb*k,1)>0.5; % Données logiques
subplot(511);
stem (data_tx,'r');grid on;
%---------Mapping
symb_tx=qam(data_tx,k);
subplot(512);
stem (symb_tx,'b');grid on;
break;
%--------constellation à l emission
% scatterplot(symb_tx,1,0,'bo');grid on;%1 ne sauter aucun elt 0 commencer ar 0
%--------Upsampling
symb_tx_up=upsample(symb_tx,N);
subplot(513);
stem (symb_tx_up,'b');grid on;
%---------Filtrage d'émission
sig_tx=filter(g,1,symb_tx_up);
subplot(514);plot (real(symb_tx_up),'r');grid on;
%---------ajout du bruit blanc gaussien
sig_rx=awgn(sig_tx,SNR,'measured');
subplot(515);plot(real(sig_rx),'m');grid on;
%--------Filtrage de reception %
symb_rx_up=filter(g,1,sig_rx);
figure(2);
subplot(411);plot (real(symb_rx_up),'r');grid on;
%-------downsampling(echantillonnage)
symb_rx=symb_rx_up(N:N:end);
subplot(412);stem(real(symb_rx),'m');grid on;
% -------demapping
data_rx=demodqam(symb_rx,k);
subplot(413);stem(real(data_rx),'r');grid on;
%--------constellation à la reception
% scatterplot(symb_rx,1,0,'ro');grid on;
%--------comparaison de données
vec_err=xor(data_tx,data_rx);% on retrouve l erreur dans un seul point si on a pas d'erreur on retrouve 1
N_err=sum(vec_err);
subplot(414);stem(real(vec_err),'m');grid on;
%Diagramme oeil
eyediagram(symb_rx_up,N,1,0);% le 1 est la periode -t/2 et +t/2 le 0 est l offset
grid on; |
Partager