⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qam.m

📁 MATLAB仿真QAM
💻 M
字号:
%产生基带符号流
M=16;                                       %进制 16QAM
N=40;                                       %信源比特流长度,为保证对齐,选择是log2(M)的整倍数
bitstream=zeros(1,N);
symbolstream=zeros(1,N/log2(M));
for n1=1:N
    bitstream(n1)=binornd(1,0.5,1,1);		%产生0、1的随机数
end

%格雷码编码
for n1=1:length(symbolstream)
    pack=bitstream(4*(n1-1)+1:4*(n1-1)+4);	%四个数一组
    %映射到复数域
    if  pack==[0 0 0 0]
        symbolstream(n1)=1+j;
    elseif  pack==[0 0 1 0]
        symbolstream(n1)=2+j;
    elseif  pack==[0 0 1 1]
        symbolstream(n1)=2+2j;
    elseif  pack==[0 0 0 1]
        symbolstream(n1)=1+2j;
    elseif  pack==[0 1 0 1]
        symbolstream(n1)=-1+2j;
    elseif  pack==[0 1 0 0]
        symbolstream(n1)=-1+j;
    elseif  pack==[0 1 1 1]
        symbolstream(n1)=-2+2j;
    elseif  pack==[0 1 1 0]
        symbolstream(n1)=-2+j;
    elseif  pack==[1 1 1 0]
        symbolstream(n1)=-2-j;
    elseif  pack==[1 1 1 1]
        symbolstream(n1)=-2-2j;
    elseif  pack==[1 1 0 1]
        symbolstream(n1)=-1-2j;
    elseif  pack==[1 1 0 0]
        symbolstream(n1)=-1-j;
    elseif  pack==[1 0 0 0]
        symbolstream(n1)=1-j;
    elseif  pack==[1 0 1 0]
        symbolstream(n1)=2-j;
    elseif  pack==[1 0 0 1]
        symbolstream(n1)=1-2j;
    else symbolstream(n1)=2-2j;
    end
end

%画图,星座图
hold on
for n1=-2:2
    for n2=-2:2
        if ~((n1==0)|(n2==0)) 
            scatter(n1,n2);
        end
    end
end
axis([-3 3 -3 3]);
hold off
title('16QAM星座图');
xlabel('同相支路')
ylabel('正交支路')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -