Somme
Fermé
Alleguiemna
Messages postés
11
Date d'inscription
dimanche 27 avril 2014
Statut
Membre
Dernière intervention
23 mai 2014
-
22 mai 2014 à 14:48
Alleguiemna Messages postés 11 Date d'inscription dimanche 27 avril 2014 Statut Membre Dernière intervention 23 mai 2014 - 23 mai 2014 à 10:41
Alleguiemna Messages postés 11 Date d'inscription dimanche 27 avril 2014 Statut Membre Dernière intervention 23 mai 2014 - 23 mai 2014 à 10:41
A voir également:
- Somme
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Somme de x dans excel ✓ - Forum Excel
- Somme si date inférieur à aujourd'hui ✓ - Forum Excel
2 réponses
JulienJust
Messages postés
139
Date d'inscription
mardi 25 juin 2013
Statut
Membre
Dernière intervention
2 septembre 2014
18
Modifié par JulienJust le 23/05/2014 à 09:38
Modifié par JulienJust le 23/05/2014 à 09:38
Bonjour,
On ne comprends pas très bien ce que tu veux faire avec ce vecteur (est-ce vraiment un vecteur, ou est-ce une matrice ?)...
Et ton script est quasi-illisible sans les indentations...
Cdlt
On ne comprends pas très bien ce que tu veux faire avec ce vecteur (est-ce vraiment un vecteur, ou est-ce une matrice ?)...
Et ton script est quasi-illisible sans les indentations...
Cdlt
Alleguiemna
Messages postés
11
Date d'inscription
dimanche 27 avril 2014
Statut
Membre
Dernière intervention
23 mai 2014
Modifié par Alleguiemna le 23/05/2014 à 11:19
Modifié par Alleguiemna le 23/05/2014 à 11:19
bonjour,
Réellement a1 est un signal ayant les amplitudes suivants( 3 1 -1 1 -1 -3 -1 1 1 3 1 -1), et je voudrais faire la déconvolution(chaque bits est codé par 4 pour le déconvolution les 4 bits sont représentés par un bit)
je voudrais calculer la somme de chaque 4 bit puis décider si la somme est positif le bit est 1 sinon le bit est égal a -1.
Dans mon travail j'ai 3 utilisateurs chacun émis un signal qui est codé par un code spécifique à chaque utilisateurs puis étalés.
Ensuite la somme des signaux étalés est transmise dans un canal (qui ajoute un bruit a cette somme) vers les destinataires(qui sont les récepteurs).
Chaque récepteur multiplie la somme qu'il reçoit par son propre code pour obtenir le signal lui est envoyé, c'est a cette étape je voudrais faire la déconvolution mais rien ne s'affiche.
Le code suivant contient toute les étapes:
clear all;
close all;
clc;
us=3;
m1=[1 -1 1];nb1=length(m1);
c1=[1 -1 1 -1];L1=length(c1);
b1=ones(1,L1);b0=-1.*ones(1,L1);
%//utilisateur1//%--------------------------------------------------------
mb1=[];mc1=[];
for i=1:nb1
if m1(i)==1
mb1=[mb1 b1];
cc1=c1;
else
mb1=[mb1 b0];
cc1=c1;
end
mc1=[mc1 cc1];
end
%signal étalé
tb1=mb1.*mc1;
nbits1=length(mb1);
T=1;%Période
A=1;%Amplitude
figure(1);
subplot (3,1,1);
stairs(mb1);
title('Signal de l''utilisateur 1');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits1
line([n n],[mb1(n) mb1(n)])
line([n n+T],[mb1(n) mb1(n)])
if mb1(n)~= mb1(n-1)
line([n n],[0 1])
end
end
nbits2=length(mc1);
T=1;%Période
A=1;%Amplitude
subplot (3,1,2);
stairs(mc1);
title('Code d''étalement de l''utilisateur 1');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits2
line([n n],[mc1(n) mc1(n)])
line([n n+T],[mc1(n) mc1(n)])
if mc1(n)~= mc1(n-1)
line([n n],[0 1])
end
end
nbits3=length(tb1);
T=1;%Période
A=1;%Amplitude
subplot (3,1,3);
stairs(tb1);
title('Signal étalé de l''utilisateur 1');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits3
line([n n],[tb1(n) tb1(n)])
line([n n+T],[tb1(n) tb1(n)])
if tb1(n)~= tb1(n-1)
line([n n],[0 0])
end
end
%//utilisateur2//%---------------------------------------------------------
m2=[1 1 0];nb2=length(m2);
c2=[1 1 -1 -1];L2=length(c2);
b1=ones(1,L2);b0=-1.*ones(1,L2);
mb2=[];mc2=[];
for i=1:nb2
if m2(i)==1
mb2=[mb2 b1];
cc2=c2;
else
mb2=[mb2 b0];
cc2=c2;
end
mc2=[mc2 cc2];
end
%signal étalé
tb2=mb2.*mc2;
nbits4=length(mb2);
T=1;%Période
A=1;%Amplitude
figure(2);
subplot (3,1,1);
stairs(mb2);
title('Signal de l''utilisateur 2');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits4
line([n n],[mb2(n) mb2(n)])
line([n n+T],[mb2(n) mb2(n)])
if mb2(n)~= mb2(n-1)
line([n n],[0 1])
end
end
nbits5=length(mc2);
T=1;%Période
A=1;%Amplitude
subplot (3,1,2);
stairs(mc2);
title('Code d''étalement de l''utilisateur 2');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits5
line([n n],[mc2(n) mc2(n)])
line([n n+T],[mc2(n) mc2(n)])
if mc2(n)~= mc2(n-1)
line([n n],[0 1])
end
end
nbits6=length(tb2);
T=1;%Période
A=1;%Amplitude
subplot (3,1,3);
stairs(tb2);
title('Signal étalé de l''utilisateur 2');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits6
line([n n],[tb2(n) tb2(n)])
line([n n+T],[tb2(n) tb2(n)])
if tb2(n)~= tb2(n-1)
line([n n],[0 0])
end
end
%//utilisateur3//%---------------------------------------------------------
m3=[0 1 0];nb3=length(m3);
c3=[-1 1 1 -1];L3=length(c3);
b1=ones(1,L3);b0=-1.*ones(1,L3);
mb3=[];mc3=[];
for i=1:nb3
if m3(i)==1
mb3=[mb3 b1];
cc3=c3;
else
mb3=[mb3 b0];
cc3=c3;
end
mc3=[mc3 cc3];
end
%signal étalé
tb3=mb3.*mc3;
nbits7=length(mb3);
T=1;%Période
A=1;%Amplitude
figure(3);
subplot (3,1,1);
stairs(mb3);
title('Signal de l''utilisateur 3');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits7
line([n n],[mb3(n) mb3(n)])
line([n n+T],[mb3(n) mb3(n)])
if mb3(n)~= mb3(n-1)
line([n n],[0 1])
end
end
nbits8=length(mc3);
T=1;%Période
A=1;%Amplitude
subplot (3,1,2);
stairs(mc3);
title('Code d''étalement de l''utilisateur 3');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits8
line([n n],[mc3(n) mc3(n)])
line([n n+T],[mc3(n) mc3(n)])
if mc3(n)~= mc3(n-1)
line([n n],[0 1])
end
end
nbits9=length(tb3);
T=1;%Période
A=1;%Amplitude
subplot (3,1,3);
stairs(tb3);
title('Signal étalé de l''utilisateur 3');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits9
line([n n],[tb3(n) tb3(n)])
line([n n+T],[tb3(n) tb3(n)])
if tb3(n)~= tb3(n-1)
line([n n],[0 0])
end
end
%//Somme des signaux sans et avec bruit//%---------------------------------
tb=tb1+tb2+tb3;
nbits10=length(tb);
T=1;%Période
A=1;%Amplitude
figure(4);
subplot (2,1,1);
stairs(tb);
title('Signal reçu sans bruit');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -4.5 A+3.5]);
grid on;
hold on;
for n=2:nbits10
line([n n],[tb(n) tb(n)])
line([n n+T],[tb(n) tb(n)])
if tb(n)~= tb(n-1)
line([n n],[0 0])
end
end
g=awgn(tb,10);
nbits11=length(g);
T=1;%Période
A=1;%Amplitude
subplot (2,1,2);
stairs(g);
title('(b) Signal reçu avec bruit');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -4.5 A+3.5]);
grid on;
hold on;
for n=2:nbits11
line([n n],[g(n) g(n)])
line([n n+T],[g(n) g(n)])
if g(n)~= g(n-1)
line([n n],[0 0])
end
end
%//Multiplication de la somme par le code de l'utilisateur1//--------------
a1=mc1.*tb;
for i=1:length(a1)
for j=1:4
s=0;
s=sum(a1(j));
disp(s);
end
if(s>0)
des=1;
else
des=-1;
end
end
nbits13=length(a1);
T=1;%Période
A=1;%Amplitude
figure(6);
subplot (2,1,1);
stairs(a1);
title('Multiplication de code de l''utilisateur 1 par le signal reçu');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -4 A+3.5]);
grid on;
hold on;
for n=2:nbits13
line([n n],[a1(n) a1(n)])
line([n n+T],[a1(n) a1(n)])
if a1(n)~= a1(n-1)
line([n n],[0 0])
end
end
nbits14=length(des);
T=1;%Période
A=1;%Amplitude
subplot (2,1,2);
stairs(des);
title('Signal origine aprés décision de l''utilisateur 1');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits14
line([n n],[des(n) des(n)])
line([n n+T],[des(n) des(n)])
if des(n)~= des(n-1)
line([n n],[0 1])
end
end
j'espère que ça va vous guider.
merci.
Réellement a1 est un signal ayant les amplitudes suivants( 3 1 -1 1 -1 -3 -1 1 1 3 1 -1), et je voudrais faire la déconvolution(chaque bits est codé par 4 pour le déconvolution les 4 bits sont représentés par un bit)
je voudrais calculer la somme de chaque 4 bit puis décider si la somme est positif le bit est 1 sinon le bit est égal a -1.
Dans mon travail j'ai 3 utilisateurs chacun émis un signal qui est codé par un code spécifique à chaque utilisateurs puis étalés.
Ensuite la somme des signaux étalés est transmise dans un canal (qui ajoute un bruit a cette somme) vers les destinataires(qui sont les récepteurs).
Chaque récepteur multiplie la somme qu'il reçoit par son propre code pour obtenir le signal lui est envoyé, c'est a cette étape je voudrais faire la déconvolution mais rien ne s'affiche.
Le code suivant contient toute les étapes:
clear all;
close all;
clc;
us=3;
m1=[1 -1 1];nb1=length(m1);
c1=[1 -1 1 -1];L1=length(c1);
b1=ones(1,L1);b0=-1.*ones(1,L1);
%//utilisateur1//%--------------------------------------------------------
mb1=[];mc1=[];
for i=1:nb1
if m1(i)==1
mb1=[mb1 b1];
cc1=c1;
else
mb1=[mb1 b0];
cc1=c1;
end
mc1=[mc1 cc1];
end
%signal étalé
tb1=mb1.*mc1;
nbits1=length(mb1);
T=1;%Période
A=1;%Amplitude
figure(1);
subplot (3,1,1);
stairs(mb1);
title('Signal de l''utilisateur 1');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits1
line([n n],[mb1(n) mb1(n)])
line([n n+T],[mb1(n) mb1(n)])
if mb1(n)~= mb1(n-1)
line([n n],[0 1])
end
end
nbits2=length(mc1);
T=1;%Période
A=1;%Amplitude
subplot (3,1,2);
stairs(mc1);
title('Code d''étalement de l''utilisateur 1');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits2
line([n n],[mc1(n) mc1(n)])
line([n n+T],[mc1(n) mc1(n)])
if mc1(n)~= mc1(n-1)
line([n n],[0 1])
end
end
nbits3=length(tb1);
T=1;%Période
A=1;%Amplitude
subplot (3,1,3);
stairs(tb1);
title('Signal étalé de l''utilisateur 1');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits3
line([n n],[tb1(n) tb1(n)])
line([n n+T],[tb1(n) tb1(n)])
if tb1(n)~= tb1(n-1)
line([n n],[0 0])
end
end
%//utilisateur2//%---------------------------------------------------------
m2=[1 1 0];nb2=length(m2);
c2=[1 1 -1 -1];L2=length(c2);
b1=ones(1,L2);b0=-1.*ones(1,L2);
mb2=[];mc2=[];
for i=1:nb2
if m2(i)==1
mb2=[mb2 b1];
cc2=c2;
else
mb2=[mb2 b0];
cc2=c2;
end
mc2=[mc2 cc2];
end
%signal étalé
tb2=mb2.*mc2;
nbits4=length(mb2);
T=1;%Période
A=1;%Amplitude
figure(2);
subplot (3,1,1);
stairs(mb2);
title('Signal de l''utilisateur 2');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits4
line([n n],[mb2(n) mb2(n)])
line([n n+T],[mb2(n) mb2(n)])
if mb2(n)~= mb2(n-1)
line([n n],[0 1])
end
end
nbits5=length(mc2);
T=1;%Période
A=1;%Amplitude
subplot (3,1,2);
stairs(mc2);
title('Code d''étalement de l''utilisateur 2');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits5
line([n n],[mc2(n) mc2(n)])
line([n n+T],[mc2(n) mc2(n)])
if mc2(n)~= mc2(n-1)
line([n n],[0 1])
end
end
nbits6=length(tb2);
T=1;%Période
A=1;%Amplitude
subplot (3,1,3);
stairs(tb2);
title('Signal étalé de l''utilisateur 2');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits6
line([n n],[tb2(n) tb2(n)])
line([n n+T],[tb2(n) tb2(n)])
if tb2(n)~= tb2(n-1)
line([n n],[0 0])
end
end
%//utilisateur3//%---------------------------------------------------------
m3=[0 1 0];nb3=length(m3);
c3=[-1 1 1 -1];L3=length(c3);
b1=ones(1,L3);b0=-1.*ones(1,L3);
mb3=[];mc3=[];
for i=1:nb3
if m3(i)==1
mb3=[mb3 b1];
cc3=c3;
else
mb3=[mb3 b0];
cc3=c3;
end
mc3=[mc3 cc3];
end
%signal étalé
tb3=mb3.*mc3;
nbits7=length(mb3);
T=1;%Période
A=1;%Amplitude
figure(3);
subplot (3,1,1);
stairs(mb3);
title('Signal de l''utilisateur 3');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits7
line([n n],[mb3(n) mb3(n)])
line([n n+T],[mb3(n) mb3(n)])
if mb3(n)~= mb3(n-1)
line([n n],[0 1])
end
end
nbits8=length(mc3);
T=1;%Période
A=1;%Amplitude
subplot (3,1,2);
stairs(mc3);
title('Code d''étalement de l''utilisateur 3');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits8
line([n n],[mc3(n) mc3(n)])
line([n n+T],[mc3(n) mc3(n)])
if mc3(n)~= mc3(n-1)
line([n n],[0 1])
end
end
nbits9=length(tb3);
T=1;%Période
A=1;%Amplitude
subplot (3,1,3);
stairs(tb3);
title('Signal étalé de l''utilisateur 3');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits9
line([n n],[tb3(n) tb3(n)])
line([n n+T],[tb3(n) tb3(n)])
if tb3(n)~= tb3(n-1)
line([n n],[0 0])
end
end
%//Somme des signaux sans et avec bruit//%---------------------------------
tb=tb1+tb2+tb3;
nbits10=length(tb);
T=1;%Période
A=1;%Amplitude
figure(4);
subplot (2,1,1);
stairs(tb);
title('Signal reçu sans bruit');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -4.5 A+3.5]);
grid on;
hold on;
for n=2:nbits10
line([n n],[tb(n) tb(n)])
line([n n+T],[tb(n) tb(n)])
if tb(n)~= tb(n-1)
line([n n],[0 0])
end
end
g=awgn(tb,10);
nbits11=length(g);
T=1;%Période
A=1;%Amplitude
subplot (2,1,2);
stairs(g);
title('(b) Signal reçu avec bruit');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -4.5 A+3.5]);
grid on;
hold on;
for n=2:nbits11
line([n n],[g(n) g(n)])
line([n n+T],[g(n) g(n)])
if g(n)~= g(n-1)
line([n n],[0 0])
end
end
%//Multiplication de la somme par le code de l'utilisateur1//--------------
a1=mc1.*tb;
for i=1:length(a1)
for j=1:4
s=0;
s=sum(a1(j));
disp(s);
end
if(s>0)
des=1;
else
des=-1;
end
end
nbits13=length(a1);
T=1;%Période
A=1;%Amplitude
figure(6);
subplot (2,1,1);
stairs(a1);
title('Multiplication de code de l''utilisateur 1 par le signal reçu');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -4 A+3.5]);
grid on;
hold on;
for n=2:nbits13
line([n n],[a1(n) a1(n)])
line([n n+T],[a1(n) a1(n)])
if a1(n)~= a1(n-1)
line([n n],[0 0])
end
end
nbits14=length(des);
T=1;%Période
A=1;%Amplitude
subplot (2,1,2);
stairs(des);
title('Signal origine aprés décision de l''utilisateur 1');
xlabel('Temps');
ylabel('Amplitude');
axis([1 14 -1.5 A+0.5]);
grid on;
hold on;
for n=2:nbits14
line([n n],[des(n) des(n)])
line([n n+T],[des(n) des(n)])
if des(n)~= des(n-1)
line([n n],[0 1])
end
end
j'espère que ça va vous guider.
merci.