sexta-feira, 8 de março de 2013

Simulando: taxa de erro de um sinal BPSK

Essa postagem é exclusivamente para os alunos de Sistemas de Comunicação II.
--------------------------------------------


// simulação - taxa de erro - sinal BPSK {-1, +1}

clc;

N = 2e5;  // quantos mais pontos, melhor a curva experimental
x = sign(rand(1,N,'normal'));  // sinal +1, -1
n = rand(1,N,'normal'); // ruído
n = n - mean(n);
vx = variance(x);

p=1; // variavel auxiliar
for db = 0:12
    A = sqrt(1/(10^(db/10)));
    nA = A*n;
    s = x + nA;
    sd = sign(s);
    erros = sum(abs(x-sd))/2;  // contando os erros
    taxa(p) = erros/N;
    vn = variance(nA);
    rdb(p) = 10*log10(vx/vn);  // idealmente: 0, 1, 2, ... dB
    disp([db,vx,vn,rdb(p)]);
    p=p+1;
end
close;
rdb = round(10*rdb)/10;
plot(rdb,taxa,'-o'); title('Taxa de erro'); xgrid;
ylabel('Probabilidade de erro');
xlabel('SNR - dB'); 

Gráfico obtido:

Nenhum comentário:

Postar um comentário