function illus_oeil(choix_canal,sigma);

% function illus_oeil(choix_canal,sigma);
%
% Illustration de l'egalisation:
% * trace sequence binaire (16 pts par symboles)
% * filtrage canal
% * diagramme de l'oeil
%
% choix_canal = 3;
%     1: Brossier, alpha = 0.95*exp(i)
%     2: Brossier, alpha = 0.25*exp(i)
%     3: passe-bas 1
%     4: passe-bas 2
% sigma = ecart-type du bruit
%
% Marc Castella, 23/03/2006
% INT (Institut National des Telecommunications), Departement CITI
% Evry, France

%
% modifications a prevoir:
%   - entree du SNR au lieu de sigma
%   - normaliser pour gain unite a frequence nulle

% sequence emise
nechps = 16; %nombre d'echantillons par symbole
nsymb = 200;  %nombre de symboles
a = 2*(unidrnd(2,1,nsymb)-1.5);
s = reshape(repmat(a,nechps,1),1,nechps*length(a));
Ne = nsymb*nechps;

figure(4); clf; figure(3); clf; figure(2); clf; figure(1); clf;
subplot(2,1,1); plot(s); axis([0 500 -1.5 1.5]); title('Signal emis');

% canal
switch choix_canal,
    case 1,
        % filtre livre J.-M. Brossier
        alpha = 0.95*exp(i);
        num_h = 1-alpha;
        den_h = [1 -alpha];
    case 2,
        % filtre livre J.-M. Brossier
        alpha = 0.25*exp(i);
        num_h = 1-alpha;
        den_h = [1 -alpha];    
    case 3,
        z1 = -0.7;
        p1 = 0.8;
        num_h = [1 -z1]*0.2; 
        den_h = [1 -p1];
    case 4,
        z1 = -0.7;
        p1 = 0.8;
        num_h = [1 -z1]*0.3; num_h = conv(num_h,num_h);
        den_h = [1 -p1];
    case 'autre',
        error('A faire plus tard');
        % z1 = 0.98*exp(i*2*pi/3);
        % p1 = 0.9*exp(i*pi/2); p2 = -0.9;
        % num_h = conv([1 -z1],[1 -z1]);
        % den_h = 1;%conv([1 -p1],1);
        % % 
        % 
        % num_h = fir1(40,[0.6 0.62],'stop')
        % den_h = 1;
end;

figure(2); 
subplot(2,2,1); zplane(num_h,den_h); title('Poles et zeros du canal');
[H,F] = freqz(num_h,den_h,512,'whole',1);
disp('Appuyer sur une touche pour continuer'); pause;
subplot(2,2,2); plot(F,20*log(abs(H))); axis([0 1 min(20*log(abs(H))) max(20*log(abs(H)))]); grid;
ylabel('Amplitude en dB'); xlabel('Frequence normalisee');
title('Reponse frequentielle');
[h,t] = impz(num_h,den_h,100);
subplot(2,2,3); plot(real(h)); title('Partie reelle RI');
%subplot(2,2,4); plot(imag(h)); title('Partie imag RI');
disp('Appuyer sur une touche pour continuer'); pause;

x = filter(num_h,den_h,s) + sigma/sqrt(2)*(randn(size(s))+i*randn(size(s)));
figure(1); 
subplot(2,1,2); plot(1:Ne,real(x),'b',1:Ne,s,'r-.'); axis([0 500 -4 4]); title('Signal recu (partie Re)');

figure(3);
x_oeil = reshape(x,nechps*2,nsymb/2);
plot(real(x_oeil),'b'); title('Diagramme de l''oeil (sur une duree 2T_s)');

figure(4);
plot(real(x),imag(x),'b.',real(s),imag(s),'r.');
title('Constellation avant et apres canal');
disp('--- Fin ---');
