ドキュメンテーション

目次

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

comm.HDLRSEncoder System object

パッケージ: comm

リード・ソロモン符号器を使用してデータを符号化する

説明

HDL 最適化 HDLRSEncoder System object™ は、指定したメッセージ長と符号語長でリード・ソロモン符号を作成します。

HDL コードの生成用に最適化されたリード・ソロモン符号を作成するには、以下の手順に従います。

  1. HDL RS 符号器オブジェクトを定義および設定します。「構築」を参照してください。

  2. step を呼び出して、comm.HDLRSEncoder のプロパティに従い、リード・ソロモン符号語ベクトルからメッセージ ベクトルを復元します。step の動作は、ツールボックスの各オブジェクト固有のものです。

構築

H = comm.HDLRSEncoder は、HDL に対してストリーミング方式でリード・ソロモン (RS) 符号化を実行する、ブロック符号器 System object、H を返します。

H = comm.HDLRSEncoder(Name,Value,) は、1 つまたは複数の Name,Value ペアの引数で追加オプションを指定して、HDL に最適化されたブロック符号器の System object、H を作成します。ここで、Nameプロパティ名Value はその対応する値です。Name は単一引用符 ('') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前/値のペアの引数を任意の順番で指定できます。

H = comm.HDLRSEncoder(N,K,Name,Value) は、CodewordLength プロパティを N、MessageLength プロパティを K、その他の指定された プロパティ Name をその指定値に設定して、RS 符号器オブジェクト H を作成します。

プロパティ

B

多項式生成の B 値

BSource

B のソース、原始多項式の根の開始累乗

B のソースの値を以下のいずれかで指定します。

  • [自動]:B=0

  • プロパティ

既定の設定: Auto

CodewordLength

符号語長

RS 符号の符号語長を倍精度、正の整数スカラー値として指定します。既定の設定は 7 です。

PrimitivePolynomialSource プロパティを Auto に設定した場合、CodewordLength は 3 < CodewordLength 216–1 の範囲内でなければなりません。

PrimitivePolynomialSource プロパティを Property に設定した場合、CodewordLength は 3 CodewordLength 2M–1 の範囲内でなければなりません。M は、PrimitivePolynomialSource プロパティと PrimitivePolynomial プロパティで指定する原始多項式の次数です。M は、3 M 16 の範囲内でなければなりません。差 (CodewordLengthMessageLength) は偶数の整数でなければなりません。このプロパティの値は 2M–1 に丸められます。

このプロパティの値が 2M–1 未満の場合、オブジェクトは短縮された RS 符号とみなされます。

MessageLength

メッセージ長

メッセージ長を倍精度、正の整数スカラー値として指定します。既定の設定は 3 です。差 (CodewordLengthMessageLength) は偶数の整数でなければなりません。

PrimitivePolynomialSource

原始多項式のソース

原始多項式のソースを Auto または Property として指定します。既定の設定は Auto です。

このプロパティを Auto に設定すると、オブジェクトは次数 M = ceil(log2(CodewordLength+1)) の原始多項式を使用します。これは fliplr(de2bi(primpoly(M))) の結果です。

このプロパティを Property に設定した場合、PrimitivePolynomial プロパティを使用して多項式を指定できます。

PrimitivePolynomial

原始多項式

メッセージと符号語を形成する整数に対応して、有限体 GF(2M) を定義する原始多項式を指定します。このプロパティを、降べきの順に次数 M の GF(2) の上の原始多項式を表す倍精度、バイナリの行ベクトルに設定しなければなりません。

このプロパティは、PrimitivePolynomialSource プロパティを Property に設定した場合に適用されます。

PuncturePatternSource

パンクチャ パターンのソース

パンクチャ パターンのソースを None または Property として指定します。既定の設定は None です。このプロパティを None に設定すると、オブジェクトはコードにパンクチャを適用しません。このプロパティを Property に設定すると、オブジェクトは PuncturePattern プロパティで指定したパンクチャ パターン ベクトルに基づいてコードをパンクチャします。

PuncturePattern

パンクチャ パターン ベクトル

符号化されたデータをパンクチャするために使用するパターンを、長さ (CodewordLengthMessageLength) の倍精度、バイナリ列ベクトルとして指定します。既定の設定は [ones(2,1); zeros(2,1)] です。パンクチャ パターン ベクトルのゼロは、パンクチャされる、つまり各符号語から除外されるパリティ シンボルの位置を示します。このプロパティは、PuncturePatternSource プロパティを Property に設定した場合に適用されます。

メソッド

clone 同じプロパティ値をもつ HDLRSEncoder System object の作成
isLocked入力属性と調整不可能なプロパティのロック状態
releaseプロパティ値と入力特性の変更を許可
stepリード・ソロモン符号化の実行

乱数データの DVD-II 標準パケットを RS 符号化します。

    hHDLEnc = comm.HDLRSEncoder(204,188,'BSource','Property','B',0);
    hRSEnc  = comm.RSEncoder(204,188,...
                             'GeneratorPolynomialSource','Property',...
                             'GeneratorPolynomial',rsgenpoly(255,239,[],0));
    dataIn = [randi([0,255],188,1,'uint8') ; zeros(255-188,1)];
    for ii = 1:255
      [dataOut(ii), startOut(ii), endOut(ii), validOut(ii)] = step(hHDLEnc, dataIn(ii), ii==1, ii==188, ii<=188);
    end
    % Check the result:
    Y = step(hRSEnc,dataIn(1:188));
    assert(all(Y == dataOut(validOut)'))
 
この情報は役に立ちましたか?