--------------------------------------------
// 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