このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
apskdemod
振幅位相偏移変調 (APSK) 復調
説明
では、APSK 変調された信号の各 PSK リングの初期位相オフセットを指定します。z
= apskdemod(y
,M
,radii
,phaseoffset
)
では、1 つ以上の名前と値のペアの引数を使用して、前述の構文のいずれかで使用するオプションを指定します。たとえば、z
= apskdemod(___,Name,Value
)'OutputDataType','double'
では目的の出力データ型を double として指定します。名前と値のペアの引数は、他のすべての入力引数の後で指定します。
例
16-APSK 信号の復調
各円のコンスタレーション点の数が等しくない 16-APSK 信号を復調します。受信コンスタレーションをプロットします。
変調次数と PSK リングの半径のベクトルを定義します。ランダムな 16 値データ シンボルを生成します。
M = [4 12]; radii = [1 2]; modOrder = sum(M); x = randi([0 modOrder-1],1000,1);
データに APSK 変調を適用します。
txSig = apskmod(x,M,radii);
変調された信号をノイズの多いチャネルから渡します。
snr = 20; % dB rxSig = awgn(txSig,snr,'measured');
送信された (基準) 信号点とノイズの多い受信信号点をプロットします。
plot(rxSig,'b*') hold on grid plot(txSig,'r+') xlim([-3 3]) ylim([-3 3]) xlabel('In-Phase') ylabel('Quadrature') legend('Received constellation','Reference constellation')
受信信号を復調し、入力データと比較します。
z = apskdemod(rxSig,M,radii); isequal(x,z)
ans = logical
1
64-APSK カスタム シンボル マッピングされた信号の復調
カスタム シンボル マッピングされた 64-APSK 信号を復調します。硬判定ビット出力を計算し、入力が出力と一致することを確認します。
変調次数と PSK リングの半径のベクトルを定義します。ランダムなビット入力の 100 シンボルを生成します。
M = [8 12 16 28]; % 4-PSK circles
modOrder = sum(M);
radii = [0.5 1 1.3 2];
x = randi([0 1],100*log2(modOrder),1);
バイナリ マッピングのカスタム シンボル マッピング ベクトルを作成します。
cmap = 0:63;
データを変調し、コンスタレーションをプロットします。
y = apskmod(x,M,radii,'SymbolMapping',cmap,'inputType','bit', ... 'PlotConstellation',true);
受信信号を復調します。
z = apskdemod(y,M,radii,'SymbolMapping',cmap,'OutputType','bit');
復調された信号が元のデータと等しいことを検証します。
isequal(x,z)
ans = logical
1
32-APSK 信号の軟ビット復調
32-APSK 信号を復調して、軟ビットを計算します。
変調次数と PSK リングの半径のベクトルを定義します。ランダムなビット データのシンボルを 10000 個生成します。
M = [16 16]; modOrder = sum(M); radii = [0.6 1.2]; numSym = 10000; x = randi([0 1], numSym*log2(modOrder),1);
基準コンスタレーションを生成します。constellation diagram オブジェクトを作成します。
refAPSK = apskmod(0:modOrder-1,M,radii); constDiagAPSK = comm.ConstellationDiagram( ... ReferenceConstellation=refAPSK, ... Title='Received Symbols', ... XLimits=[-2 2], ... YLimits=[-2 2]);
データを変調します。
txSig = apskmod(x,M,radii,InputType='bit');
sigPow = var(txSig);
ノイズの多いチャネルを通して信号を渡します。
snr = 15;
rxSig = awgn(txSig,snr,sigPow,'linear');
基準および受信コンスタレーション シンボルをプロットします。
constDiagAPSK(rxSig)
信号を復調して、軟ビットを計算します。
z = apskdemod(rxSig,M,radii, ... OutputType='approxllr', ... NoiseVariance=sigPow/snr);
入力引数
y
— APSK 変調された信号
スカラー | ベクトル | 行列
APSK 変調された信号。複素数のスカラー、ベクトルまたは行列として指定します。各列が独立したチャネルとして扱われます。
データ型: double
| single
複素数のサポート: あり
M
— PSK リングあたりのコンスタレーション点
ベクトル
PSK リングあたりのコンスタレーション点。複数の要素をもつベクトルとして指定します。ベクトルの要素は、各 PSK リングのコンスタレーション点の数を示します。最初の要素は最も内部の円に対応し、最も外側の円に対応する最後の要素まで同様です。要素の値は 4 の倍数でなければならず、sum(
は 2 のべき乗でなければなりません。変調次数は信号コンスタレーション点の合計数であり、ベクトル要素 M
)sum(
の合計と等しくなります。M
)
例: [4 12 16]
は、変調次数が sum(M)
= 32 の 3 つの PSK リング コンスタレーションを指定します。
データ型: double
radii
— PSK リングの半径
ベクトル
PSK リングの半径。M
と同じ長さをもつベクトルとして指定します。最初の要素は最も内部の円に対応し、最も外側の円に対応する最後の要素まで同様です。要素は正で、昇順に並んでいなければなりません。
例: [0.5 1 2]
では、コンスタレーション PSK リングの半径を定義します。内側のリングは半径 0.5、2 番目のリングは半径 1.0、外側のリングは半径 2.0 をもちます。
データ型: double
phaseoffset
— PSK リングの位相オフセット
[pi/M(1) pi/M(2) … pi/M(end)]
(既定値) | スカラー | ベクトル
各 PSK リングの位相オフセット (ラジアン)。M
と同じ長さをもつベクトルまたはスカラーとして指定します。最初の要素は最も内部の円に対応し、最も外側の円に対応する最後の要素まで同様です。phaseoffset
をスカラーにできるのは、M
のすべての要素が同じ値である場合だけです。
例: [pi/4 pi/12 pi/16]
では、3 つのコンスタレーション PSK リングの位相オフセットを定義しています。内側のリングは位相オフセット pi/4、2 番目のリングは位相オフセット pi/12、外側のリングは位相オフセット pi/16 をもちます。
データ型: double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: y = apskdemod(x,M,radii,'OutputType','bit','OutputDataType','single');
SymbolMapping
— シンボル マッピング
'gray'
| 'contourwise-gray'
| 整数ベクトル
シンボル マッピング。SymbolMapping
と次のいずれかで構成されるコンマ区切りのペアとして指定します。
'contourwise-gray'
— 位相次元における等高線を基準としたグレイ マッピングを使用します。'gray'
— 振幅および位相の両方の次元における等高線を基準としたグレイ マッピングを使用します。グレイ シンボル マッピングでは、M
のすべての値が等しくなければならず、phaseoffset
のすべての値が等しくなければなりません。使用されるグレイ マッピングの説明については、[2]を参照してください。整数ベクトル — カスタム シンボル マッピングを使用します。ベクトルは、0 ~ (
sum(
) の値をもつM
)-1sum(
個の一意の要素で構成されなければなりません。最初の要素は最も内部の円の最初の四分円のコンスタレーション点に対応し、続く要素は PSK リングを中心に反時計回りに位置します。M
)
既定のシンボル マッピングは、M
と phaseOffset
によって異なります。M
と phaseOffset
のすべての要素が等しい場合、既定の設定は 'gray'
です。これ以外の場合は既定の設定は 'contourwise-gray'
です。
データ型: double
| char
| string
OutputType
— 出力タイプ
'integer'
(既定値) | 'bit'
| 'llr'
| 'approxllr'
出力タイプ。'OutputType'
と、'integer'
、'bit'
、'llr'
または 'approxllr'
から成るコンマ区切りのペアとして指定します。返される出力の説明については、z
を参照してください。
データ型: 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
NoiseVariance
— ノイズ分散
1
(既定値) | 正のスカラー | 正の値のベクトル
ノイズ分散。NoiseVariance
と正のスカラー値または正のベクトル値で構成されるコンマ区切りのペアとして指定します。
スカラーとして指定する場合、同じノイズ分散値がすべての入力要素で使用されます。
ベクトルとして指定する場合、ベクトルの長さは入力信号の列数に等しくなければなりません。
ノイズ分散または信号強度の計算結果に極端な正または負の振幅が含まれる場合は、アルゴリズム選択の考慮事項について、APSK 軟復調を参照してください。
依存関係
この名前と値のペアの引数が適用されるのは、OutputType
が 'llr'
または 'approxllr'
に設定されているときだけです。
データ型: double
PlotConstellation
— コンスタレーションをプロットするためのオプション
false
(既定値) | true
コンスタレーションをプロットするためのオプション。'PlotConstellation'
と論理スカラーとで構成されるコンマ区切りペアで指定します。コンスタレーションをプロットするには、PlotConstellation
を true
に設定します。
データ型: logical
出力引数
z
— 復調した信号
スカラー | ベクトル | 行列
復調した信号。スカラー、ベクトルまたは行列として返されます。z
の次元は、指定した OutputType
値によって異なります。
詳細
APSK 硬復調
APSK 軟復調
軟復調では、2 つの軟判定対数尤度比 (LLR) アルゴリズム (厳密な LLR と近似 LLR) を使用できます。厳密な LLR アルゴリズムは近似 LLR アルゴリズムよりも正確ですが実行速度が遅くなります。各アルゴリズムの詳細については、硬判定復調と軟判定復調のトピックを参照してください。
メモ
厳密な LLR アルゴリズムは有限の精度演算で指数を計算します。計算に非常に大きな正または負の振幅が含まれる場合、厳密な LLR アルゴリズムの結果は次のようになります。
ノイズ分散が極度に大きい値の場合は、
Inf
または-Inf
ノイズ分散と信号強度の両方が非常に小さい値の場合は
NaN
近似 LLR アルゴリズムでは指数が計算されません。近似 LLR アルゴリズムを使用することによって、Inf
、-Inf
、および NaN
の結果を回避できます。
参照
[1] Sebesta, J. “Efficient Method for APSK Demodulation.” Selected Topics on Applied Mathematics, Circuits, Systems, and Signals (P. Pardalos, N. Mastorakis, V. Mladenov, and Z. Bojkovic, eds.). Vouliagmeni, Athens, Greece: WSEAS Press, 2009.
[2] Liu, Z., Q. Xie, K. Peng, and Z. Yang. "APSK Constellation with Gray Mapping." IEEE Communications Letters. Vol. 15, Number 12, December 2011, pp. 1271–1273.
拡張機能
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)