⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 equalizer.m

📁 在无线通信中
💻 M
字号:
function  equal_out = equalizer(in_signal,lambda)

global cir_matrix_t
global N
global flag
Nf = 16;
Nb = 8;
% if flag==0
%     C2 =[-0.59175538208125-0.26921505269338i; 0 ; 0 ; 0 ; 0 ; 0 ;-0.75903722101890-0.034804026909066i].';
% elseif flag ==1
%     C2=[0.2 1 0.3162 -0.2 0.1 -0.05 0.02];
% end
% cir = C2/norm(C2)';

% cir1 = cir_matrix_t(:,1).';
% cir2 = cir_matrix_t(:,end).';
% cir = (cir1+cir2)/2;
% 


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(16,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 + -