Bonjour à toutes et a tous,
Voici mon probleme:
Je realise un modulateur/demodulateur FSK cohérente
J'ai généré la modulation FSK:
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
 
%Initialisation des variables dans le workspace
 
Tb =1;                      %Temps de génération d'un bit
fs = 100;                   %Frequence d'echantillonnage
L=length(0: (Tb/fs): Tb );     
 
%Generation d'une suite binaire aléatoire (0 et 1)
 
Sb=rand(1,50);              %On génére aléatoirement 50 valeurs
Sb=round(Sb);               %On discrétise les valeurs pour obtenir une suite binaire
Sb=round(Sb)*2;             %Opération de transposition au code NRZ
Sb=Sb-1;                    %Opération de transposition au code NRZ
Sb=(Sb+1)/2;                %On récupére un signal numérique à deux états: 0 et 1 en amplitude
 
%Signal numérique représentant le signal binaire à transmettre - Représentation physique de la suite binaire
 
y=ones(1,L);
nrz=kron(Sb,y);
subplot(2,1,1);
plot(nrz,'r');
axis([0 2000 -0.5 1.5]);
title('Signal numérique');
 
%Modulation FSK
 
Tb = 1;                     %Temps de génération d'un bit
fs = 100;                   %Frequence d'echantillonnage
fc =[1 10];               	%Frequences correspondant aux états haut et bas du signal numérique
 
%Signal modulé FSK 
 
L=length(0:(Tb/fs):Tb);
signal = ones(1,L);
 
for k = 1:length(Sb);
f = fc(Sb(k)+1);            %Choix de la fréquence d'oscillation en fonction de k et des valeurs de Sb(k) (0 ou 1)
                            %Si Sb(k)=1, Sb(k)+1=2 => f=10, Si Sb(k)=0, Sb(k)+1=1 => f=1
 
signal((k-1)*L+1: k*L) = cos(2*pi*f*(0 :(Tb/fs):Tb));
subplot(2,1,2);
plot(signal,'g');
axis([0 2000 -1.5 1.5]);
title('Modulation FSK');
end
Je n'arrive pas à realiser la demodulation.
Pouvez vous m'aider svp.
Merci