📄 main.m
字号:
clc;
clear all;
numbits=100; % 输入符号数,符号数个数应为4的整数倍,因为要进行16QAM调制;
channelname=2; % 信道类型 PMCH
Nid=2; % 小区组号:0到503;Nid = 3 * Nid1 + Nid2; Nid1从1到167,Nid2从0到2;
Ns=0; % 时隙号,从0到9;
Nidmbsf=2; %MBSFN(多播广播单频网络)的号,用于PMCH;
nRNTI=2; %无线网络临时指示号,用于PDSCH;
NDLRB=1; % 下行链路要占用的资源块数;
if mod(Ns,2)==1 & (numbits/4 + 12*NDLRB) > 12*6*NDLRB ; %判断给出的资源块是否够数据映射,如果不够,就要扩大资源块的个数。奇数时隙里一个资源块里的参考信号个数为12个;
input('please enlarge NDLRB');
else if mod(Ns,2)==0 & (numbits/4 + 6*NDLRB) > 12*6*NDLRB; %偶数时隙里一个资源块里的参考信号个数为6个
input('please enlarge NDLRB');
end
end
b=randint(1,numbits); % 随机输入序列,数据为0或1;
b;
q=1; % 选择码字,0或1;
d=downlink_scrambling(numbits,channelname,Nid,Ns,Nidmbsf,nRNTI,q,b); % 对输入的数据进行加扰;
d;
dsymb=QAM_16(numbits,d); % 对加扰后的数据进行16QAM调制;
dsymb;
cMBSFN = MBSFNpseudoranseq(Nidmbsf,Ns) ; % 由于PMCH和MBSFN参考信号都在4号天线端口上发射,所以要加入MBSFN参考信号,cMBSFN是生成MBSFN伪随机序列;
cMBSFN;
aRefSig = MBSFNRefSig(Ns,NDLRB,Nidmbsf,cMBSFN); % 生成MBSFN参考信号;
aRefSig;
a = resourcemapping(dsymb,aRefSig,NDLRB,Ns); %将MBSFN参考信号和调制后的数据一起映射至资源元素;
a
maxl = 6; % l的个数,因为MBSFN参考信号只在用于扩展循环前缀;同时载波间隔有15KHz和7.5KHz,本程序为了简便化,只用了15KHz的载波间隔,所以OFDM的个数为6
signal = ifft_basesignal_gen(NDLRB,maxl,a); %发送端发射PMCH信号;
% designal = de_fft_ofdm_basesignal_gen(NDLRB,maxl,signal)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -