Bonsoir, je suis un débutant dans MATLAB, mnt je réalise un mini projet dans le but est d'introduire un signal binaire, le transformez en donnés bipolaire et puis le multiplier par un code de walsh et par la suite le multiplier une autre fois par le meme code , et extraire au final l'information ( signal binaire) qu'on a introduit. le code est en-dessous.

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
clc
clear
signal=[1 0 1 0]
if signal(1)>0
    a=1;
else a=-1;
end
    if signal(2)>0
    b=1;
else b=-1;
    end
    if signal(3)>0
    c=1;
else c=-1;
    end
    if signal(4)>0
    d=1;
else d=-1;
    end 
signal_bip=[a,b,c,d];
signal_bip
 
%Générateur de code walsh
code_length=4;             % Longueur de code.
code=[1];        % H1=1
[r1 c1]=size(code);
while r1<code_length 
 
    for i=1:r1                  % loop#1:
        for j=1:c1
            code(i+r1,j)=code(i,j);
        end
    end
 
    for j=1:c1             % Loop#2: 
        for i=1:r1
            code(i,j+c1)=code(i,j);
        end
    end
    % Loop#3: diagonal part
    for i=1:r1
        for j=1:c1
            code(i+r1,j+c1)=-1*code(i,j);
        end
    end
    [r1 c1]=size(code);
end
 
% verification de l'orthogonalité
somme=0;
data=[];
rows=[];
for i=1:r1
    A=code(i,: );
    for j=1:r1
        B=code(j,: );
        for k=1:c1
            somme=somme+A(k)*B(k);
        end
        data=[data somme];
        somme=0;
    end
    count=0;
    for h=1:length(data)
        if data(h)>0
            count=count+1;
        end
    end
    data=[];
    if count<=1
        rows=[rows i];
    end
end
code_walsh=code
if length(rows)==r1
    fprintf('Les codes de walsh sont orthogonaux entre eux')
    somme_walsh=somme
else 
    fprintf('il existe des codes qui sont pas orthogonaux')
    rows
end
 
A_etale=[signal_bip(1)*code(1),signal_bip(1)*code(2),signal_bip(1)*code(3),signal_bip(1)*code(4),signal_bip(2)*code(5),signal_bip(2)*code(6),signal_bip(2)*code(7),signal_bip(2)*code(8),signal_bip(3)*code(9),signal_bip(3)*code(10),signal_bip(3)*code(11),signal_bip(3)*code(12),signal_bip(4)*code(13),signal_bip(4)*code(14),signal_bip(4)*code(15),signal_bip(4)*code(16)];
A_etale
A_etale_code=[A_etale(1)*code(1),A_etale(2)*code(2),A_etale(3)*code(3),A_etale(4)*code(4),A_etale(5)*code(5),A_etale(6)*code(6),A_etale(7)*code(7),A_etale(8)*code(8),A_etale(9)*code(9),A_etale(10)*code(10),A_etale(11)*code(11),A_etale(12)*code(12),A_etale(13)*code(13),A_etale(14)*code(14),A_etale(15)*code(15),A_etale(16)*code(16)];
A_etale_code
 
if A_etale_code(1)+A_etale_code(2)+A_etale_code(3)+A_etale_code(4)<0
    m=0;
else m=1;
end
if A_etale_code(5)+A_etale_code(6)+A_etale_code(7)+A_etale_code(8)<0
    n=0;
else n=1;
end
if A_etale_code(9)+A_etale_code(10)+A_etale_code(11)+A_etale_code(12)<0
    o=0;
else o=1;
end
if A_etale_code(13)+A_etale_code(14)+A_etale_code(15)+A_etale_code(16)<0
    p=0;
else p=1;
end
fprintf('l"information qu"on a envoyé est:')
information=[m,n,o,p]
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mes petitions sont:

-comment introduire une fonction qui transforme la matrice [1 0 1 0] en [1 -1 1 -1]
-comment tracer le signal 1 0 1 0

Merci