equalizer.m

来自「信号处理」· M 代码 · 共 39 行

M
39
字号
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 + =
减小字号Ctrl + -
显示快捷键?