Main Content

mil188qammod

MIL-STD-188-110 B/C 標準固有の直交振幅変調 (QAM)

説明

y = mil188qammod(x,M) は、MIL-STD-188-110 と変調次数 M に従って、入力信号 x で QAM 変調を実行します。詳細については、MIL-STD-188-110を参照してください。

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

すべて折りたたむ

MIL-188-110C 標準で指定されている 32-QAM を使用してデータを変調します。結果を散布図を使用して表示します。

M を 32 に設定し、すべての予想されるシンボルを含むデータ ベクトルを作成します。

M = 32;
x = (0:M-1);

MIL-STD-188-110C で指定されている QAM を使用してデータを変調します。

y = mil188qammod(x,M);

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

scatterplot(y)

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

MIL-STD-188-110B 標準で指定されている 16-QAM を使用してデータを変調します。平均信号強度が 1 W になるように変調器出力を正規化します。

M を設定し、ランダム データを生成します。

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

MIL-STD-188-110B で指定されている 16-QAM を適用してデータを変調します。名前と値のペアを使用して、単位平均パワーを true に設定し、コンスタレーションのプロットを有効にします。

y = mil188qammod(x,M,'UnitAveragePower',true,'PlotConstellation',true);

Figure contains an axes object. The axes object with title MIL188 16-QAM , UnitAveragePower=true, xlabel In-phase Amplitude, ylabel Quadrature Amplitude contains 19 objects of type line, text. One or more of the lines displays its values using only markers

信号がほぼ単位平均パワーをもつことを検証します。

avgPow = mean(abs(y).^2)
avgPow = 1.0012

MIL-STD188-110B により指定されている 64-QAM を使用してビットのシーケンスを変調します。コンスタレーションを表示します。

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

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

MIL-STD-188-110B により指定されている 64-QAM を適用してデータを変調し、single データ型のコンスタレーション シンボルを出力します。

y = mil188qammod(data,M,'InputType','bit','OutputDataType','single');

結果のコンスタレーションを、散布図を使用してプロットします。

scatterplot(y)

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

入力引数

すべて折りたたむ

入力信号。スカラー、ベクトルまたは行列として指定します。x の要素は、バイナリ値または 0 ~ (M – 1) の範囲の整数でなければなりません。ここで M は変調次数です。

メモ

入力信号をバイナリの要素として処理するには、'InputType' の値を 'bit' に設定します。バイナリ入力の場合、行数は log2(M) の整数倍でなければなりません。列の log2(M) ビットのグループがシンボルにマッピングされます。ここで、最初のビットは MSB を表し、最後のビットは LSB を表します。

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

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

例: 16

データ型: double

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: y = mil188qammod(data,M,'InputType','bit','OutputDataType','single');

入力タイプ。'InputType''integer' または 'bit' のどちらかで構成されるコンマ区切りのペアとして指定します。'integer' を指定する場合、入力信号は 0 ~ M – 1 の整数で構成されなければなりません。'bit' を指定する場合は、入力信号がバイナリ値を含まなければならず、行数は log2(M) の整数倍でなければなりません。

データ型: char | string

出力データ型。OutputDataType'double' または 'single' で構成されるコンマ区切りのペアとして指定します。

データ型: char | string

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

データ型: logical

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

データ型: logical

出力引数

すべて折りたたむ

変調された信号。複素数のスカラー、ベクトル、または行列として返されます。出力の次元は、指定した InputType 値によって異なります。

InputType出力の次元
'integer'y の次元は入力 x と同じになります。
'bit'y の行数は log2(M) で除算した x の行数と等しくなります。

データ型: double | single

詳細

すべて折りたたむ

MIL-STD-188-110

MIL-STD-188-110 は、データ信号および音声信号両方のシリアル PSK モードを使用した HF 通信のための、米国国防総省の規格です。

この規格では、戦術および長距離通信のための物理レイヤーの変調方式が指定されています。この規格により指定されている変調方式は、QAM と APSK の混合です。変調方式の詳細については、[1]を参照してください。

参照

[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 で導入