📄 equalizor.m
字号:
function [equalized_output]=equalizor(channel_output,tap_length)
a=0.0001; %a is the step size
vec_length=length(channel_output);
C_cfts=zeros(tap_length,1);
C_cfts((tap_length-1)/2+1,1)=1;
indx1=-(tap_length-1)/2:1:(tap_length-1)/2;
% for ii=1:vec_length
%
% %indx2=indx1+(ii-1)*tap_length;
% if(ii<=(tap_length-1)/2)
%
% equalized_output(ii)=channel_output(ii);
% elseif(ii<=vec_length-(tap_length-1)/2)
% indx2=indx1+ii;
% equalized_output(ii)=sum(C_cfts.*(channel_output(indx2)'));
% C_cfts=C_cfts-a*(equalized_output(ii)-sign(equalized_output(ii)))*conj(channel_output(indx2)');
% %C_cfts is a column vector;
% else
% equalized_output(ii)=channel_output(ii);
% end
% end
for ii=(tap_length-1)/2+1:vec_length-(tap_length-1)/2
indx2=indx1+ii;
equalized_output(ii)=sum(C_cfts.*(channel_output(indx2)'));
e=equalized_output(ii)-sign(equalized_output(ii));
C_cfts=C_cfts-a*e*conj(channel_output(indx2)');
end
equalized_output=filter(C_cfts,1,channel_output);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -