trained.m

来自「一篇基于独立分量分析(ICA)的盲信道MATLAB程序」· M 代码 · 共 28 行

M
28
字号
function H=trained(r,s_pilot,X1,X2)
%%%%%%%%%%%%%%%%%%%
%%  for 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=(norm(s_pilot))^2;
A=Y{1}*G{1}/delta;
%%%%%%%%%%%%%%%%
%%%%  iteration
for i=2:10
    z=zeros(1,2);
    z(1)=trace(A.'*Y{1}*X1)/trace(A.'*A);
    z(2)=trace(A.'*Y{1}*X2)/trace(A.'*A);
    z=sign(z);

    G{i}=X1*z(1)+X2*z(2);
    delta=(norm(z))^2;
    A=Y{1}*G{i}/delta;
end
H=[A(1,1)+j*A(2,1)  A(1,2)+j*A(2,2)];

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?