bonjour,
j'ai réalisé un programme sur le codage réseau analogique permettant de présenter ses performances. Néanmoins, je veux travailler sur la synchronisation de temps, de fréquence et de phase. Je n'ai pas pu le faire. Quelqu'un peut m'aider svp ?

Voici le code source :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
75
76
77
78
clear,clc
Frame=1000;
N=1000;
SNR_DB=0:4:40;
SNR=10.^(SNR_DB/10);
VAR=1./SNR;
bpsk1=[-1,1];
bpsk2=[-i,i];
for m=1:length(SNR)
    snr=SNR(m);
    var=VAR(m);
    errors(m)=0;
    s1(1)=1;
    s2(1)=1;
    for k=1:N
        h1=(randn(1,1)+i*randn(1,1));
        h2=(randn(1,1)+i*randn(1,1));  
        c1=randint(1,(Frame-1));
        c2=randint(1,(Frame-1));
        c1_mod=bpsk1(c1+1);
        c2_mod=bpsk2(c2+1);
        nr=sqrt(var)*(randn(1,Frame)+i*randn(1,Frame));
 
        yr(1)=h1*s1(1)+h2*s2(1)+nr(1);
    for n=2:Frame
 
        s1(n)=s1(n-1)*c1_mod(n-1);
        s2(n)=s2(n-1)*c2_mod(n-1); 
 
        yr(n)=h1*s1(n)+h2*s2(n)+nr(n);      
    end           
 
 
     a_demod1=sqrt((mean(yr*yr'))/Frame);  
       a_demod=1/a_demod1;
 
 
        n1=sqrt(var)*(randn(1,Frame)+i*randn(1,Frame));
 
        y1=a_demod*h1*conj(yr)+n1;     
 
        for n=2:Frame
        y1_demod(n)=conj(c1_mod(n-1))*y1(n-1)-y1(n);  
 
        c_mod(n-1)=(c1_mod(n-1)-c2_mod(n-1))*conj(c1_mod(n-1)-c2_mod(n-1));
        end       
 
       u_det=y1*y1'/Frame-y1_demod*y1_demod'/(Frame*mean(c_mod));
 
       if u_det>0
           u_demod=sqrt(u_det);
       else
           u_demod=0;
       end
 
       for n=2:Frame
 
         y1_det(1)=y1(1)-u_demod*conj(s1(1));
         y1_det(n)=y1(n)-u_demod*conj(s1(n));
 
       for x=1:2
         c2_max(x)=real(y1_det(n)*conj(y1_det(n-1))*bpsk2(x));
       end
        b=find(c2_max==max(c2_max));
        c2_demod(n-1)=bpsk2(b);
       if imag(c2_demod(n-1))<0
           c2_det(n-1)=0;
       else
           c2_det(n-1)=1;
       end  
        errors(m)=errors(m)+(c2_det(n-1)~=c2(n-1));
       end      
    end 
    ber(m)=errors(m)/(Frame*N) 
end
semilogy(SNR_DB,ber,'r');
legend('ANC');
grid on;