📄 chanesti.m
字号:
function [Est_Hf, Yin, MSE_Ave] = ChanEsti(Y, EST_MODE, H)
[antenna columnum] = size(Y);
[Rx, Tx, MulPath] = size(H);
TrainSeq = diag(ones(1, 64));
for i=1:antenna
for j=1:2
YFFT(i, j ,:) = fft(Y(i,17+(j-1)*80:80+(j-1)*80)) * sqrt(2)/8;
end
end
Yin = Y(:,161:columnum);
if EST_MODE==1
elseif EST_MODE==2 % LS
for i=1:2
for j=1:antenna
YFFTTemp(:, 1) = YFFT(i, j ,:);
Est_Hf(i, j ,:) = TrainSeq * YFFTTemp;
end
end
elseif EST_MODE==3
for i=1:2
for j=1:antenna
YFFTTemp(:, 1) = YFFT(i, j ,:);
Est_HtTemp(: ,1) = ifft(TrainSeq * YFFTTemp, 64);
Est_Ht(: ,1) = [Est_HtTemp(1:MulPath, 1); zeros(64-MulPath,1)];
Est_Hf(i, j ,:) = fft(Est_Ht, 64);
end
end
end
% Test MSE
% ideal channel in frequency domain
for i=1:Rx
for j=1:Tx
Hf(i, j, :) = fft(H(i, j, :), 64);% / sqrt(64);
end
end
Error = abs(Hf - Est_Hf);
MSE(1,:) = sum(sum(Error .* Error))/(Rx*Tx); % 64个子载波
MSE_Ave = sum(MSE)/64; % 平均的MSE
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -