最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

bercoding

符号化された AWGN チャネルのビット誤り率 (BER)

構文

berub = bercoding(EbNo,'conv',decision,coderate,dspec)
berub = bercoding(EbNo,'block','hard',n,k,dmin)
berub = bercoding(EbNo,'block','soft',n,k,dmin)
berapprox = bercoding(EbNo,'Hamming','hard',n)
berub = bercoding(EbNo,'Golay','hard',24)
berapprox = bercoding(EbNo,'RS','hard',n,k)
berapprox = bercoding(...,modulation)

説明

berub = bercoding(EbNo,'conv',decision,coderate,dspec) は、加法性ホワイト ガウス ノイズ (AWGN) チャネル上で実行された同期位相シフト キーイング (PSK) 変調によるバイナリ畳み込み符号の BER の上限または近似値を返します。EbNo は、ビット エネルギーとノイズ パワー スペクトル密度の比を dB 単位で表したものです。EbNo がベクトルの場合、berub はサイズが同じで、要素がさまざまな Eb/N0 レベルに相当するベクトルです。硬判定復号化を指定するには、decision'hard' に設定します。軟判定復号化を指定するには、decision'soft' に設定します。畳み込み符号の符号化率は、coderate に等しくなります。dspec 入力は、コードの距離スペクトルに関する情報を格納する構造体です。

  • dspec.dfree は、コードの最小自由距離です。

  • dspec.weight は、コードの重みスペクトルです。

サンプル コードの距離スペクトルを求めるには、関数 distspec を使用するか、[5] および [3] を参照してください。

メモ

バイナリ PSK および直交 PSK 変調の結果は同じです。この関数は M が 2 または 4 以外の場合は M-ary PSK をサポートしません。

berub = bercoding(EbNo,'block','hard',n,k,dmin) は、硬判定復号化および同期 BPSK 変調または同期 QPSK 変調による [n,k] バイナリ ブロック符号の BER の上限を返します。dmin は、コードの最小距離です。

berub = bercoding(EbNo,'block','soft',n,k,dmin) は、軟判定復号化および同期 BPSK 変調または同期 QPSK 変調による [n,k] バイナリ ブロック符号の BER の上限を返します。dmin は、コードの最小距離です。

berapprox = bercoding(EbNo,'Hamming','hard',n) は、硬判定復号化および同期 BPSK 変調を使用するハミング符号の BER の近似値を返します (ハミング符号では n が既知の場合、k は n から直接計算されます)。

berub = bercoding(EbNo,'Golay','hard',24) は、硬判定復号化および同期 BPSK 変調を使用するゴレイ コードの BER の上限を返します。現在、ゴレイのサポートは n=24 の場合のみです。[3] に従い、ゴレイ符号化の上限では、3 誤りパターンの訂正のみを仮定します。4 誤りパターンの約 19% を訂正することは理論的に可能ですが、実際に大部分の復号化器にはこの機能はありません。

berapprox = bercoding(EbNo,'RS','hard',n,k) は、硬判定復号化および同期 BPSK 変調を使用する (n,k) リード・ソロモン符号の BER の近似値を返します。

berapprox = bercoding(...,modulation) は、modulation タイプを指定している場合、符号化された AWGN チャネルの BER の近似値を返します。サポートされている変調タイプの一覧表示については、関数 berawgn を参照してください。

すべて折りたたむ

(23,12) ブロック符号の理論上の BER の上限値を求めます。

例のパラメーターを設定します。

n = 23;             % Codeword length
k = 12;             % Message length
dmin = 7;           % Minimum distance
EbNo = 1:10;        % Eb/No range (dB)

BER を推定します。

berBlk = bercoding(EbNo,'block','hard',n,k,dmin);

推定された BER をプロットします。

berfit(EbNo,berBlk)
ylabel('Bit Error Probability')
title('BER Upper Bound vs. Eb/No, with Best Curve Fit')

硬判定復号化を使用して (15,11) リード・ソロモン符号で符号化された場合の AWGN の 16-QAM チャネルについて性能を推定します。

入力の Eb/No の範囲を設定し、符号化されていない 16-QAM の BER を特定します。

ebno = (2:12)';
uncodedBER = berawgn(ebno,'qam',16);

硬判定復号化を使用して (15,11) リード・ソロモン符号で符号化された 16-QAM チャネルの BER を推定します。

codedBER = bercoding(ebno,'RS','hard',15,11,'qam',16);

推定された BER 曲線をプロットします。

semilogy(ebno,[uncodedBER codedBER])
grid
legend('Uncoded BER','Coded BER')
xlabel('Eb/No (dB)')
ylabel('BER')

制限

この関数の出力の数値精度は次によって制約されます。

  • 関数が使用する閉形式を導く解析的な近似

  • 式の数値的実装に関連した近似

一般的には関数の出力の最上位の 2、3 桁を信頼することができます。

代替方法

関数 bercoding の代わりに、BERTool GUI (bertool) を呼び出して [Theoretical] タブを使用することもできます。

参考文献

[1] Proakis, J. G., Digital Communications, 4th ed., New York, McGraw-Hill, 2001.

[2] Frenger, P., P. Orten, and T. Ottosson, “Convolutional Codes with Optimum Distance Spectrum,” IEEE Communications Letters, Vol. 3, No. 11, Nov. 1999, pp. 317–319.

[3] Odenwalder, J. P., Error Control Coding Handbook, Final Report, LINKABIT Corporation, San Diego, CA, 1976.

[4] Sklar, B., Digital Communications, 2nd ed., Prentice Hall, 2001.

[5] Ziemer, R. E., and R. L., Peterson, Introduction to Digital Communication, 2nd ed., Prentice Hall, 2001.

R2006a より前に導入