📄 equalizer.m
字号:
function equal_out = equalizer(Nf,Nb,in_signal,lambda)
global cir_matrix_t
global N
global flag
len = length(in_signal);
b_signal = zeros(1,Nb);
for k = 1:N/2
cir = cir_matrix_t(:,k).';
cir_len = length(cir);
Hff = convmtx(cir,Nf);
Hfb = Hff(:,end-cir_len+2:end);
Hfb = [Hfb,zeros(Nf,Nb-cir_len+1)];
Vff = eye(Nf+cir_len-1);
Vff(Nf+1:end,Nf+1:end) = zeros(cir_len-1);
Sff = Hff(:,Nf);
Fffn = inv(Hff*Vff*Hff'+(lambda^2)*eye(Nf))*Sff;
Ffb = -Hfb'*Fffn;
f_signal = [zeros(1,max(0,k+Nf-1-len)) in_signal(min(len,k+Nf-1):-1:k) ].';
out_sym = Fffn'*f_signal+Ffb'*b_signal.';
equal_out(1,k) = hard_4QAM_demodul(out_sym);
b_signal = [equal_out(1,k) b_signal(1:end-1)];
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -