📄 relign4.m
字号:
function [H_est_even,h_est]=relign4(N, F, h, real_channel, L_diff, delta)
%%%% Recover the time domain channel from the frequency domain estimates
L=length(h);
Le=L+L_diff;
h=[reshape(h,1,L),zeros(1,L_diff)];
d=abs(delta);
H=fft(h,N);
hh=zeros(1,N);
for i=0:d:d*(Le-1)
hh(mod(i,N)+1)=h(i/d+1);
%upsampled h by d
end
f=reshape(ifft(F(1:end),N), 1, N); %IDFT of eq. (26)
index=zeros(N,1);
for ii=0:N-1
index(ii+1)= f* (hh( mod([0:N-1] - ii, N)+1))';
end
[v,I]=max(abs(index));
tmp=f(mod(([0:N-1]+(I-1)),N)+1);
for ii=0:(Le-1)
ff(ii+1)=tmp(mod(ii*d,N)+1); %%%% down sampled by d
end
% if real_channel
% ff=real(ff);
% end
ff=reshape(ff,1,Le);
scalar=h*ff'/(ff*ff');
h_est=ff*scalar;
if real_channel
h_est=real(h_est);
end
scalar=h*h_est'/(h_est*h_est');
h_est=h_est*scalar;
H_est_even=fft(h_est,N);
if 0
figure;
stem(real(h),'*'); hold on;
%stem(abs(tmp),'r*'); stem(abs(hh),'g');
stem(real(h_est),'ms');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -