用MATLAB 画一个64QAM的星座图
由于QAM采用幅度和相位二维调制,其频谱效率大大提高,而且不同点的欧式距离也要大于调幅AM调制方式,QAM也是LTE和5G NR首选的调制方式,本期教大家画一个64QAM的星座图。
如下:
首先产生一个64QAM的调制数据,幅度归一化
SymbolAlphabet = [
complex( 3, 3)
complex( 3, 1)
complex( 1, 3)
complex( 1, 1)
complex( 3, 5)
complex( 3, 7)
complex( 1, 5)
complex( 1, 7)
complex( 5, 3)
complex( 5, 1)
complex( 7, 3)
complex( 7, 1)
complex( 5, 5)
complex( 5, 7)
complex( 7, 5)
complex( 7, 7) % symbol 0-15
complex( 3, -3)
complex( 3, -1)
complex( 1, -3)
complex( 1, -1)
complex( 3, -5)
complex( 3, -7)
complex( 1, -5)
complex( 1, -7)
complex( 5, -3)
complex( 5, -1)
complex( 7, -3)
complex( 7, -1)
complex( 5, -5)
complex( 5, -7)
complex( 7, -5)
complex( 7, -7) % symbol 16-31
complex(-3, 3)
complex(-3, 1)
complex(-1, 3)
complex(-1, 1)
complex(-3, 5)
complex(-3, 7)
complex(-1, 5)
complex(-1, 7)
complex(-5, 3)
complex(-5, 1)
complex(-7, 3)
complex(-7, 1)
complex(-5, 5)
complex(-5, 7)
complex(-7, 5)
complex(-7, 7) % symbol 32-47
complex(-3, -3)
complex(-3, -1)
complex(-1, -3)
complex(-1, -1)
complex(-3, -5)
complex(-3, -7)
complex(-1, -5)
complex(-1, -7)
complex(-5, -3)
complex(-5, -1)
complex(-7, -3)
complex(-7, -1)
complex(-5, -5)
complex(-5, -7)
complex(-7, -5)
complex(-7, -7) ] / sqrt(42); % symbol 48-63
%调用figure准备画一个图
figure;
给数据添加AWGN白噪声,SNR=33db
snrDb = 33;
% 每个星座点画100次相同SNR下的图
length = 100;
for n=1:length
% 调用awgn库函数为数据添加噪声
SymbolAlphabetTemp = awgn(SymbolAlphabet, snrDb);
%取数据的实部和虚部
x_r = real(SymbolAlphabetTemp);
x_i = imag(SymbolAlphabetTemp);
%画图
h = plot(x_r,x_i,'.');
%为图添加颜色
set(h, 'Color', [0, 0.2,(n/length)]);
hold on;
End
%添加标题和网格
title('64QAM 星座图');
grid on;
效果图如下: