📄 cubic_estimation.m
字号:
function [channel_estimation]=cubic_estimation(channel_post_ti)
frame_symbol=68;
row_begin=3;
row_end=frame_symbol-3;
fft_length=1705; %for 2k mode
pilot_n=(fft_length-1)/3+1;
channel_estimation=channel_post_ti;
derivative=zeros(1,pilot_n);
coefficient=zeros(4,pilot_n);
for count_sn=row_begin:row_end
%%%%%%%%%%%%%%%%%%%%%%%%%%derivative generation
for count_pilot=2:(pilot_n-1)
count_subch=count_pilot*3-2;
previous=channel_estimation(count_sn, count_subch-3);
current=channel_estimation(count_sn, count_subch);
next=channetl_estimation(count_sn, count_subch+3);
derivative(count_pilot)=((next-current)/3+(current-previous)/3)/2;
end
current=next;
next=channel_estimation(count_sn, count_subch+6);
derivative(pilot_n)=(next-current)/3*3/2-derivative(pilot_n-1);
previous=channel_estimation(count_sn, 1);
current=channel_estimation(count_sn, 4);
derivative(1)=(current-previous)/3*3/2-derivative(2)/2;
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%coefficient generation
for count_pilot=1:pilot_n
count_subch=count_pilot*3-2;
coefficient(1,pilot_n)=channel_estimation(count_sn, count_subch);
end
coefficient(2,:)=derivative;
for count_pilot=1:(pilot_n-1)
d2=coefficient(2,count_pilot+1)-coefficient(2,count_pilot);
s2=coefficient(2,count_pilot+1)+coefficient(2,count_pilot);
d1=coefficient(1,count_pilot+1)-coefficient(1,count_pilot);
s1=coefficient(1,count_pilot+1)+coefficient(1,count_pilot);
coefficient(3,count_pilot)=(d2+6*d1)/6-3/2*s1;
coefficient(4,count_pilot)=2*d1/27+s2/9;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%cubic estimation
for count_pilot=1:(pilot_n-2)
count_subch=count_pilot*3-2;
c1=coefficient(1,pilot_n);
c2=coefficient(2,pilot_n);
c3=coefficient(3,pilot_n);
c4=coefficient(4,pilot_n);
channel_estimation(count_sn, count_subch+1)=c1+c2+c3+c4;
channel_estimation(count_sn, count_subch+2)=c1+2*c2+4*c3+8*c4;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -