Main Content

comm.DifferentialDecoder

差動復号化によるバイナリ信号の復号化

説明

comm.DifferentialDecoder System object™ はバイナリ入力信号を復号化します。出力はチャネル内の連続的な入力要素間の論理差です。詳細については、アルゴリズムを参照してください。

差動復号化を使用してバイナリ信号を復号化するには、以下の手順に従います。

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

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

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

作成

説明

diffdec = comm.DifferentialDecoder は差動復号化器 System object を作成します。このオブジェクトは、以前に差動符号化器で符号化したバイナリ入力信号を復号化します。

diffdec = comm.DifferentialDecoder(Name=Value) は、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、comm.DifferentialDecoder(InitialCondition=5) は、差動復号化器の初期条件を 5 に設定します。

diffdec = comm.DifferentialDecoder(initcond) は、InitialConditioninitcond に設定して差分復号化器オブジェクトを作成します。たとえば、initcond1 に設定されている場合、この構文は差分復号化器オブジェクトを作成し、初期出力の生成に使用される初期値を 1 に設定します。

プロパティ

すべて展開する

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

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

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

初期出力を生成するために復号化器によって使用される初期値。スカラー値として指定します。オブジェクトは、非ゼロの値を 1 として解釈して、非バイナリ値をバイナリとして扱います。

データ型: double | logical

使用法

説明

Y = diffdec(X) は、差分復号化スキームを使用して差分符号化された入力データ X を復号化し、復号化されたデータ Y を返します。詳細については、アルゴリズムを参照してください。

入力引数

すべて展開する

差分符号化されたメッセージ。スカラー、ベクトル、または行列として指定します。オブジェクトは、非バイナリ入力をバイナリ信号として扱います。

入力が行列または行ベクトルの場合、オブジェクトは各列を個別のチャネルとして扱います。

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

出力引数

すべて展開する

復号化されたメッセージ。バイナリ値のスカラー、ベクトル、または行列として返されます。この出力信号は、入力 X と同じ次元とデータ型をもちます。

オブジェクト関数

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

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて折りたたむ

差動符号化器および復号化器のペアを作成します。

diffEnc = comm.DifferentialEncoder;
diffDec = comm.DifferentialDecoder;

ランダムなバイナリ データを生成します。データを差分で符号化および復号化します。

data = randi([0 1],100,1);
encData = diffEnc(data);
decData = diffDec(encData);

元のデータと復号化したデータの間の誤りの数を求めます。

numErrors = biterr(data,decData)
numErrors = 0

アルゴリズム

comm.DifferentialDecoder の出力はチャネル内の連続的な入力要素間の論理差です。さらに具体的に言えば、入力と出力は次のような関係になります。

  • m(i1) = d(i1) XOR lastInupt (== 最初の入力要素の InitialCondition プロパティ値)

  • m(ik) = d(ik) XOR d(ik-1)。ここで、k = 2:inputLen

  • lastInput = d(ik)

ここで、

  • d は差分符号化された入力。

  • m は出力メッセージ。

  • ik は k 番目の要素。

  • inputLen は d の長さ。

  • lastInput は d の最後の要素。

  • XOR は排他的論理和または演算子。

拡張機能

バージョン履歴

R2012a で導入

参考

オブジェクト

ブロック