Les fonctions : mean / randn

Fermé
selma.isi Messages postés 1 Date d'inscription jeudi 10 janvier 2013 Statut Membre Dernière intervention 11 janvier 2013 - 11 janv. 2013 à 18:03
Bonjour,
je suis entrain de faire un code en Matlab qui aura comme résultat le traçage d'une transmission de signal (donné) OFDM sous un bruit blanc (BER en fonction de SNR), pour ce faire j'ai pris un code de transmission BPSK comme exemple.
Le problème maintenant c'est que j'arrive pas a assimiler le fonctionnement du code existant à cause de quelques fonctions en particulier la fonction " randn " :
 >>s_BPSK = sign(randn(1,Ns))

ainsi que la fonction " mean ", qui dans ce code a comme entrée une matrice et comme sortie un nombre !!! voila l'instruction :
>>
 Nr=mean(abs(N).^2)
 Nr = 0.1583

Pouvez vous m'expliquer SVP le rôle de ces fonctions.. voila la totalité du code pour plus de détail :

clear all
close all
%%% Generation d'une chaine de transmission simplifiée
SNR_dB=[2 4 6 8]; % rapport signal a bruit
Ns= 1000000; % nbre de symbole transmis
s_BPSK = sign(randn(1,Ns)); %signal transmis en +1 et -1
Pe=[];SNR=[];Pe_t=[]; % initialisation
for i=1:length(SNR_dB)
sigN2 = 10^(-SNR_dB(i)/10);
N = sqrt(sigN2/2)*(randn(1,Ns)+j*randn(1,Ns));
r_t=s_BPSK+N % signal recu
%% Detection optimale du signal
r_BPSK=sign(real(r_t)) 
%% Calcul de la probabilité d'erreurs
Pe=[Pe sum(r_BPSK~=s_BPSK)/Ns]
%% Calcul de la Pe theorique 
Sr=mean(s_BPSK.^2)
Nr=mean(abs(N).^2)
SNR= [SNR 10*log10(Sr/Nr)] % SNR vrai
Pe_t=[Pe_t 1/2*erfc(sqrt(Sr/Nr))]
end

figure

semilogy(SNR,Pe,'bx-');
hold on
semilogy(SNR,Pe_t,'r-.o');
grid on
xlabel('SNR, dB');
ylabel('Bit Error Rate');
title('BER en fonction de SNR ');
legend('simulation','théorique')