📄 new_turbo_icc.m
字号:
function [x_intf,x_sigma]=New_Turbo_ICC(x_rake,Former_Rou,Former_Mask,Latter_Rou,Latter_Mask,Noise_variance,x_mean0,x_variance0,SubslotData_length,Path_number)
% Gray coded 16-QAM mapping vector
MapMatrix16QAM = [-1-j -1-3*j -1+j -1+3*j -3-j -3-3*j -3+j -3+3*j 1-j 1-3*j 1+j 1+3*j 3-j 3-3*j 3+j 3+3*j];
MapMatrix16QAM = MapMatrix16QAM/sqrt(10);
[Rou_sorted,Order1] = sort(Former_Rou);
Order1 = Order1(end:-1:1);
[Rou_sorted,Order2] = sort(Latter_Rou);
Order2 = Order2(end:-1:1);
[M,N]=size(Former_Mask); L=N/M;
Former_Mask2=abs(Former_Mask).^2;
Latter_Mask2=abs(Latter_Mask).^2;
% Former Half Subslot
for mm=1:M
m = Order1(mm);
Mask_m = Former_Mask(:,m:M:end);
Mask2_m = Former_Mask2(:,m:M:end);
for n=1:SubslotData_length/2
x_intf(m,n) = x_rake(m,n)-sum(sum(x_mean0(:,n+(0:L-1)).*Mask_m));
x_sigma(m,n) = sum(sum(x_variance0(:,n+(0:L-1)).*Mask2_m))+Former_Rou(m)*Noise_variance;
end
end
% Latter Half Subslot
for mm=1:M
m = Order2(mm);
Mask_m = Latter_Mask(:,m:M:end);
Mask2_m = Latter_Mask2(:,m:M:end);
for n=1+SubslotData_length/2:SubslotData_length
x_intf(m,n) = x_rake(m,n)-sum(sum(x_mean0(:,n+(0:L-1)).*Mask_m));
x_sigma(m,n) = sum(sum(x_variance0(:,n+(0:L-1)).*Mask2_m))+Latter_Rou(m)*Noise_variance;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -