📄 zeroforcing_ic_mldetection_4x2.m
字号:
function [DemapSymbol_1,DemapSymbol_2,DemapSymbol_3,DemapSymbol_4] ...
=ZeroForcing_IC_mlDetection_4x2(ChFR11,ChFR21,ChFR31,ChFR41,ChFR12,ChFR22,ChFR32,ChFR42,R1_S1,R1_S2,R2_S1,R2_S2,qam)
% Zero Forcing Interference Cancellation and Alamouti Detection
% ChFRmn: Channel Frequency Response from Tx m to Rx n
% Rp_Sq: Received freq signal at Rx p, time q
IQvalue=get80216map(qam);
DemapSymbol_1=zeros(1,1702);
DemapSymbol_2=zeros(1,1702);
DemapSymbol_3=zeros(1,1702);
DemapSymbol_4=zeros(1,1702);
for loop=1:1702
H1=[ChFR11(loop),ChFR21(loop);ChFR21(loop)',-ChFR11(loop)'];
H2=[ChFR12(loop),ChFR22(loop);ChFR22(loop)',-ChFR12(loop)'];
G1=[ChFR31(loop),ChFR41(loop);ChFR41(loop)',-ChFR31(loop)'];
G2=[ChFR32(loop),ChFR42(loop);ChFR42(loop)',-ChFR32(loop)'];
r1=[R1_S1(loop);R1_S2(loop)']; % column vector
r2=[R2_S1(loop);R2_S2(loop)'];
% ZF IC
r1_zf=r1-G1*inv(G2)*r2;
r2_zf=r2-H2*inv(H1)*r1;
% Combiner
H_zf=H1-G1*inv(G2)*H2;
G_zf=G2-H2*inv(H1)*G1;
ComSymbol_c=H_zf'*r1_zf; % Combined S1 and S2
ComSymbol_s=G_zf'*r2_zf; % Combined S3 and S4
% ML Detection for S1 and S2
Factor=(sum(H_zf(1,:).*conj(H_zf(1,:)))-1)*(IQvalue.*conj(IQvalue));
% ### S1 ###
Metric=Factor+(abs(ComSymbol_c(1)-IQvalue)).^2;
index=find(Metric==min(Metric));
if length(index)>1
index=index(1);
disp('Uncertain');
end
DemapSymbol_1(loop)=index-1;
% ### S2 ###
Metric=Factor+(abs(ComSymbol_c(2)-IQvalue)).^2;
index=find(Metric==min(Metric));
if length(index)>1
index=index(1);
disp('Uncertain');
end
DemapSymbol_2(loop)=index-1;
% ML Detection for S3 and S4
Factor=(sum(G_zf(1,:).*conj(G_zf(1,:)))-1)*(IQvalue.*conj(IQvalue));
% ### S3 ###
Metric=Factor+(abs(ComSymbol_s(1)-IQvalue)).^2;
index=find(Metric==min(Metric));
if length(index)>1
index=index(1);
disp('Uncertain');
end
DemapSymbol_3(loop)=index-1;
% ### S4 ###
Metric=Factor+(abs(ComSymbol_s(2)-IQvalue)).^2;
index=find(Metric==min(Metric));
if length(index)>1
index=index(1);
disp('Uncertain');
end
DemapSymbol_4(loop)=index-1;
end % end for loop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -