📄 qam16.m
字号:
function [y]=qam16(x)
%输入的是01序列,输出的是经过16QAM调制后的信号
%这个程序就是把输入的基本二进制符号映射到各个点上
%映射图表见《无线通信原理》P327
%0000、0001、0010、0011映射到第一象限:0000->(1,1) 0001->(1,3) 0010->(3,1) 0011->(3,3)
%1000、1001、1010、1011映射到第二象限:1000->(-1,1) 1001->(-1,3) 1010->(-3,1) 1011->(-3,3)
%1100、1101、1110、1111映射到第三象限:1100->(-1,-1) 1101->(-1,-3) 1110->(-3-1) 1111->(-3,-3)
%0100、0101、0110、0111映射到第三象限:0100->(1,-1) 0101->(1,-3) 0110->(3,-1) 0111->(3,-3)
%对应位置参数矩阵:[(-3,3) (-1,3) | (1,3) (3,3)
% (-3,1) (-1,1) | (1,1) (3,1)
% -----------------
% (-3,-1) (-1,-1) | (1,-1) (3,-1)
% (-3,-3) (-1,-3) | (1,-3) (3,-3)]
%分别对应坐标上的16个星座图
%输入参数:x 为经过信源调制后信息bit符号
%输出参数:y 为经过信道编码(16qam)调制后的符号
%王东洋
%2005-10-19
%得到星座图映射矩阵
constel_diagram=[sqrt(2)/2+j*sqrt(2)/2, 1.5*sqrt(2)+j*sqrt(2)/2, sqrt(2)/2+j*1.5*sqrt(2), 1.5*sqrt(2)+j*1.5*sqrt(2);%第一象限
-sqrt(2)/2+j*sqrt(2)/2,-1.5*sqrt(2)+j*sqrt(2)/2,-sqrt(2)/2+j*1.5*sqrt(2),-1.5*sqrt(2)+j*1.5*sqrt(2);%第二象限
sqrt(2)/2-j*sqrt(2)/2, 1.5*sqrt(2)-j*sqrt(2)/2, sqrt(2)/2-j*1.5*sqrt(2), 1.5*sqrt(2)-j*1.5*sqrt(2);%第四象限
-sqrt(2)/2-j*sqrt(2)/2,-1.5*sqrt(2)-j*sqrt(2)/2,-sqrt(2)/2-j*1.5*sqrt(2),-1.5*sqrt(2)-j*1.5*sqrt(2)]/sqrt(5);%第三象限
len=length(x)/4;
y=zeros(1,len);
%对输入bit流进行星座映射,得到16qam调制符号
for m=1:len
temp1=x(4*(m-1)+1)+x(4*(m-1)+2)*2;
temp2=x(4*(m-1)+3)+x(4*(m-1)+4)*2;
y(m)=constel_diagram(temp1+1,temp2+1);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -