このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
符号化された信号の AWGN Channel ブロックの使用
シミュレーションで符号化を使用する場合、AWGN チャネル用の Eb/N0 設定は、必要な S/N 比 (SNR) を適用するために符号化率で調整しなければなりません。
slex_hamming_check.slx
モデルは、AWGN チャネル経由でフィルター処理された BPSK 変調信号に対して前方誤り制御 (FEC) 符号化を実行します。このモデルは、BPSK Modulator Baseband、AWGN 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 です。関数
を使用し、Eb/N0 値の範囲にわたる AWGN での BPSK 変調信号に対して、線形の理論上の BER 上限、最小距離 3 での符号化率 4/7 のブロック符号、および硬判定復号化を計算します。同じ範囲の Eb/N0 値にわたって bercoding
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;