Main Content

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

comm.ErrorRate

入力データのビットまたはシンボル エラー レートを計算

説明

comm.ErrorRate オブジェクトは、送信側からの入力データと受信側からの入力データを比較して、実行中の統計としてエラー レートを計算します。エラー レートを得るために、オブジェクトは 1 つのソースで、データ要素の等しくないペアの合計数を入力データ要素の合計数で除算します。

エラー レートを計算するには、次のようにします。

  1. comm.ErrorRate オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とはを参照してください。

作成

説明

errorRate = comm.ErrorRate は、エラー レート計算機 System object™ を作成します。このオブジェクトは、送信データと比較することで、受信データのエラー レートを計算します。

errorRate = comm.ErrorRate(Name=Value) は、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、ReceiveDelay = 5 は、受信データが送信データよりサンプル 5 個分遅れることを指定します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

送信データに対する受信データの遅延を示すサンプル数。非負の整数として指定します。このプロパティを使って、送受信される入力データ ベクトルに比較用のサンプルを配置します。

データ型: double

比較の開始時にオブジェクトが無視するデータ サンプルの数。非負の整数として指定します。このプロパティを使用して、両方の入力信号の遷移動作を無視します。

データ型: double

対象サンプル。次のいずれかの値として指定します。

  • Entire frame — 受信データのサンプルすべてと送信フレームの全サンプルを比較する

  • Custom — 比較を行うときの対象サンプルのインデックスを CustomSamples プロパティで設定する

  • Input port — 比較を行うときの対象サンプルのインデックスを ind 入力で設定する

データ型: char | string

データを比較するときの対象サンプルのインデックス。正の整数または正の整数の列ベクトルとして指定します。既定値は空のベクトルで、受信フレームからのサンプルすべてを使用するオブジェクトに対応します。

依存関係

このプロパティを有効にするには、Samples プロパティを Custom に設定します。

データ型: double

reset 入力の有効化。logical 1 (true) または logical 0 (false) として指定します。

データ型: logical

使用法

説明

y = errorRate(tx,rx) は、送信データ ベクトルと受信データ ベクトル (それぞれ txrx) の間の差異数をカウントします。

y = errorRate(tx,rx,ind) は、サンプル インデックス ind に基づいて、送信データ ベクトルと受信データ ベクトルの間の差異数をカウントします。この構文を有効にするには、Samples プロパティを Input port に設定します。

y = errorRate(___,reset) は、reset 入力を非ゼロ値に設定したときに誤り数をリセットします。この構文を有効にするには、ResetInputPort プロパティを 1 (true) に設定します。

入力引数

すべて展開する

送信データ ベクトル。スカラーまたは列ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

受信データ ベクトル。スカラーまたは列ベクトルとして指定します。

メモ

tx 入力や rx 入力をスカラーとして指定する場合、オブジェクトはこの値を他の入力のすべての要素と比較します。両方の入力をベクトルとして指定する場合、どちらも同じサイズとデータ型でなければなりません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

データを比較するときの対象サンプルのインデックス。正の整数または正の整数の列ベクトルとして指定します。

依存関係

この入力を有効にするには、Samples プロパティを Input port に設定します。

データ型: single | double

誤り数のリセット。logical 1 (true) または logical 0 (false) として指定します。オブジェクトの呼び出し間の誤り数をリセットするには、このプロパティを非ゼロの値に設定します。

依存関係

この入力を有効にするには、ResetInputPort プロパティを 1 (true) に設定します。

データ型: double | logical

出力引数

すべて展開する

送信データと受信データの間の差異。[R; N; S] 形式の列ベクトルとして返されます。ここで、

  • R はエラー レート

  • N は誤り数

  • S は比較するサンプル数

データ型: double

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて折りたたむ

2 つのバイナリ ベクトルを作成し、誤り統計を求めます。

ビット エラー レート カウンター オブジェクトを作成します。

errorRate = comm.ErrorRate;

バイナリ データ ベクトルを作成します。

tx = [1 0 1 0 1 0 1 0 1 0]';

最初と最後のビットに誤りを発生させます。

rx = tx;
rx(1) = ~rx(1);
rx(end) = ~rx(end);

送信データと受信データの間の差異を計算します。

y = errorRate(tx,rx);

ビット エラー レートを表示します。

y(1)
ans = 0.2000

誤り数を表示します。

y(2)
ans = 2

比較に使用したサンプルの総数を表示します。

y(3)
ans = 10

バイナリ データに使用する 8-DPSK 変調器と復調器のペアを作成します。

dpskModulator = comm.DPSKModulator( ...
    ModulationOrder=8,BitInput=true);
dpskDemodulator = comm.DPSKDemodulator( ...
    ModulationOrder=8,BitOutput=true);

エラー レート計算機を作成し、差分変調により発生する 3 ビット (1 シンボル) の過渡状態を考慮します。

errorRate = comm.ErrorRate( ...
    ComputationDelay=3,Samples="Input port");

指定されたサンプル インデックスの 10 フレームの BER を計算して表示します。

BER = zeros(10,1);
ind = (1:3:96)';

for i = 1:10
    tx = randi([0 1],96,1);      % Generate binary data
    modData = dpskModulator(tx); % Modulate
    rxSig = awgn(modData,7);     % Pass through AWGN channel
    rx = dpskDemodulator(rxSig); % Demodulate
    y = errorRate(tx,rx,ind);    % Compute error statistics
    BER(i) = y(1);               % Save BER data
end
BER
BER = 10×1

    0.0968
    0.1111
    0.0737
    0.0787
    0.0881
    0.0838
    0.0807
    0.0784
    0.0836
    0.0846

拡張機能

バージョン履歴

R2012a で導入