Main Content

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

bsc

バイナリ対称チャネル

説明

ndata = bsc(data,probability) は、指定した誤り確率 probability をもつバイナリ対称チャネルを経由してバイナリ入力信号 data を渡します。チャネルはビット エラーを取り込み、入力 data の各要素を別々に処理します。

ndata = bsc(data,probability,seed) は、ローカル乱数発生器を初期化するためのシード値を受け入れます。

ndata = bsc(data,probability,streamhandle) は、乱数ストリーム ハンドルを受け入れてノイズ サンプルを生成します。

[ndata,err] = bsc(___) は、前述の構文のいずれかを使用して、チャネル誤りを含む配列を返します。

すべて折りたたむ

関数bscを使用して、乱数行列のビットに確率 0.15 でビット エラーを取り込みます。

z = randi([0 1],100,100);        % Random matrix
nz = bsc(z,0.15);                % Binary symmetric channel
[numerrs,pcterrs] = biterr(z,nz) % Number and percentage of errors
numerrs = 1509
pcterrs = 0.1509

この出力は、比較的小さなデータ セットの場合に一般的です。ほとんどの試行において、ビット エラーのパーセンテージは正確に 15% にはなりません。指定した正確な確率に近いビット エラーのパーセンテージを返すようにするには、入力行列のサイズを増やします。

関数bscを使用して、乱数ベクトルのビットに確率 0.01 でビット エラーを取り込み、関数vitdecを使用してメッセージ データを復号化します。

畳み込み符号化とビタビ復号化用のトレリスを定義します。メッセージ データを生成します。

trel = poly2trellis([4 3],[4 5 17;7 4 2]);
msg = ones(10000,1);

エラー レート計算機のオブジェクトを作成します。

errCalc = comm.ErrorRate;

メッセージ データを符号化します。ビット エラーを取り込みます。誤りの合計数を表示します。

code = convenc(msg,trel);
[ncode,err] = bsc(code,.01);
numchanerrs = sum(sum(err))
numchanerrs = 158

データを復号化し、復号化した後の誤り数をチェックします。

dcode = vitdec(ncode,trel,2,"trunc","hard");
berVec = errCalc(msg,dcode);
ber = berVec(1)
ber = 0.0049
numsyserrs = berVec(2)
numsyserrs = 49

入力引数

すべて折りたたむ

入力バイナリ信号。スカラー、ベクトル、行列、または 3 次元配列として指定します。この関数はガロア体のサポートを提供します。詳細については、関数 gf を参照してください。

データ型: double | single | logical | gf

誤り確率。区間 [0, 1] のスカラーとして指定します。

乱数ストリーム ハンドル。RandStream オブジェクトとして指定します。この入力は、rand を使用して一様乱数ノイズ サンプルを生成するための乱数ストリームを指定します。繰り返し可能なノイズ サンプルを生成するには、乱数ストリーム入力をリセットしてから bsc を呼び出します。詳細については、関数 RandStream を参照してください。

一様乱数発生器 rand を初期化するためのシード値。繰り返し可能なノイズ サンプルを生成するには、同じ seed を使用します。

出力引数

すべて折りたたむ

出力バイナリ信号。スカラー、ベクトル、行列または 3 次元配列として返されます。この出力は、入力 data と同じ次元およびデータ型をもちます。

ビット エラー。スカラー、ベクトル、行列または 3 次元配列として返されます。この出力は data および ndata と同じ次元をもちます。関数がエラーを起こした位置では、err の値が 1 になります。それ以外の位置では値は 0 になります。

拡張機能

バージョン履歴

R2006a より前に導入

参考

関数