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

📄 mapping.m

📁 OFDM中的关于映射器的个人设计的MATLAB的算法
💻 M
字号:
function out_m=mapping(in,pn,modu_mode)
switch modu_mode
    case 1
        for i=1:48
            switch in(i)
                case 0
                    out1(i)=-1;
                    out2(i)=0;
                case 1
                    out1(i)=1;
                    out2(i)=0;
            end
            Kmod=1;
            out(i)=(out1(i)*j+out2(i))*Kmod;
        end
    case 2
        for i=1:48
            switch in(2*i-1)
                case 0
                    out1(i)=-1;
                case 1
                    out1(i)=1;
            end
            switch in(2*i)
                case 0
                    out2(i)=-1;
                case 1
                    out2(i)=1;
            end
            Kmod=0.707;
            out(i)=(out1(i)*j+out2(i))*Kmod;
        end
     case 4
         for i=1:48
            if(in(4*i-3:4*i-2)==[0 0])
                    out1(i)=-3;
             elseif(in(4*i-3:4*i-2)==[0 1])
                    out1(i)=-1;
               elseif(in(4*i-3:4*i-2)==[1 1])
                    out1(i)=1;
               else(in(4*i-3:4*i-2)==[1 0])
                    out1(i)=3;
                end
              if(in(4*i-1:4*i)==[0 0])
                    out2(i)=-3;
           elseif(in(4*i-1:4*i)==[0 1])
                    out2(i)=-1;
           elseif(in(4*i-1:4*i)==[1 1])
                    out2(i)=1;
           else(in(4*i-1:4*i)==[1 0])
                    out2(i)=3;
                end
           Kmod=0.316;
          out(i)=(out1(i)*j+out2(i))*Kmod;
     end
 
 case 6
         for i=1:48
            if(in(6*i-5:6*i-3)==[0 0 0])
               
                    out1(i)=-7;
                elseif(in(6*i-5:6*i-3)==[0 0 1])
                    out1(i)=-5;
             elseif(in(6*i-5:6*i-3)==[0 1 1])
                    out1(i)=-3;
             elseif(in(6*i-5:6*i-3)==[0 1 0])
                    out1(i)=-1;
             elseif(in(6*i-5:6*i-3)==[1 1 0])
                    out1(i)=1;
             elseif(in(6*i-5:6*i-3)==[1 1 1])
                    out1(i)=3;
             elseif(in(6*i-5:6*i-3)==[1 0 1])
                    out1(i)=5;
             else(in(6*i-5:6*i-3)==[1 0 0])
                    out1(i)=7;
                end
           if(in(6*i-2:6*i)==[0 0 0])
                
                    out2(i)=-7;
            elseif(in(6*i-2:6*i)==[0 0 1])
                    out2(i)=-5;
             elseif(in(6*i-2:6*i)==[0 1 1])
                    out2(i)=-3;
              elseif(in(6*i-2:6*i)==[0 1 0])
                    out2(i)=-1;
               elseif(in(6*i-2:6*i)==[1 1 0])
                    out2(i)=1;
               elseif(in(6*i-2:6*i)==[1 1 1])
                    out2(i)=3;
                elseif(in(6*i-2:6*i)==[1 0 1])
                    out2(i)=5;
                else(in(6*i-2:6*i)==[1 0 0])
                    out2(i)=7;
            end
            Kmod=0.154;
             out(i)=(out1(i)*j+out2(i))*Kmod;
         end
     end
     out_m(1:6)=0;
     out_m(7:11)=out(1:5);
     out_m(12)=pn;
     out_m(13:25)=out(6:18);
     out_m(26)=pn;
     out_m(27:32)=out(19:24);
     out_m(33)=0;
     out_m(34:39)=out(25:30);
     out_m(40)=pn;
     out_m(41:53)=out(31:43);
     out_m(54)=-pn;
     out_m(55:59)=out(44:48);
     out_m(60:64)=0;


⌨️ 快捷键说明

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