📄 insert_pilot.m
字号:
function [output,count,pilot_seq,pilot_inter]=insert_pilot(pilot_symbol_bit,map_out_block,pilot_type,mod_type)
% pilot_inter为导频符号间隔,以ofdm符号个数的形式给出,为整数。间隔越大估计误差越大
% pilot_symbol_bit 采用常数导频符号,这里给出它的二进制形式
% map_out_block 映射后的一次仿真所包含的符号块
switch pilot_type
case 1
%pilot_symbol=qpsk4(pilot_symbol_bit);
pilot_symbol = baseMapping(pilot_symbol_bit,mod_type); %导频复符号
[N,NL]=size(map_out_block);
pilot_inter=5;
output=zeros(N,(NL+fix(NL/pilot_inter)));
pilot_seq=pilot_symbol*ones(N,1);
count=0;%记录插入导频信号的次数
i=1;
while i<(NL+fix(NL/pilot_inter))%每隔pilot_inter个符号插入一个导频序列
output(:,i)=pilot_seq;
count=count+1;
if count*pilot_inter<=NL
output(:,(i+1):(i+pilot_inter))=map_out_block(:,((count-1)*pilot_inter+1):count*pilot_inter);
else
output(:,(i+1):(i+pilot_inter+NL-count*pilot_inter))=map_out_block(:,((count-1)*pilot_inter+1):NL);
end
i=i+pilot_inter+1;
end
case 2
otherwise
error('There is a unsupported pilot insert Type');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -