Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

mil188qamdemod

MIL-STD-188-110 B/C 標準固有の直交振幅復調

説明

z = mil188qamdemod(y,M) は、MIL-STD-188-110 と変調次数 M に従って変調された、入力信号 y で QAM 復調を実行します。MIL-STD-188-110 QAM 復調の詳細については、MIL-STD-188-110 QAM 硬復調およびMIL-STD-188-110 QAM 軟復調を参照してください。

z = mil188qamdemod(y,M,Name,Value) では、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。たとえば、'OutputDataType','double' では目的の出力データ型を double として指定します。名前と値のペアの引数は、他のすべての入力引数の後で指定します。

すべて折りたたむ

MIL-STD-188-110B で指定されているとおりに変調された 16-QAM 信号を復調します。受信コンスタレーションをプロットし、出力が入力と一致することを確認します。

変調次数を設定してランダム データを生成します。

M = 16;
numSym = 20000;
x = randi([0 M-1],numSym,1);

データを変調し、ノイズの多いチャネルを介して渡します。

txSig = mil188qammod(x,M);
rxSig = awgn(txSig,25,'measured');

送信された信号および受信された信号をプロットします。

plot(rxSig,'b*')
hold on; grid
plot(txSig,'r*')
xlim([-1.5 1.5]);
ylim([-1.5 1.5])
xlabel('In-Phase')
ylabel('Quadrature')
legend('Received constellation','Reference constellation')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Received constellation, Reference constellation.

受信信号を復調します。復調されたデータと元のデータを比較します。

z = mil188qamdemod(rxSig,M);
isequal(x,z)
ans = logical
   1

MIL-STD-188-110C で指定されているとおりに変調された 64-QAM 信号を復調します。硬判定ビット出力を計算し、出力が入力と一致することを確認します。

変調次数を設定してランダム ビット データを生成します。

M = 64;
numBitsPerSym = log2(M);
x = randi([0 1],1000*numBitsPerSym,1);

データを変調します。名前と値のペアを使用して、ビット入力データを指定し、コンスタレーションをプロットします。

txSig = mil188qammod(x,M,'InputType','bit','PlotConstellation',true);

Figure contains an axes. The axes with title MIL188 64-QAM , UnitAveragePower=false contains 67 objects of type line, text.

受信信号を復調します。復調されたデータと元のデータを比較します。

z = mil188qamdemod(txSig,M,'OutputType','bit');
isequal(z,x)
ans = logical
   1

32-QAM 信号を復調して、軟ビットを計算します。

変調次数を設定し、ランダム ビット シーケンスを生成します。

M = 32;
numSym = 20000;
numBitsPerSym = log2(M);
x = randi([0 1], numSym*numBitsPerSym,1);

データを変調します。名前と値のペアを使用して、ビット入力データと単位平均パワーを指定し、コンスタレーションをプロットします。

txSig = mil188qammod(x,M,'InputType','bit','UnitAveragePower',true, ...
    'PlotConstellation',true);

Figure contains an axes. The axes with title MIL188 32-QAM , UnitAveragePower=true contains 35 objects of type line, text.

送信されたデータをホワイト ガウス ノイズを介して渡します。

rxSig = awgn(txSig,10,'measured');

散布図を使用してコンスタレーションを表示します。

scatterplot(rxSig) 

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

近似 LLR アルゴリズムを使用して軟ビットを計算し、信号を復調します。

z = mil188qamdemod(rxSig,M,'OutputType','approxllr', ...
     'NoiseVariance',10^(-1));

入力引数

すべて折りたたむ

変調した信号。複素数のスカラー、ベクトルまたは行列として指定します。y が行列の場合、各列が個別のチャネルとして扱われます。

y は MIL-STD-188-110[1]に従って変調されていなければなりません。

データ型: single | double
複素数のサポート: あり

変調次数。2 のべき乗として指定します。変調次数は信号コンスタレーションの合計ポイント数を指定します。

例: 16

データ型: double

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: y = mil188qamdemod(x,M,'OutputType','bit','OutputDataType','single');

出力タイプ。OutputType と、'integer''bit''llr' または 'approxllr' から成るコンマ区切りのペアとして指定します。

データ型: char | string

出力データ型。OutputDataType と指定されたデータ型のいずれかで構成されるコンマ区切りのペアとして指定します。OutputDataType で使用可能な値は、OutputType の値によって異なります。

OutputType の値使用可能な OutputDataType の値
'integer''double''single''int8''int16''int32''uint8''uint16' または 'uint32'
'bit''double''single''int8''int16''int32''uint8''uint16''uint32' または 'logical'

依存関係

この名前と値のペアの引数が適用されるのは、OutputType'integer' または 'bit' に設定されているときだけです。

データ型: char | string

単位平均パワー フラグ。UnitAveragePower と論理スカラーとで構成されるコンマ区切りペアとして指定します。このフラグが true の場合、関数は 1 オームを基準とした 1 ワットの平均電力にコンスタレーションをスケーリングします。このフラグが false の場合、関数は[1]で説明されている関連する標準の仕様に基づいてコンスタレーションをスケーリングします。

データ型: logical

ノイズ分散。NoiseVariance と正のスカラー値または正のベクトル値で構成されるコンマ区切りのペアとして指定します。

  • スカラーとして指定する場合、同じノイズ分散値がすべての入力要素で使用されます。

  • ベクトルとして指定する場合、ベクトルの長さは入力信号の列数に等しくなければなりません。

ノイズ分散または信号強度の計算結果に極端な正または負の振幅が含まれる場合は、アルゴリズム選択の考慮事項について、MIL-STD-188-110 QAM 軟復調を参照してください。

依存関係

この名前と値のペアの引数が適用されるのは、OutputType'llr' または 'approxllr' に設定されているときだけです。

データ型: double

コンスタレーションをプロットするためのオプション。'PlotConstellation' と論理スカラーとで構成されるコンマ区切りペアで指定します。コンスタレーションをプロットするには、PlotConstellationtrue に設定します。

データ型: logical

出力引数

すべて折りたたむ

復調した信号。スカラー、ベクトルまたは行列として返されます。z の次元は、指定した OutputType 値によって異なります。

OutputType の値mil188qamdemod の戻り値z の次元
'integer'復調された 0 ~ (M – 1) の整数値z の次元は入力 y と同じになります。
'bit'復調されたビットz の行数は、y の行数の log2(sum(M)) 倍になります。復調された各シンボルは列の log2(sum(M)) 要素のグループにマッピングされます。ここで、最初の要素は MSB を表し、最後の要素は LSB を表します。
'llr'各ビットの対数尤度比の値
'approxllr'各ビットの近似対数尤度比の値

詳細

すべて折りたたむ

MIL-STD-188-110 QAM 硬復調

硬復調アルゴリズムでは、最適な判定の領域ベースの復調を使用します。すべてのコンスタレーション点は確率が等しいため、最大事後確率 (MAP) 検出は最尤 (ML) 検出まで減少します。ML 検出規則は、受信シンボルに最も近いコンスタレーション点を選択することと同等です。各コンスタレーション点の判定領域は、隣接する点の間に垂直二等分線を描画することで設計されます。受信シンボルは、それが存在する判定領域に基づいて、適切なコンスタレーション点にマッピングされます。

すべての MIL-STD コンスタレーションは象限を中心として対称であるため、各シンボルについて最適な判定の領域ベース復調は次のように行われます。

  • 受信シンボルを第 1 象限にマッピングする

  • シンボルの判定領域を選択する

  • 受信シンボルの実数部と虚数部の符号を使用してコンスタレーション点をその元の象限にマッピングし直す

MIL-STD-188-110 QAM 軟復調

軟復調では、2 つの軟判定対数尤度比 (LLR) アルゴリズム (厳密な LLR と近似 LLR) を使用できます。次の表では、これらのアルゴリズムを比較しています。

アルゴリズム精度実行速度
厳密な LLR精度が高い実行が遅い
近似 LLR精度が低い実行が速い

各アルゴリズムの詳細については、厳密な LLR アルゴリズムおよび近似 LLR アルゴリズムを参照してください。

メモ

厳密な LLR アルゴリズムは有限の精度演算で指数を計算します。非常に大きな正または負の振幅による指数の計算では、以下が得られることがあります。

  • ノイズ分散が極度に大きい値の場合は、Inf または -Inf

  • ノイズ分散および信号強度の両方が極度に小さい値である場合は、NaN

出力でこれらの値のいずれかが返される場合は、近似 LLR アルゴリズムの使用を試してください。このアルゴリズムでは指数が計算されないためです。

参照

[1] MIL-STD-188-110B & C: "Interoperability and Performance Standards for Data Modems." Department of Defense Interface Standard, USA.

拡張機能

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

R2018a で導入