Main Content

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

bercoding

符号化された AWGN チャネルでの BER

説明

関数 bercoding は、指定された符号化タイプ、復号化判定、符号化率、符号の距離スペクトルについて、加法性ホワイト ガウス ノイズ (AWGN) チャネルにおける同期 BPSK または QPSK 変調での、ビット エラー レート (BER) の上限または近似値を返します。バイナリ PSK および直交 PSK 変調の結果は同じです。この関数は、M-ary の PSK 変調については、変調次数 2 または 4 のみを計算します。詳細については、関数 bercoding および Bit Error Rate Analysis アプリで使用される解析的表現を参照してください。

ber = bercoding(EbNo,'conv',decision,coderate,dspec) は、指定された復号化判定、符号化率、符号の距離スペクトルについて、畳み込み符号化された信号での BER の上限または近似値を返します。

ber = bercoding(EbNo,'block',decision,N,K,dmin) は、指定された復号化判定タイプおよび符号の最小距離について、[N,K] バイナリ ブロック符号での BER の上限を返します。

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

ber = bercoding(EbNo,'Hamming','hard',N) は、硬判定復号化および同期 BPSK 変調を使用した、ハミング符号での BER の近似値を返します。

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

ber = bercoding(EbNo,coding,___,modulation) は、前の構文の入力引数の任意の組み合わせに加え、変調タイプを指定します。この構文は、符号化された AWGN チャネルでの BER の近似値を返します。

すべて折りたたむ

(23,12) ブロック符号での理論上の BER の上限を検出します。

コードワード長、メッセージ長、最小距離、および Eb/N0 範囲 (dB 単位) を設定します。

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')

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

入力の 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
title('Compare Uncoded and R-S Coded 16-QAM Transmission')
legend('Uncoded BER','Coded BER')
xlabel('Eb/No (dB)')
ylabel('BER')

入力引数

すべて折りたたむ

dB 単位のビットあたりのエネルギー対ノイズ パワー スペクトル密度比。スカラーまたはベクトルとして指定します。

データ型: single | double

情報源符号化タイプ。次のいずれかのオプションを指定します。

  • 'conv' — 返される BER は、同期 BPSK または QPSK 変調によるバイナリ畳み込み符号での BER の上限です。

  • 'block' — 返される BER は、同期 BPSK または QPSK 変調による (N, K) 線形バイナリ ブロック符号での BER の上限です。

  • 'Hamming' — 返される BER は、硬判定復号化および同期 BPSK または QPSK 変調を使用するハミング符号での BER の近似値です。

  • 'Golay' — 返される BER は、硬判定復号化および同期 BPSK または QPSK 変調を使用する拡張 (24,12) ゴレイ符号での BER の上限です。[3]に従い、ゴレイ符号化の上限では、3 誤りパターンの訂正のみを仮定します。実際のところ、4 誤りパターンの約 19% を訂正することは理論的に可能ですが、大部分の復号化器にはこの機能はありません。

  • 'RS' — 返される BER は、硬判定復号化および同期 BPSK 変調を使用する (N,K) リード・ソロモン符号での BER の近似値です。

データ型: char | string

復号化判定タイプ。次のいずれかのオプションを指定します。

  • 'hard' — 硬判定復号化には、このオプションを使用します。

  • 'soft' — 非量子化軟硬判定復号化には、このオプションを使用します。このオプションが適用されるのは、coding'conv' または 'block' に設定されている場合のみです。

データ型: char | string

畳み込み符号の符号化率。正のスカラーとして指定します。

依存関係

この引数を有効にするには、引数 coding'conv' に設定します。

データ型: double | single

符号の距離スペクトル。次のフィールドを含む構造体として指定します。サンプル符号の距離スペクトルを求めるには、関数 distspec を使用するか、[5]および[3]を参照してください。

符号の最小自由距離。正のスカラーとして指定します。

データ型: double | single

符号の重みスペクトル。正のスカラーとして指定します。

データ型: double | single

依存関係

この引数を有効にするには、引数 coding'conv' に設定します。

データ型: struct

コードワード長。2M–1 形式の整数として指定します。ここで、M は範囲 [3, 16] の整数です。詳細については、情報源符号化の N-K ペアを参照してください。

例: 15 または 2^4-1

依存関係

この引数を有効にするには、引数 coding'block''Hamming''Golay'、または 'RS' に設定します。

メッセージ長。正の整数として指定します。詳細については、情報源符号化の N-K ペアを参照してください。

例: 5 は 5 つの要素をもつガロア体配列を指定します。

依存関係

この引数を有効にするには、引数 coding'block' または 'RS' に設定します。

符号の最小距離。(N - K + 1) 以下の正のスカラーとして指定します。

.

依存関係

この引数を有効にするには、引数 coding'block' に設定します。

データ型: double | single

変調判定タイプ。'psk''oqpsk''dpsk''pam''qam''fsk'、または 'msk' を指定します。既定の変調スキームは、変調次数 2 の PSK 変調です (具体的には、非差分 BPSK 変調)。

データ型: char | string

出力引数

すべて折りたたむ

BER の上限または近似値。スカラーまたはベクトルとして返されます。EbNo 入力がベクトルの場合、ber は入力とサイズが同じで、Eb/N0 ベクトルの要素に対応する要素からなるベクトルです。

制限

通常、出力 BER の数値精度は、おおよそ有効桁数 2 に制限されます。この関数の出力の数値精度は、次によって制限されます。

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

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

詳細

すべて折りたたむ

情報源符号化の N-K ペア

ブロック符号の場合、コードワード長 (N) とメッセージ長 (K) のペアが次のガイドラインに従っている必要があります。

  • NK が、狭義の BCH 符号を生成する必要があります。

  • 有効な (N,K) ペアとそれぞれに対応する誤り訂正能力の値の一覧を生成するには、コマンド bchnumerr(N) を実行します。

  • N の有効な値の形式は、2M–1 です。ここで、M は範囲 [3, 16] の整数です。N の値が 65,535 を上回ることはできません。

ハミング符号の場合、KN から直接計算されます。

リード ソロモン符号の場合、NK の差は偶数でなければなりません。N の有効な値の形式は、2M–1 です。ここで、M は範囲 [3, 16] の整数です。N の値が 65,535 を上回ることはできません。

代替方法

関数 bercoding を使用する代わりに、Bit Error Rate Analysis アプリで [Theoretical] タブを構成することで、BER の論理値を計算できます。

参照

[1] Proakis, John 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 3, no. 11 (November 1999): 317–19. https://doi.org/10.1109/4234.803468.

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

[4] Sklar, Bernard. Digital Communications: Fundamentals and Applications. 2nd ed. Upper Saddle River, N.J: Prentice-Hall PTR, 2001.

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

バージョン履歴

R2006a より前に導入