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

📄 mapping_ofdm_qpsk2p.m

📁 通信系统中常用的多进制数字相位调制的源代码 并结合ofdm系统 加入了相应的保护前缀(cp)和导频序列 应用于有关ofdm的信道估计等系统
💻 M
字号:
function T=mapping_ofdm_qpsk(data_tx)
A(1:28)=0;
A(230:256)=0;
pad=randint(1,110);
pad_index=1;
for kk=2:2:110
    if (pad(kk-1)==0)&(pad(kk)==0)
        pad_m(pad_index)=1+j;
    elseif (pad(kk-1)==0)&(pad(kk)==1)
        pad_m(pad_index)=-1+j;
    elseif (pad(kk-1)==1)&(pad(kk)==0)
        pad_m(pad_index)=1-j;
    else 
        pad_m(pad_index)=-1-j;
    end
    pad_index=pad_index+1;
end
A(1:28)=pad_m(1:28);
A(230:256)=pad_m(29:end);   %为什么要调制两个保护带的数据啊?
pilot_index=[29 41 53 65 77 89 101 113 125 137 149 161 173 185 197 209];
%pilot_index1=[29 53 77 101 125 149 173 197];
%Pilot_index2=[41 65 89 113 137 161 185 209];
DC_index=129;
pilot_num=16;
pilot_flag=1;
DC_flag=1;
data_index=1;
k=29;
while k<=229
    if pilot_flag<=pilot_num 
        if k==pilot_index(pilot_flag)
            A(k)=0;
            k=k+1;
            pilot_flag=pilot_flag+1;
        end
    end
    if DC_flag==1
        if k==DC_index
            A(k)=0;
            k=k+1;
            DC_flag=0;
        end
    end
    temp=data_index*2;
    if (data_tx(temp-1)==0)&(data_tx(temp)==0)
        A(k)=1+j;
    elseif (data_tx(temp-1)==0)&(data_tx(temp)==1)
        A(k)=-1+j;
    elseif (data_tx(temp-1)==1)&(data_tx(temp)==0)
        A(k)=1-j;
    else 
        A(k)=-1-j;
    end
    k=k+1;
    data_index=data_index+1;
end
T=A;

⌨️ 快捷键说明

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