modu.m

来自「汪裕民的OFDM关键技术与应用中仿真MIMO-OFDM的源代码」· M 代码 · 共 39 行

M
39
字号
function y = modu(x,b,e,s2,s4,s16);%s64,s256)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   根据每个信道的比特分配调制随机输入数据流
%   y   行向量,输出比特
%   x   子载波输入比特,行向量
%   b   子载波分配的比特数(64个元素的矩阵,每一个决定于子载波所分配的比特数)
%   e   子载波分配的功率(64个元素的矩阵)
%   s   所给定的编码星座的大小
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

y = [];

b2 = zeros(1,length(b));
index = 0;
for i = 1:length(b)
    for j = 1:b(i)
        if  x(index+j) == 1
            b2(i) = b2(i)+2^(j-1);
        end
    end
    index = index+b(i);
end
for i = 1:length(b)
    switch b(i)
        case{1}
            y = [y qammod(b2(i),2)*sqrt(e(i))];
        case{2}
            y = [y qammod(b2(i),4)*sqrt(e(i))];
        case{4}
            y = [y qammod(b2(i),16)*sqrt(e(i))];
        case{6}
            y = [y qammod(b2(i),64)*sqrt(e(i))];
        case{8}
            y = [y qammod(b2(i),256)*sqrt(e(i))];
        otherwise
            %   一定分配0bit
            y = [y 0];
    end
end

⌨️ 快捷键说明

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