Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

dvbsapskdemod

DVB-S2/S2X/SH 標準固有の振幅位相偏移変調 (APSK) 復調

説明

z = dvbsapskdemod(y,M,stdSuffix) は、stdSuffix で識別されるデジタル ビデオ放送 (DVB) 標準と変調次数 M に従って変調された、APSK 入力信号 y を復調します。DVB 準拠の APSK 復調の詳細については、DVB 準拠の APSK 硬復調およびDVB 準拠の APSK 軟復調を参照してください。

z = dvbsapskdemod(y,M,stdSuffix,codeIDF) は、復調パラメーターを選択するときに使用する符号識別子 codeIDF を指定します。

z = dvbsapskdemod(y,M,stdSuffix,codeIDF,frameLength) は、復調パラメーターを選択するときに使用する codeIDFframeLength を指定します。

z = dvbsapskdemod(___,Name,Value) では、1 つ以上の名前と値のペアの引数を使用して、前述の構文のいずれかで使用するオプションを指定します。たとえば、'OutputDataType','double' では目的の出力データ型を指定します。名前と値のペアの引数は、他のすべての入力引数の後で指定します。

すべて折りたたむ

DVB-S2X で指定されているとおりに変調された 64-APSK 信号を復調します。硬判定整数出力を計算し、出力が入力と一致することを確認します。

変調次数および標準接尾辞を設定します。ランダム データを生成します。

M = 64;
std = 's2x';
x = randi([0 M-1],1000,1);

データを変調します。

y = dvbsapskmod(x,M,std);

受信信号を復調します。復調されたデータと元のデータを比較します。

z = dvbsapskdemod(y,M,std);
isequal(z,x)
ans = logical
   1

DVB-S2 で指定されているとおりに変調された 32-APSK 信号を復調します。硬判定ビット出力を計算し、出力が入力と一致することを確認します。

変調次数、標準接尾辞、および符号識別子を設定します。ランダム ビット データを生成します。

M = 32;
std = 's2';
codeIDF = '4/5';
numBitsPerSym = log2(M);
x = randi([0 1],100*numBitsPerSym,1,'uint32');

データを変調します。名前と値のペアを使用してビット入力データを指定します。

y = dvbsapskmod(x,M,std,codeIDF,'InputType','bit');

受信信号を復調します。復調されたデータと元のデータを比較します。

z = dvbsapskdemod(y,M,std,'4/5','OutputType','bit', ...
    'OutputDataType','uint32');
isequal(z,x)
ans = logical
   1

DVB-SH 準拠の 16-APSK 信号を復調して、軟ビットを計算します。

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

M = 16;
std = 'sh';
numSym = 20000;
numBitsPerSym = log2(M);
x = randi([0 1],numSym*numBitsPerSym,1);

データを変調します。名前と値のペアを使用してビット入力データを指定します。

txSig = dvbsapskmod(x,M,std,'InputType','bit');

変調された信号をノイズの多いチャネルから渡します。

rxSig = awgn(txSig,10,'measured');

散布図を使用して受信信号のコンスタレーションを表示します。

scatterplot(rxSig) 

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.

DVB-SH 準拠のコンスタレーションは単位平均パワーをもちます。近似 LLR アルゴリズムを使用して軟ビットを計算し、信号を復調します。

z = dvbsapskdemod(rxSig,M,std,'OutputType','approxllr', ...
     'NoiseVariance',0.1);

入力引数

すべて折りたたむ

APSK 変調された信号。複素数のスカラー、ベクトルまたは行列として指定します。y が行列の場合、各列が個別のチャネルとして扱われます。

y はデジタル ビデオ放送 (DVB) - 衛星通信標準 DVB-S2、DVB-S2X、または DVB-SH に従って変調されていなければなりません。詳細については、[1][2]、および[3]を参照してください。

データ型: single | double
複素数のサポート: あり

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

データ型: double

DVBS 変調バリアントの標準接尾辞。's2''s2x'、または 's2h' として指定します。

データ型: char | string

符号識別子。文字ベクトルまたは string として指定します。以下の表は、許容可能な codeIDF の値の一覧です。

コンスタレーション次数 (M)適用可能な標準 (stdSuffix)許容可能な符号識別子 (CodeIDF) の値
16

's2' または 's2x'

'2/3', '3/4', '4/5', '5/6', '8/9', '9/10'

16

's2x'

'26/45', '3/5', '28/45', '23/36', '25/36', '13/18', '7/9', '77/90', '100/180', '96/180', '90/180', '18/30', '20/30'

32

's2' または 's2x'

'3/4', '4/5', '5/6', '8/9', '9/10'

32

's2x'

'32/45', '11/15', '7/9', '2/3'

64

's2x'

'11/15', '7/9', '4/5', '5/6', '128/180'

128

's2x'

'3/4', '7/9'

256

's2x'

