このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
genqamdemod
一般的な直交振幅復調
説明
例
六角形のコンスタレーションを描く点を作成します。
inphase = [1/2 1 1 1/2 1/2 2 2 5/2]; quadr = [0 1 -1 2 -2 1 -1 0]; inphase = [inphase;-inphase]; inphase = inphase(:); quadr = [quadr;quadr]; quadr = quadr(:); const = inphase + 1i*quadr;
コンスタレーションをプロットします。
h = scatterplot(const);
入力データのシンボルを生成します。このコンスタレーションを使用してシンボルを変調します。
x = [3 8 5 10 7]; y = genqammod(x,const);
変調した信号 y
を復調します。
z = genqamdemod(y,const);
変調した信号を同じ Figure にプロットします。
hold on; scatterplot(y,1,0,'ro',h); legend('Constellation','Modulated signal'); hold off;
復調したデータと元のシーケンスの間のシンボル エラー数を求めます。
numErrs = symerr(x,z)
numErrs = 0
DVB-S2X のコンスタレーションを使用して、16-APSK 変調のビット単位の近似 LLR を計算します。
長さ 24 のランダムなビット シーケンスを生成します。
x = randi([0 1],24,1);
変調用の 16-APSK コンスタレーション点を定義します。
constellation = [ ... 0.4718 + 1j*0.2606; 0.2606 + 1j*0.4718; -0.4718 + 1j*0.2606; -0.2606 + 1j*0.4718; ... 0.4718 - 1j*0.2606; 0.2606 - 1j*0.4718; -0.4718 - 1j*0.2606; -0.2606 - 1j*0.4718; ... 1.2088 + 1j*0.4984; 0.4984 + 1j*1.2088; -1.2088 + 1j*0.4984; -0.4984 + 1j*1.2088; ... 1.2088 - 1j*0.4984; 0.4984 - 1j*1.2088; -1.2088 - 1j*0.4984; -0.4984 - 1j*1.2088 ... ];
指定されたコンスタレーションを使用してビット シーケンスを変調します。
y = genqammod(x,constellation,InputType="bit");
変調した信号に加法性ホワイト ガウス ノイズ (AWGN) を追加します。
ynoisy =awgn(x,15);
変調した信号を復調して近似 LLR を計算します。
z = genqamdemod(ynoisy,constellation,OutputType="approxllr",NoiseVariance=0.0316);
入力引数
複素エンベロープ。スカラー、ベクトル、行列、3 次元配列、4 次元配列、または gpuArray
オブジェクトとして指定します。y
が複数の行をもつ行列の場合、この関数は行を個別に処理します。
データ型: double
| single
複素数のサポート: あり
信号マッピング。複素数ベクトル、dlarray
オブジェクト、または gpuArray
オブジェクトとして指定します。
データ型: double
| single
複素数のサポート: あり
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: OutputType="integer"
は出力形式を "integer"
に設定します。
出力形式。次のいずれかのオプションとして指定します。
"integer"
— 出力z
は整数シンボル値で構成されます。"bit"
— 出力z
はビットのグループで構成されます。"approxllr"
— 出力z
は、ビット単位の近似対数尤度比 (LLR) で構成されます。
出力のデータ型。"double"
、"single"
、"int8"
、"int16"
、"int32"
、"int64"
、"uint8"
、"uint16"
、"uint32"
、または "uint64"
として指定します。この名前と値の引数は、最終出力のデータ型を決定します。出力のデータ型は、選択した OutputType
の値によって異なります。
OutputType
を"integer"
に設定すると、データ型は次のようになります。"double"
"single"
"int8"
"int16"
"int32"
"int64"
"uint8"
"uint16"
"uint32"
"uint64"
OutputType
を"bit"
に設定すると、データ型は"double"
、"single"
、または"int8"
になります。OutputType
を"approxllr"
に設定すると、関数はこの名前と値の引数を無視し、出力データ型は入力データ型と同じままになります。
既定値は、入力 y
のデータ型になります。
ノイズ分散。正のスカラーまたは正のベクトルとして指定します。スカラーとして指定した場合、この関数は、すべての入力要素に対する LLR の計算で同じノイズ分散値を使用します。ベクトルとして指定する場合、ベクトルの長さは入力信号の最後の次元の要素数と等しくなければなりません。ベクトルの各要素は、対応する最後の次元に沿った入力のすべての要素のノイズ分散を指定します。
依存関係
この名前と値の引数を有効にするには、OutputType
を "approxllr"
に設定します。
出力引数
メッセージ信号。スカラー、ベクトル、行列、3 次元配列、4 次元配列、または gpuArray
オブジェクトとして返されます。メッセージ信号は 0 ~ length
(const
)–1 の整数で構成されます。z
のデータ型は入力 x
のデータ型と同じになります。
OutputType
を "bit"
または "approxllr"
に設定した場合、出力 z
の行数は入力 y
の行数の log2(M) 倍になります。この関数は、復調された各シンボルを log2(M) ビットのグループにマッピングします。最初のビットは最上位ビット (MSB) を表し、最後のビットは最下位ビット (LSB) を表します。M は変調次数です。
y
と const
のいずれかが gpuArray
オブジェクトである場合、z
は gpuArray
オブジェクトになります。
データ型: double
| single
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入genqamdemod
関数は、硬判定復調に加えて軟判定復調もサポートするようになりました。名前と値の引数 OutputType
を使用して、出力形式を硬判定ビット出力または軟判定出力として指定できます。さらに、名前と値の引数 OutputDataType
と NoiseVariance
を使用して、出力データ型とノイズ分散をそれぞれ指定することができます。NoiseVariance
引数は、軟判定復調にのみ適用されます。
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)