Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

符号化された信号の AWGN Channel ブロックの使用

シミュレーションで符号化を使用する場合、AWGN チャネル用の Eb/N0 設定は、必要な S/N 比 (SNR) を適用するために符号化率で調整しなければなりません。

slex_hamming_check.slx モデルは、AWGN チャネル経由でフィルター処理された BPSK 変調信号に対して前方誤り制御 (FEC) 符号化を実行します。このモデルは、BPSK Modulator BasebandAWGN Channel、およびBPSK Demodulator Basebandの個別のブロックを使用して、バイナリ対称チャネルをシミュレートします。符号化された Eb/N0 と符号化されていない Eb/N0 (Eb/N0) の差を考慮するために、AWGN Channel ブロックは符号化された Eb/N0 を Eb/N0 + 10log10(K/N) dB として計算します。ここで、K/N は符号化率、Eb/N0 は符号化されていない Eb/N0 です。Hamming Encoderブロックの入力ビット期間は 1 秒で、出力ビット期間は符号化率係数 K/N を掛けた 4/7 秒に減少します。符号化率により、"バイナリ対称チャネル" のビット期間は 4/7 秒になります。

モデルは、コールバック関数 PreLoadFcn を使用して、ブロック パラメーターの構成に使用する変数を初期化します。詳細については、モデル コールバック (Simulink)を参照してください。

model = 'slex_hamming_check';
open_system(model);

AWGN Channel ブロックは、変調信号に基づいて "シンボルあたりのビット数" および "Input signal power, referenced to 1 ohm (watts)" パラメーター設定も構成しなければなりません。この例では BPSK 変調を使用しているため、AWGN Channel ブロックのシンボルあたりのビット数は 1 に設定されています。モデルには、AWGN Channel ブロックの入力信号強度に必要な設定を確認するために、AWGN 入力での信号強度を測定するPower Meterブロックが含まれます。

エラー レートの結果とプロットを作成して、シミュレーションと理論を比較します。符号化された信号の理論的なチャネル誤り確率は Q(sqrt(2*Ebc/N0)) です。ここで、Q() は標準の Q 関数、Ebc/N0 は線形単位 (dB 単位ではない) の符号化された Eb/N0 です。関数 bercoding を使用し、Eb/N0 値の範囲にわたる AWGN での BPSK 変調信号に対して、線形の理論上の BER 上限、最小距離 3 での符号化率 4/7 のブロック符号、および硬判定復号化を計算します。同じ範囲の Eb/N0 値にわたって slex_hamming_check モデルをシミュレーションします。

EbNoVec = 0:2:10;
theorBER = bercoding(EbNoVec,'block','hard',7,4,3);

berVecBSC  = zeros(length(EbNoVec),3);
for n   = 1:length(EbNoVec)
    EbNo = EbNoVec(n);
    sim(model);
    berVecBSC(n,:) = berBSC(end,1);
end

関数semilogyを使用して結果をプロットすると、ほぼ同じ結果が表示されます。モデルには、200 個のエラーが発生する、またはブロックが 1x10^6 個のビットを受信するまで各 Eb/N0 点を実行するように構成されたError Rate Calculationブロックがあります。

semilogy( ...
    EbNoVec,berVecBSC(:,1),'d', ...
    EbNoVec,theorBER,'-');
legend('BSC BER','Theoretical BER', ...
    Location="southwest");
xlabel("Eb/N0 (dB)");
ylabel("Error Probability");
title("Bit Error Probability");
grid on;

参考