channelestimate.m

来自「ofdm系统模型」· M 代码 · 共 38 行

M
38
字号
function HLs=ChannelEstimate(SymFFT,OFDM_per_Symbol,Np,training_symbols,Carrier_Num,LI,pilot)

SymFFT1=SymFFT.';
Rx_training_symbols=SymFFT1(:,pilot);
Rx_training_symbols0=reshape(Rx_training_symbols,OFDM_per_Symbol*Np,1);

training_symbols0=reshape(training_symbols,1,OFDM_per_Symbol*Np);
training_symbols1=diag(training_symbols0);
training_symbols2=inv(training_symbols1);
Hls=training_symbols2*Rx_training_symbols0;
Hls1=reshape(Hls,OFDM_per_Symbol,Np);
HLs=[];
HLs2=[];
if mod(Carrier_Num,LI)==0
    for k=1:Np-1
        HLs2=[];
        for j=1:LI
            HLs1(:,1)=(Hls1(:,k+1)-Hls1(:,k))*(j-1)/LI+Hls1(:,k);
            HLs2=[HLs2,HLs1];
        end
        HLs=[HLs,HLs2];
    end
else
    for k=1:Np-2
        for j=1:LI
            HLs1(:,1)=(Hls1(:,k+1)-Hls1(:,k))*(j-1)/LI+Hls1(:,k);
            HLs2=[HLs2,HLs1];
        end
        HLs=[HLs,HLs2];
    end 
    HLs3=[];
    for j=1:mod(Carrier_Num,LI)
        HLs1(:,1)=(Hls1(:,Np)-Hls1(:,Np-1))*(j-1)/LI+Hls1(:,Np-1);
        HLs3=[HLs3,HLs1];
    end
    HLs=[HLs2 HLs3];
end

⌨️ 快捷键说明

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