'32/45', '3/4', '116/180', '20/30', '124/180', '22/30'

詳細については、DVB-S2 標準 [1] の Table 9 と Table 10、DVB-S2X 標準 [2] の Table 17a を参照してください。

依存関係

この入力引数は、stdSuffix's2' または 's2x' に設定した場合にのみ適用されます。

データ型: char | string

フレーム長。'normal' または 'short' として指定します。関数は frameLength および codeIDF を使用して、変調パラメーターを選択します。

依存関係

この入力引数は、stdSuffix's2' または 's2x' に設定した場合にのみ適用されます。

データ型: char | string

名前と値の引数

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

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

例: y = dvbsapskdemod(x,M,stdSuffix,'InputType','bit','OutputDataType','single');

出力タイプ。OutputType と、'integer''bit''llr' または 'approxllr' から成るコンマ区切りのペアとして指定します。返される出力の説明については、z を参照してください。

データ型: char | string

出力データ型。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 と logical スカラーとで構成されるコンマ区切りペアとして指定します。このフラグが true の場合、関数は 1 オームを基準とした 1 ワットの平均電力にコンスタレーションをスケーリングします。このフラグが false の場合、関数は[1]および[2]で説明されている関連する規格の仕様に基づいてコンスタレーションをスケーリングします。

メモ

stdSuffix'sh' に設定されている場合、コンスタレーションは常に単位平均パワーをもちます。

依存関係

この名前と値のペアの引数が適用されるのは、stdSuffix's2' または 's2x' に設定されているときだけです。

データ型: logical

ノイズ分散。NoiseVariance と正のスカラー値または正のベクトル値で構成されるコンマ区切りのペアとして指定します。

  • スカラーとして指定する場合、同じノイズ分散値がすべての入力要素で使用されます。

  • ベクトルとして指定する場合、ベクトルの長さは入力信号の列数に等しくなければなりません。

ノイズ分散または信号強度の計算結果に極端な正または負の振幅が含まれる場合は、アルゴリズム選択の考慮事項について、DVB 準拠の APSK 軟復調を参照してください。

依存関係

この名前と値のペアの引数が適用されるのは、OutputType'llr' または 'approxllr' に設定されているときだけです。

データ型: double

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

データ型: logical

出力引数

すべて折りたたむ

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

OutputType の値dvbsapskdemod の戻り値z の次元
'integer'復調された 0 ~ (M – 1) の整数値z の次元は入力 y と同じになります。
'bit'復調されたビットz の行数は、y の行数の log2(sum(M)) 倍になります。復調された各シンボルは列の log2(sum(M)) 要素のグループにマッピングされます。ここで、最初の要素は MSB を表し、最後の要素は LSB を表します。
'llr'各ビットの対数尤度比の値
'approxllr'各ビットの近似対数尤度比の値

詳細

すべて折りたたむ

DVB-S2/S2X/SH

デジタル ビデオ放送 (DVB) 標準では、S2、S2X、および SH 標準固有の振幅位相偏移変調 (APSK) 変調が指定されています。DVB-S2/S2X/SH 標準の詳細については、それぞれ[1][2]、および[3]に指定されている内容を参照してください。

DVB 準拠の APSK 硬復調

硬復調アルゴリズムは、[4]で説明されているように、振幅位相の復号化を適用します。

DVB 準拠の APSK 軟復調

軟復調では、2 つの軟判定対数尤度比 (LLR) アルゴリズム (厳密な LLR と近似 LLR) を使用できます。厳密な LLR アルゴリズムは近似 LLR アルゴリズムよりも正確ですが実行速度が遅くなります。各アルゴリズムの詳細については、硬判定復調と軟判定復調のトピックを参照してください。

メモ

厳密な LLR アルゴリズムは有限の精度演算で指数を計算します。計算に非常に大きな正または負の振幅が含まれる場合、厳密な LLR アルゴリズムの結果は次のようになります。

  • ノイズ分散が極度に大きい値の場合は、Inf または -Inf

  • ノイズ分散と信号強度の両方が非常に小さい値の場合は NaN

近似 LLR アルゴリズムでは指数が計算されません。近似 LLR アルゴリズムを使用することによって、Inf-Inf、および NaN の結果を回避できます。

参照

[1] ETSI Standard EN 302 307 V1.4.1: Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications (DVB-S2), European Telecommunications Standards Institute, Valbonne, France, 2005-03.

[2] ETSI Standard EN 302 307-2 V1.1.1: Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications (DVB-S2X), European Telecommunications Standards Institute, Valbonne, France, 2015-02.

[3] ETSI Standard EN 302 583 V1.1.1: Digital Video Broadcasting (DVB); Framing structure, channel coding and modulation for Satellite Services to Handheld devices (SH), European Telecommunications Standards Institute, Valbonne, France, 2008-03.

[4] 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.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2018a で導入