📄 projrt_modulation.m
字号:
clear all;
close all;
%%-----------debut du projet------------------%%
load 'binome39.mat';
who;
L=length(Strbbr);
%%frequance d'echantillonage
Fe=L;
%spectre du signal
spectre_signal=20*log(abs(fft(Strbbr)));
%plot(spectre_signal);title('Figure1');
[Y,indice1]=max(spectre_signal);
%%pour trouver la frequance de brouilleur
fb=indice1;
%%----------------------------------------%%
%%supprimer le brouilleur
Z0=exp(j*2*pi*fb/Fe);
p0=0.9*exp(j*2*pi*fb/Fe);
B=[1,-2*real(Z0),1];
A=[1,-2*real(p0),0.9*0.9];
signal_filtre1=filter(B,A,Strbbr);
spectre1=20*log(abs(fft(signal_filtre1)));
%hold on;
%plot(spectre1,'b');title('Figure2');
%%------------------------------------------%%
%%pour trouver la frequance de porteuse
Fs=Fe/100;
k=1;
for (n=Fs:Fs:Fe/2)
if (spectre1(n)>=80)
ss(k)=n;
k=k+1;
end;
end;
fp=ss(int8(k/2));
%display(fp);
%%-----------------------------------------%%
%%demodulation
t=[1:1:Fe]';
Strb2=2*exp(2*j*pi*fp/Fe)*signal_filtre1.*exp(-2*j*t*pi*fp/Fe);
spectre2=20*log(abs(fft(Strb2)));
%plot(spectre2);title('Figure3');
%%--------------------------------------------%%
delta_f=1000;
ZZ0=exp(j*2*pi*(2*fp)/Fe);
P1=0.9*exp(j*2*pi*(2*fp-delta_f)/Fe);
P2=0.9*exp(j*2*pi*(2*fp+delta_f)/Fe);
B2=[1 -2*real(ZZ0) 1];
A2=[1 -2*(real(P2)+real(P1)) P2*conj(P2)+P1*conj(P1)+4*real(P1)*real(P2) -2*conj(P1)*P1*real(P2)-2*conj(P2)*P2*real(P1) P1*conj(P1)*P2*conj(P2)];
signal_3=filter(B2,A2,Strb2);
spectre3=20*log(abs(fft(signal_3)));
%hold on;
%plot(spectre3,'r');title('Figure4');
%%---------------------------------------------%%
%%pour choisir le filtre adapte
%load 'Biphase.mat';%
load 'Gauss.mat';%
%load 'SqRaCo.mat';%no!
%load 'Sinc.mat';%
%load 'Cercle.mat';%
%load 'Triangle.mat';%yes
%h;
%figure;plot(h);
%Hf=20*log(abs(fft(h)));
%hold on;plot(Hf,'b');
had=ifft((fft(h))');
%hold on; plot(h,'g');plot(had,'r');
%Hadf=20*log(abs(fft(had)));
%hold on;plot(h,'g');plot(had,'r');title('Figure5');
signal_Hf=conv(signal_3,had);
%plot(real(signal_Hf(1:2000)));
spectre4=20*log(abs(fft(signal_Hf)));
%plot(spectre4,'r');
%%-------------diagrame d'oeuil---------------%%
%eyediagram(signal_Hf,10,2/Fs);
%plot(signal_Hf);title('Figure6');
%%-------------------------------------------%%
a=0;
for (m=1:1:Fs)
symb_recus(m)=signal_Hf(m*100-a);
end;
plot(symb_recus,'g*');title('Figure7');
%%-------------decodage---------------------%%
train_binaire=[]; %vecteur vide
for(k=1:1:length(symb_recus))
if(0<angle(symb_recus(k))&&angle(symb_recus(k))<=1*pi/8)
symb_bin=[0 0 0 0];
elseif(1*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=2*pi/8)
symb_bin=[0 0 0 1];
elseif(2*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=3*pi/8)
symb_bin=[0 0 1 0];
elseif(3*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=4*pi/8)
symb_bin=[0 0 1 1];
elseif(4*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=5*pi/8)
symb_bin=[0 1 0 0];
elseif(5*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=6*pi/8)
symb_bin=[0 1 0 1];
elseif(6*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=7*pi/8)
symb_bin=[0 1 1 0];
elseif(7*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=pi)
symb_bin=[0 1 1 1];
elseif(-pi<angle(symb_recus(k))&&angle(symb_recus(k))<=-7*pi/8)
symb_bin=[1 0 0 0];
elseif(-7*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=-6*pi/8)
symb_bin=[1 0 0 1];
elseif(-6*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=-5*pi/8)
symb_bin=[1 0 1 0];
elseif(-5*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=-4*pi/8)
symb_bin=[1 0 1 1];
elseif(-4*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=-3*pi/8)
symb_bin=[1 1 0 0];
elseif(-3*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=-2*pi/8)
symb_bin=[1 1 0 1];
elseif(-2*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=-1*pi/8)
symb_bin=[1 1 1 0];
elseif(-1*pi/8<angle(symb_recus(k))&&angle(symb_recus(k))<=0)
symb_bin=[1 1 1 1];
end;
train_binaire = [train_binaire symb_bin];
end;
care = bit2char(train_binaire);
%%--------------Resultat----------------------%%
%%--Quel standard utilise la technologie Wimax?
%%--le standard 802.16d
%stri=bit2char(codage);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -