% Paramètre FFT
N=64; % taille de la FFT
Ncp=16; % taille du préfixe cyclique
% Conversion caractères --> 1,0
c='TEST DE OFDM ';
c_dec=double(c);
c_bin=dec2bin(c_dec,8)';
b_char=c_bin
)';
b=str2num(b_char'); % b représente le train binaire (en valeurs numériques)
% Modulateur OFDM (passage des bits: b aux symboles: symb)
% Mapping
n=1;
for k=1:length(b)/2
symb
=(2*b(2*k-1)-1)+(2*b(2*k)-1)*j;
n=n+1;
end;
% Constitution des "symboles" OFDM
% FFT 64, avec 6 porteuses abandonnées sur les bords
% Préfixe cyclique égal à 16 échantillons
signal=[];
for k=1:round(length(symb)/N)
X(1:6)=0;
X(7:N-6)=symb(1+(k-1)*(N-12):k*(N-12));
X(N-6+1:N)=0;
S=ifft(X);
signal=[signal S(N-Ncp+1:N) S(1:N)];
end;
clear b;clear c;clear c_dec;clear c_bin;clear b_char;
h=1;
sf=filter(h,1,signal);
% Ajout de bruit (sfb: signal filtré bruité)
coef=0;
sfb=sf+coef*(randn(1,length(sf))+j*randn(1,length(sf)));
% Suppression préfixe cyclique et FFT
% Transformée de Fourier
% et mapping inverse
best=[]; % tableau des bits estimés
tab=[]; % tableau des bits estimés
----------------
----------------
----------------
-----------------
% Conversion +/- 1 --> caractères
bb_char=num2str(best');
cc_bin=reshape(bb_char,8,length(bb_char)/8)';
cc_dec=bin2dec(cc_bin);
cc=(char(cc_dec))';
disp(cc)