Main Content

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

dvbsapskmod

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

説明

y = dvbsapskmod(x,M,stdSuffix) は、stdSuffix で識別されるデジタル ビデオ放送 (DVB) 標準と変調次数 M に従って、入力信号 x の APSK 変調を実行します。

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

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

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

すべて折りたたむ

DVB-S2X 標準が指定する 32-APSK 変調方式を使用してデータを変調します。結果を散布図で表示します。

変調次数、および DVB-S2X 標準を識別する接尾辞を設定します。考えられるすべてのシンボルでデータ ベクトルを作成します。

M = 32;
stdSuffix = 's2x';
x = (0:M-1);

データを変調します。

y = dvbsapskmod(x,M,stdSuffix);

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

scatterplot(y)

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-S2X 標準で指定されている 64-APSK を使用してデータを変調します。さまざまな符号識別子のコンスタレーションをプロットします。

変調次数および標準接尾辞を設定します。1 チャネルでランダム データのシンボルを 1000 個生成します。

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

符号識別子 7/9 の 64-APSK コンスタレーションに従ってデータを変調し、基準コンスタレーションをプロットします。

y1 = dvbsapskmod(x,M,std,'7/9','PlotConstellation',true);

Figure contains an axes object. The axes object with title DVB-S2x 64(8+16+20+20)-APSK with Code Rate 7/9, UnitAveragePower=false, xlabel In-phase Amplitude, ylabel Quadrature Amplitude contains 67 objects of type line, text. One or more of the lines displays its values using only markers

符号識別子を 132/180 に設定して変調し、コンスタレーション構造の違いを観察します。

y2 = dvbsapskmod(x,M,std,'132/180','PlotConstellation',true);

Figure contains an axes object. The axes object with title DVB-S2x 64(4+12+20+28)-APSK with Code Rate 132/180, UnitAveragePower=false, xlabel In-phase Amplitude, ylabel Quadrature Amplitude contains 67 objects of type line, text. One or more of the lines displays its values using only markers

標準のフレーム長と短いフレーム長用として DVB-S2 標準で指定されている 16-APSK を使用してデータを変調します。出力の信号強度を計算します。

変調次数および標準接尾辞を設定します。1 チャネルで 1000 シンボル分のランダム ビット データを生成します。

M = 16;
std = 's2';
x = randi([0 1],1000*log2(M),1);

入力タイプをビットに設定し、符号識別子 2/3 の 16-APSK コンスタレーションに従ってデータを変調します。既定の標準のフレーム長を使用します。

y1 = dvbsapskmod(x,M,std,'2/3','InputType','bit');

異なる設定を使用してデータを変調し、符号識別子を 8/9 に設定して、短いフレーム長を使用します。

y2 = dvbsapskmod(x,M,std,'8/9','short','InputType','bit');

変調された信号の平均パワーは、符号識別子に基づいて変化します。変調された信号の平均パワーを計算します。

y1avgPow = mean(abs(y1).^2)
y1avgPow = 0.7590
y2avgPow = mean(abs(y2).^2)
y2avgPow = 0.7716

DVB-SH 標準および DVB-S2 標準で指定されている 16-APSK を適用してデータを変調します。平均信号強度が 1 W になるように変調器出力を正規化します。

変調次数を設定し、考えられるすべてのシンボルを生成します。

M = 16;
x =  0:M-1;

DVB-SH で指定されている 16-APSK を適用してデータを変調します。名前と値のペアを使用して single データ型出力を指定します。

y1 = dvbsapskmod(x,M,'sh','OutputDataType','single');

DVB-S2 で指定されている 16-APSK を適用してデータを変調します。名前と値のペアを使用して single データ型出力を指定します。

y2 = dvbsapskmod(x,M,'s2','OutputDataType','single');

DVB-S2 で指定されている 16-APSK を適用してデータを変調します。名前と値のペアを使用して、単位平均パワーを true に設定し、single データ型出力を指定します。

y3 = dvbsapskmod(x,M,'s2','UnitAveragePower',true,'OutputDataType','single');

どの信号が単位平均パワーをもっているかを確認します。

y1avgPow = mean(abs(y1).^2)
y1avgPow = single
    1
y2avgPow = mean(abs(y2).^2)
y2avgPow = single
    0.7752
y3avgPow = mean(abs(y3).^2)
y3avgPow = single
    1.0000

入力引数

すべて折りたたむ

入力信号。スカラー、ベクトルまたは行列として指定します。x の要素は、バイナリ値または 0 ~ (M – 1) の範囲の整数でなければなりません。ここで M は変調次数です。

メモ

入力信号をバイナリの要素として処理するには、'InputType' の値を 'bit' に設定します。バイナリ入力の場合、行数は log2(M) の整数倍でなければなりません。列の log2(M) ビットのグループがシンボルにマッピングされます。ここで、最初のビットは MSB を表し、最後のビットは LSB を表します。

データ型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

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

データ型: double

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

データ型: 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 = dvbsapskmod(x,M,std,'InputType','bit','OutputDataType','single');

入力タイプ。'InputType''integer' または 'bit' のどちらかで構成されるコンマ区切りのペアとして指定します。'integer' を使用するには、入力信号は 0 ~ (M – 1) の整数値で構成されなければなりません。'bit' を使用するには、入力信号がバイナリ値を含まなければならず、行数は log2(M) の整数倍でなければなりません。

データ型: char | string

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

メモ

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

依存関係

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

データ型: logical

出力データ型。'OutputDataType''double' または 'single' のどちらかで構成されるコンマ区切りのペアとして指定します。

データ型: char | string

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

データ型: logical

出力引数

すべて折りたたむ

変調された信号。複素数のスカラー、ベクトル、または行列として返されます。y の次元は、指定した 'InputType' 値によって異なります。

'InputType' の値y の次元
'integer'y の次元は入力 x と同じになります。
'bit'y の行数は log2(M) で除算した x の行数と等しくなります。

データ型: double | single

詳細

すべて折りたたむ

DVB-S2/S2X/SH

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

参照

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

拡張機能

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

バージョン履歴

R2018a で導入