mil188qamdemod
MIL-STD-188-110 B/C 標準固有の直交振幅復調
説明
は、MIL-STD-188-110 と変調次数 Z
= mil188qamdemod(Y
,M
)M
に従って変調された入力信号 Y
を復調します。MIL-STD-188-110 QAM 復調の詳細については、MIL-STD-188-110 QAM 硬復調およびMIL-STD-188-110 QAM 軟復調を参照してください。
は、オプションの名前と値の引数を指定します。たとえば、Z
= mil188qamdemod(Y
,M
,Name=Value
)mil188qamdemod(Y,M,PlotConstellation=true)
は、変調次数 M
を指定し、コンスタレーションをプロットします。名前と値の引数は、他のすべての入力引数の後で指定します。
例
MIL-STD-188-110B 固有の 16-QAM 信号の復調
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')
受信信号を復調します。復調されたデータと元のデータを比較します。
z = mil188qamdemod(rxSig,M); isequal(x,z)
ans = logical
1
MIL-STD-188-110C 固有の 64-QAM 信号の復調
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);
受信信号を復調します。復調されたデータと元のデータを比較します。
z = mil188qamdemod(txSig,M,OutputType='bit');
isequal(z,x)
ans = logical
1
MIL-STD-188-110 固有の 32-QAM 信号の軟ビット復調
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);
送信されたデータをホワイト ガウス ノイズを介して渡します。
rxSig = awgn(txSig,10,'measured');
散布図を使用してコンスタレーションを表示します。
scatterplot(rxSig)
近似 LLR アルゴリズムを使用して軟ビットを計算し、信号を復調します。
z = mil188qamdemod(rxSig,M,OutputType='approxllr', ... NoiseVariance=10^(-1));
入力引数
Y
— 変調した信号
スカラー | ベクトル | 行列
変調した信号。複素数のスカラー、ベクトルまたは行列として指定します。Y
が行列の場合、各列が個別のチャネルとして扱われます。
Y
は MIL-STD-188-110 [1]に従って変調されていなければなりません。
データ型: single
| double
複素数のサポート: あり
M
— 変調次数
2 の正の整数乗
変調次数。2 の正の整数乗として指定します。変調次数は信号コンスタレーション点の合計数を指定します。
例: 16
データ型: double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: Z = mil188qamdemod(Y,M,OutputType='bit',OutputDataType='single');
OutputType
— 出力タイプ
'integer'
(既定値) | 'bit'
| 'llr'
| 'approxllr'
出力タイプ。'integer'
、'bit'
、'llr'
、または 'approxllr'
として指定します。返される出力の説明については、Z
を参照してください。
OutputDataType
— 出力のデータ型
'double'
(既定値) | ...
出力のデータ型。この表にリストされているデータ型のいずれかとして指定します。OutputDataType
で使用可能な値は、OutputType
の値によって異なります。
OutputType の値 | 使用可能な OutputDataType の値 |
---|---|
'integer' | 'double' 、'single' 、'int8' 、'int16' 、'int32' 、'uint8' 、'uint16' または 'uint32' |
'bit' | 'double' 、'single' 、'int8' 、'int16' 、'int32' 、'uint8' 、'uint16' 、'uint32' または 'logical' |
既定値は、入力 Y
のデータ型になります。
依存関係
この引数を有効にするには、OutputType
を 'integer'
または 'bit'
に設定します。そうでない場合、出力のデータ型は入力 Y
のデータ型と一致します。
UnitAveragePower
— 単位平均パワー フラグ
false
または 0
(既定値) | true
または 1
単位平均パワー フラグ。logical の 0
(false
) または 1
(true
) として指定します。
UnitAveragePower
がtrue
の場合、関数は 1 オームを基準とした 1 ワットの平均電力にコンスタレーションをスケーリングします。UnitAveragePower
がfalse
の場合、関数は[1]で説明されている関連する標準の仕様に基づいてコンスタレーションをスケーリングします。
データ型: logical
NoiseVariance
— ノイズ分散
1
(既定値) | 正のスカラー | 正の値のベクトル
ノイズ分散。次のいずれかのオプションとして指定します。
正のスカラー — 関数はすべての入力要素で同じノイズ分散値を使用します。
正の値のベクトル — 対応する最後の次元に沿った入力のすべての要素で、関数はベクトルの各要素によって指定されたノイズ分散を使用します。ベクトルの長さは入力信号の列数に等しくなければなりません。
ノイズ分散または信号強度の計算結果に極端な正または負の振幅が含まれる場合は、アルゴリズム選択の考慮事項について、MIL-STD-188-110 QAM 軟復調を参照してください。
依存関係
この名前と値のペアの引数が適用されるのは、OutputType
が 'llr'
または 'approxllr'
に設定されているときだけです。
データ型: double
PlotConstellation
— コンスタレーションをプロットするためのオプション
false
または 0
(既定値) | true
または 1
コンスタレーションをプロットするためのオプション。logical 0
(false
) または logical 1
(true
) として指定します。コンスタレーションをプロットするには、PlotConstellation
を true
に設定します。
データ型: logical
出力引数
Z
— 復調した信号
スカラー | ベクトル | 行列
復調した信号。スカラー、ベクトルまたは行列として返されます。この出力の値と次元は、次の表に示すように、指定した OutputType
値によって異なります。
アルゴリズム
MIL-STD-188-110 QAM 硬復調
硬復調アルゴリズムでは、最適な判定の領域ベースの復調を使用します。すべてのコンスタレーション点は確率が等しいため、最大事後確率 (MAP) 検出は最尤 (ML) 検出まで減少します。ML 検出規則は、受信シンボルに最も近いコンスタレーション点を選択することと同等です。各コンスタレーション点の判定領域は、隣接する点の間に垂直二等分線を描画することで設計されます。受信シンボルは、それが存在する判定領域に基づいて、適切なコンスタレーション点にマッピングされます。
すべての MIL-STD コンスタレーションは象限を中心として対称であるため、各シンボルについて最適な判定の領域ベース復調は次のように行われます。
受信シンボルを第 1 象限にマッピングする
シンボルの判定領域を選択する
受信シンボルの実数部と虚数部の符号を使用してコンスタレーション点をその元の象限にマッピングし直す
MIL-STD-188-110 QAM 軟復調
軟復調では、2 つの軟判定対数尤度比 (LLR) アルゴリズム (厳密な LLR と近似 LLR) を使用できます。厳密な LLR アルゴリズムは近似 LLR アルゴリズムよりも正確ですが実行速度が遅くなります。各アルゴリズムの詳細については、硬判定復調と軟判定復調のトピックを参照してください。
メモ
厳密な LLR アルゴリズムは有限の精度演算で指数を計算します。計算に非常に大きな正または負の振幅が含まれる場合、厳密な LLR アルゴリズムの結果は次のようになります。
ノイズ分散が極度に大きい値の場合は、
Inf
または-Inf
ノイズ分散と信号強度の両方が非常に小さい値の場合は
NaN
近似 LLR アルゴリズムでは指数が計算されません。近似 LLR アルゴリズムを使用することによって、Inf
、-Inf
、および NaN
の結果を回避できます。
参照
[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 で導入
参考
関数
オブジェクト
トピック
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)