このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
genqammod
一般的な直交振幅変調 (QAM)
説明
例
AWGN チャネルでの一般的な QAM 変調のシンボル レートの推定
ガウス ノイズが存在する場合は非矩形の 16 配列コンスタレーションを使用してデータの送受信を行います。ノイズを含むコンスタレーションの散布図を表示し、2 つの異なる SNR についてシンボル エラー レート (SER) を見積もります。
電話回線モデムに対し、V.29 規格に基づいて 16-QAM コンスタレーションを作成します。
c = [-5 -5i 5 5i -3 -3-3i -3i 3-3i 3 3+3i 3i -3+3i -1 -1i 1 1i]; sigpower = pow2db(mean(abs(c).^2)); M = length(c);
ランダムなシンボルを生成します。
data = randi([0 M-1],2000,1);
関数 genqammod
を使用してデータを変調します。カスタム コンスタレーションは矩形ではないため、一般的な QAM 変調が必要です。
modData = genqammod(data,c);
SNR が 20 dB の AWGN チャネル経由で信号を渡します。
rxSig = awgn(modData,20,sigpower);
受信信号と基準コンスタレーション c
の散布図を表示します。
h = scatterplot(rxSig); hold on scatterplot(c,[],[],'r*',h) grid hold off
関数 genqamdemod
を使用して、受信した信号を復調します。シンボル誤り数と SER を求めます。
demodData = genqamdemod(rxSig,c); [numErrors,ser] = symerr(data,demodData)
numErrors = 4
ser = 0.0020
SNR が 10 dB の AWGN チャネル経由で送信と復調の処理を繰り返します。低減された SNR について SER を判別します。予想どおり、SNR が低下するとパフォーマンスも低下します。
rxSig = awgn(modData,10,sigpower); demodData = genqamdemod(rxSig,c); [numErrors,ser] = symerr(data,demodData)
numErrors = 457
ser = 0.2285
一般的な QAM 変調および復調
六角形のコンスタレーションを描く点を作成します。
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
入力引数
const
— 信号マッピング
複素数ベクトル
信号マッピング。複素数ベクトルとして指定します。
データ型: double
| single
| fi
| int8
| int16
| uint8
| uint16
複素数のサポート: あり
出力引数
詳細
配列のサポート
関数 genqammod は、数値配列、dlarray
(Deep Learning Toolbox)、または gpuArray
(Parallel Computing Toolbox) で表された入力信号をサポートします。dlarray
と gpuArray
の組み合わせとして入力を指定した場合、返される行列は GPU の dlarray
オブジェクトになります。
バッチ観測値の数 (NB) はオプションの次元で、サポートされているどのデータ タイプであってもこの入力に追加することができます。
X
— 入力データには 3 次元配列を使用できます。その場合、NSym×NChan×NB として指定します。
NSym はシンボルの数です。NChan はチャネルの数です。
dlarray
オブジェクトをサポートする Communications Toolbox™ 機能の一覧については、無線用 AIを参照してください。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は、GPU 配列の入力をサポートします。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入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)