Main Content

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

Binary Symmetric Channel

バイナリ エラーの発生

  • Binary Symmetric Channel block

ライブラリ:
Communications Toolbox / Channels

説明

Binary Symmetric Channel ブロックによって、バイナリ対称チャネルを通して伝送される入力信号に誤りが発生します。その誤りは、指定した Error probability に基づいて発生します。詳細については、ヒントを参照してください。

すべて展開する

cm_ex_viterbi_decode_binary_seq モデルは Random Integer Generator ブロックを使用してバイナリ シーケンスを生成します。シーケンスは、Convolutional Encoder ブロックで符号化され、Binary Symmetric Channel ブロックで劣化します。Viterbi Decoder ブロックはデータ シーケンスを符号化し、ビット エラー レートが計算されます。

InitFcn コールバックを使用して、フレーム、BSC 誤り確率、およびビタビ復号化器のトレースバック長ごとにサンプルのワークスペース パラメーターを初期化します。送信信号と受信信号間の信号遅延はトレースバック長と同等です。信号遅延は、エラー レートの計算に必要です。

バイナリ ビット ストリームを作成するために、Random Integer Generator ブロックは、セット サイズを 2 および出力タイプを boolean に指定します。

計算されたエラー レートは、Binary Symmetric Channel ブロックで指定された Error probability を近似します。

Computed error rate = 0.095023

バイナリ対象チャネルを経由してランダムな信号を渡します。指定された誤り確率に対するエラー レートを計算します。

slex_bsc_channel モデルを開くには、[モデルを開く] ボタンを使用します。

0.01 に設定した BSC ブロックの誤り確率を使用したモデルを実行します。結果は、1 行 3 列の行ベクトルのベース ワークスペース変数 ErrorVec に保存されます。最初の要素には BER が含まれます。

With error probability set to 0.01, BER: 0.009929

BSC ブロックの誤り確率を 0.04 に変更します。モデルを実行して BER の増加を観察します。

With error probability set to 0.04, BER: 0.039889

バイナリ対象チャネルを経由してランダムな信号を渡します。指定した誤り確率の場合、Err 端子によって示された誤差の合計数を Error Rate Calculation ブロックによって報告された結果と比較します。

slex_bsc_channel_err モデルを開きます。

0.02 に設定した BSC ブロックの誤り確率を使用したモデルを実行します。Error Rate Calculation ブロックからの結果は、1 行 3 列の行ベクトルのベース ワークスペース変数 ErrorVec に保存されます。ErrorVec には、[BER, TotalErrors, TotalSamplesProcessed] が含まれます。

Total number of errors:   20296

Binary Symmetric ChannelErr 端子は、長さが処理されたサンプルの合計数と一致するバイナリ ベクトルです。出力の Err ベクトルの要素を加算して、信号データに生じた誤差の合計数を得ます。Err ベクトルの要素の加算は、ベース ワークスペース変数 BscErrTotal に保存されます。

BscErrTotal:   20296

Error Rate Calculation ブロックは、BscErrTotal によって示される同じ誤りの合計数を報告します。

バイナリ対称チャネルを経由してマルチチャネルのランダムな信号を渡します。指定した誤り確率の場合、各チャネルの Err 端子出力を比較してエラー レートを比較します。

slex_multichannel_bcs_err モデルを開くには、[モデルを開く] ボタンを使用します。

[0.02 0.04 0.07] に設定した行ベクトルとして Error probability を定義することによってマルチチャネル信号の個々のチャネルに異なる BSC 誤り確率を設定します。

Binary Symmetric ChannelErr 端子は、次元が入力信号と一致するバイナリ行列です。Err には各チャネルの誤りの結果が含まれます。チャネルごとに発生した誤りの合計数を取得するために、個々に Err の各列の出力の要素を加算します。各合計をチャネルごとに送信されたサンプルの合計数で割ると、各チャネルのビット エラー レートを得られます。

BER for channel 1: 2.02960e-02
BER for channel 1: 3.97430e-02
BER for channel 1: 7.00090e-02

計算された BER は Error probability パラメーターで設定された確率とほぼ同じになります。

端子

入力

すべて展開する

入力信号。列ベクトルまたは Boolean 値の NS 行 NC 列の行列として指定します。NS は、チャネルあたりのサンプル数です。NC は、独立したデータ チャネル数です。詳細については、ヒントを参照してください。

出力

すべて展開する

バイナリ出力信号。Input と同じ次元をもつ列ベクトルまたは行列として返されます。出力信号は、指定した Error probability に基づいて発生する確率的誤差によって変更されている入力信号のバージョンです。出力データ型を設定するには、出力データ型 を使用します。

誤差の位置。Input と同じ次元をもつ列ベクトルまたは行列として返されます。Err の要素の値は、1 または 0 です。ここで、

  • 1 は、Output の対応する要素に誤差があることを示します。

  • 0 は、Output の対応する要素に誤差がないことを示します。

Err のデータ型は、出力データ型 によって設定するときの Output と同じです。

依存関係

この端子を有効にするには、Output error vector を選択します。

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

入力信号要素に対する誤差発生の確率。[0,1] の範囲のスカラーとして指定します。誤差の発生は、各要素に対して個別に適用されます。

ブロックに対して Err 出力端子を有効にするには、このパラメーターを選択します。

出力データ型を doublesingle、または boolean として選択します。このパラメーターは、出力端子と Err 端子の両方に出力データ型を設定します。

ブロックによって使用される乱数発生器の初期シードの値。整数として指定します。ブロックは、mt19937ar アルゴリズムを使用して、一様分布の乱数を生成させます。mt19937ar アルゴリズムの詳細については、乱数ストリームの作成と管理を参照してください。

実行するシミュレーションのタイプ。次のように指定します。

  • コード生成 –– 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink は対象ブロックの C コードを生成します。この C コードは、モデルが変更されない限り以降のシミュレーションで再利用されます。このオプションには、追加の起動時間が必要です。

  • インタープリター型実行 –– MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションで起動時間が短くなります。[インタープリター型実行] モードで、ブロックのソース コードをデバッグできます。

ブロックの特性

データ型

Boolean | double | fixed point | integer | single

多次元信号

いいえ

可変サイズの信号

いいえ

ヒント

  • 入力が Boolean 以外の値で構成されている場合、Binary Symmetric Channel はゼロ値の要素を 0 に変換し、非ゼロ値の要素を 1 に変換します。

  • Binary Symmetric Channel ブロックは、独立した RandStream を作成して使用し、確率を決定するための乱数ストリームを提供します。

  • 繰り返し可能な結果を生成するには、同じ Initial seed 値を使用します。

  • 独立した確率統計を生成するには、マルチチャネル信号、複数処理連鎖、またはシミュレーション実行に、異なる Initial seed 値を設定します。

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する