メインコンテンツ

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

Constellation diagram scatter plot of the reference signal and the modulated signal passed through an awgn channel.

関数 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

参考

トピック