Vous êtes sur la page 1sur 2

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% programme Matlab: ofdm-wifi-a.m pour g�n�rerer la tansmission OFDM bas�e sur les
sp�cifications
% IEEE 802.11A
%==========================================================================

% nombre de bits � g�n�rer:


%=================================
nBit = 2500;

% La taille de la FFT
%=================================
nFFTSize = 64;

% l'indice des sous-porteuses [-26 � -1 1 � 26]


%==========================================================================
subcarrierIndex = [-26:-1 1:26];

% on g�n�re le flux bits (1 et 0)


%==========================================================================
ip = rand(1,nBit) > 0.5;

% nombre de bits par symbole OFDM


%==========================================================================
nBitPerSymbol = 52;

%nombre de symboles OFDM � g�n�rer


%==========================================================================
nSymbol = ceil(nBit/nBitPerSymbol);

% la modulation BPSK bit0 --> -1 bit1 --> +1


%=========================================================================
ipMod = 2*ip - 1;
ipMod = [ipMod zeros(1,nBitPerSymbol*nSymbol-nBit)];
ipMod = reshape(ipMod,nSymbol,nBitPerSymbol);

% initialisation vecteur du signal � la sortie IFFT


st = [];

% Op�ration de IFFT pour chaque symbole OFDM


%==========================================================================
for ii = 1:nSymbol
inputiFFT = zeros(1,nFFTSize);
% chaque symbole de a1 � a52 est assign� � l'indice de la sous-porteuse [-26 �
-1 1 � 26]
inputiFFT(subcarrierIndex+nFFTSize/2+1) = ipMod(ii,:);
% p�rmitation des sous-porteuses d'indices [-26 � -1] � l'entr�e de la fft
d'indices [38 � 63]
inputiFFT = fftshift(inputiFFT);
outputiFFT = ifft(inputiFFT,nFFTSize);
% on ajoute le cyclic prefix de 16 �chantillons (1/4 symbole OFDM)
outputiFFT_with_CP = [outputiFFT(49:64) outputiFFT];

st = [st outputiFFT_with_CP];
end

close all
fsMHz = 20;
[Pxx,W] = pwelch(st,[],[],4096,20);
plot([-2048:2047]*fsMHz/4096,10*log10(fftshift(Pxx)));
xlabel('fr�quence, MHz')
ylabel('densit� spectrale de puissance')
title('Spectre de transmission OFDM (bas� sur 802.11a)');

Vous aimerez peut-être aussi