私はかなり見回しましたが、matlab でバイナリ非対称チャネルをシミュレートするための解決策を得ることができません。エラー確率 0.001 の非対称チャネルだけでなく、BSC (バイナリ対称チャネル) もシミュレートすることになっています。
私はそのようにバイナリ対称シミュレーションを行うことができました(それを使いたい人のために)
r = rand(1000000,1); % uniform data set generation
x = zeros(1000000,1); % data to be sent initialised
for i = 1:1000000 % mapped to BPSK signal (-1,1)
if r(i,1) >= 0.5
x(i,1) = 1;
else
x(i,1) = -1;
end
end
SNR = qfuncinv(0.001);
SNRdB = 10*log(SNR);
y = awgn(x,SNRdB);
y = awgn(x,9.79982258); %noise added to inputs through Signal to noise
%ratio
for i = 1:1000000
if(abs(y(i,1) - 1) < abs(y(i,1) + 1) ) %between -1 and 1
y(i,1) = 1; %map back through
else %minimum distance estimations
y(i,1) = -1;
end
if(x(i,1) == y(i,1)) % determine if estimation errors are made
r(i,1) = 0;
else
r(i,1) = 1;
end
end
errors = sum(r);
sprintf('%0.8f',errors/1000000) %show error percentage
さて、私はまだ非対称チャネルのシミュレーションを行う必要がありますが、matlab でこれを達成するためのリードを見つけることができません。
この問題を解決する実装へのリンクを歓迎します