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 信号を復調します。受信コンスタレーションをプロットし、出力が入力と一致することを確認します。
変調次数を設定してランダム データを生成します。
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 信号を復調します。硬判定ビット出力を計算し、出力が入力と一致することを確認します。
変調次数を設定してランダム ビット データを生成します。
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
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));
入力引数
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: Z = mil188qamdemod(Y,M,OutputType='bit',OutputDataType='single');
出力タイプ。'integer'、'bit'、'llr'、または 'approxllr' として指定します。返される出力の説明については、Z を参照してください。
出力のデータ型。この表にリストされているデータ型のいずれかとして指定します。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 のデータ型と一致します。
単位平均パワー フラグ。logical の 0 (false) または 1 (true) として指定します。
UnitAveragePowerがtrueの場合、関数は 1 オームを基準とした 1 ワットの平均電力にコンスタレーションをスケーリングします。UnitAveragePowerがfalseの場合、関数は[1]で説明されている関連する標準の仕様に基づいてコンスタレーションをスケーリングします。
データ型: logical
ノイズ分散。次のいずれかのオプションとして指定します。
正のスカラー — 関数はすべての入力要素で同じノイズ分散値を使用します。
正の値のベクトル — 対応する最後の次元に沿った入力のすべての要素で、関数はベクトルの各要素によって指定されたノイズ分散を使用します。ベクトルの長さは入力信号の列数に等しくなければなりません。
ノイズ分散または信号強度の計算結果に極端な正または負の振幅が含まれる場合は、アルゴリズム選択の考慮事項について、MIL-STD-188-110 QAM 軟復調を参照してください。
依存関係
この名前と値のペアの引数が適用されるのは、OutputType が 'llr' または 'approxllr' に設定されているときだけです。
データ型: double
コンスタレーションをプロットするためのオプション。logical 0 (false) または logical 1 (true) として指定します。コンスタレーションをプロットするには、PlotConstellation を true に設定します。
データ型: logical
出力引数
復調した信号。スカラー、ベクトルまたは行列として返されます。この出力の値と次元は、次の表に示すように、指定した OutputType 値によって異なります。
アルゴリズム
硬復調アルゴリズムでは、最適な判定の領域ベースの復調を使用します。すべてのコンスタレーション点は確率が等しいため、最大事後確率 (MAP) 検出は最尤 (ML) 検出まで減少します。ML 検出規則は、受信シンボルに最も近いコンスタレーション点を選択することと同等です。各コンスタレーション点の判定領域は、隣接する点の間に垂直二等分線を描画することで設計されます。受信シンボルは、それが存在する判定領域に基づいて、適切なコンスタレーション点にマッピングされます。
すべての MIL-STD コンスタレーションは象限を中心として対称であるため、各シンボルについて最適な判定の領域ベース復調は次のように行われます。
受信シンボルを第 1 象限にマッピングする
シンボルの判定領域を選択する
受信シンボルの実数部と虚数部の符号を使用してコンスタレーション点をその元の象限にマッピングし直す
軟復調では、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 Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)