📄 semiblind.m
字号:
function H=semiblind(r,s_pilot,X1,X2)
%%%%%%%%%%%%%%%%%%%
%% 2X1 system
%% r---- received signals , 1xlength(s) matrix
%% s_pilot----the first block of source signal,1x2 matrix,modulated signal,(-1,1);
%% X---the code matrix,2x2 matrix
%% every block has two signals
L=length(r);
R=[real(r);imag(r)];
for i=1:2:L
Y{(i+1)/2}=[R(:,i),R(:,i+1)];
end
G{1}=X1*s_pilot(1)+X2*s_pilot(2);
delta=zeros(1,L/2);
delta(1)=(norm(s_pilot))^2;
A{1}=Y{1}*G{1}/delta(1);
for p=2:10
z=zeros(1,2);
z(1)=s_pilot(1);
z(2)=s_pilot(2);
for l=3:2:(L-1)
z(l)=trace(A{p-1}.'*Y{(l+1)/2}*X1)/trace(A{p-1}.'*A{p-1});
z(l+1)=trace(A{p-1}.'*Y{(l+1)/2}*X2)/trace(A{p-1}.'*A{p-1});
end
z=sign(z);
for i=2:L/2
G{i}=X1*z(2*i-1)+X2*z(2*i);
delta(i)=(norm([z(2*i-1),z(2*i)]))^2;
end
sum_g=0;
sum_delta=0;
for i=1:L/2
sum_g=sum_g+Y{i}*G{i};
sum_delta=sum_delta+delta(i);
end
A{p}=sum_g/sum_delta;
end
H=[A{10}(1,1)+j*A{10}(2,1) A{10}(1,2)+j*A{10}(2,2)];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -