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]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
Partager