このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
mil188qamdemod
MIL-STD-188-110 B/C 標準固有の直交振幅復調
説明
は、MIL-STD-188-110 と変調次数 z
= mil188qamdemod(y
,M
)M
に従って変調された、入力信号 y
で QAM 復調を実行します。MIL-STD-188-110 QAM 復調の詳細については、MIL-STD-188-110 QAM 硬復調およびMIL-STD-188-110 QAM 軟復調を参照してください。
では、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。たとえば、z
= mil188qamdemod(y
,M
,Name,Value
)'OutputDataType','double'
では目的の出力データ型を double として指定します。名前と値のペアの引数は、他のすべての入力引数の後で指定します。
例
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 のべき乗として指定します。変調次数は信号コンスタレーション点の合計数を指定します。
例: 16
データ型: double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: y = mil188qamdemod(x,M,'OutputType','bit','OutputDataType','single');
OutputType
— 出力タイプ
'integer'
(既定値) | 'bit'
| 'llr'
| 'approxllr'
出力タイプ。OutputType
と、'integer'
、'bit'
、'llr'
または 'approxllr'
から成るコンマ区切りのペアとして指定します。
データ型: char
| string
OutputDataType
— 出力データ型
'double'
(既定値) | ...
出力データ型。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
— 単位平均パワー フラグ
false
(既定値) | true
単位平均パワー フラグ。UnitAveragePower
と logical スカラーとで構成されるコンマ区切りペアとして指定します。このフラグが true
の場合、関数は 1 オームを基準とした 1 ワットの平均電力にコンスタレーションをスケーリングします。このフラグが false
の場合、関数は[1]で説明されている関連する標準の仕様に基づいてコンスタレーションをスケーリングします。
データ型: logical
NoiseVariance
— ノイズ分散
1
(既定値) | 正のスカラー | 正の値のベクトル
ノイズ分散。NoiseVariance
と正のスカラー値または正のベクトル値で構成されるコンマ区切りのペアとして指定します。
スカラーとして指定する場合、同じノイズ分散値がすべての入力要素で使用されます。
ベクトルとして指定する場合、ベクトルの長さは入力信号の列数に等しくなければなりません。
ノイズ分散または信号強度の計算結果に極端な正または負の振幅が含まれる場合は、アルゴリズム選択の考慮事項について、MIL-STD-188-110 QAM 軟復調を参照してください。
依存関係
この名前と値のペアの引数が適用されるのは、OutputType
が 'llr'
または 'approxllr'
に設定されているときだけです。
データ型: double
PlotConstellation
— コンスタレーションをプロットするためのオプション
false
(既定値) | true
コンスタレーションをプロットするためのオプション。'PlotConstellation'
と logical スカラーとで構成されるコンマ区切りペアで指定します。コンスタレーションをプロットするには、PlotConstellation
を true
に設定します。
データ型: logical
出力引数
z
— 復調した信号
スカラー | ベクトル | 行列
復調した信号。スカラー、ベクトルまたは行列として返されます。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)