📄 ui_design.m
字号:
% keep all variables local in scope
function [] = ui_design();
% declare global variables
dfec_global;
ui_private_global;
% print text message and lock menu
set(h_msg,'BackgroundColor', [0 1 0]);
set(h_msg,'FontAngle','italic', 'String','designing DFE...'); drawnow;
set(fig_menu,'HandleVisibility','off'); drawnow;
k=1;
SER=zeros(1,length(SNR));
for snr=SNR,
if (isempty(Nfd) & length(delay)==1)
[h,f,dd,delta,mmse] = mmse_dfe(c,snr,Nf,Nd,delay,pdelay,bias,spacing);
Nh=length(h);
q=h-dd;
d=dd(delta+pdelay:min(Nh,Nd+delta+pdelay-1));
MSE=mmse;
% Baud-spaced case
if (spacing==1),
fa=[];
fb=[];
% Fractionally-spaced subequalizers
elseif (spacing==1/2)
fb=f(1:2:Nf);
if (Nf>1)
fa=f(2:2:Nf);
else
fa=0;
end;
end;
else
MSE=opt_dfe(c,snr,Nfd,Nf,Nd,delay,pdelay,spacing,fig_menu,h_msg);
[I,J] = find(MSE==min(min(MSE)));
if (~isempty(Nfd))
Nf=J(1);
Nd=Nfd-Nf;
end;
delta=I(1);
[h,f,dd,delta,mmse] = mmse_dfe(c,snr,Nf,Nd,delta,pdelay,bias,spacing);
q=h-dd;
Nh=length(h);
d=dd(delta+pdelay:min(Nh,Nd+delta+pdelay-1));
% Baud-spaced case
if (spacing==1),
fa=[];
fb=[];
% Fractionally-spaced subequalizers
elseif (spacing==1/2)
fb=f(1:2:Nf);
if (Nf>1)
fa=f(2:2:Nf);
else
fa=0;
end;
end;
end;
if (real_source)
Gamma=abs(h(delta))/mmse;
SER(k)=serpam(Ms,Gamma);
else
Gamma=abs(h(delta))/mmse;
SER(k)=serqam(Ms,Gamma);
end;
k=k+1;
end;
H=freqz(h,1,256,'whole');
Q=freqz(q,1,256,'whole');
F=freqz(f,1,256,'whole');
if (spacing==1)
Fa=[];
Fb=[];
elseif (spacing==1/2)
Fa=freqz(fa,1,256,'whole');
Fb=freqz(fb,1,256,'whole');
end;
D=freqz(d,1,256,'whole');
DD=freqz(dd,1,256,'whole');
% redraw
ui_imp;
ui_freq;
ui_mse;
ui_cluster;
ui_ser;
ui_ep;
% clear text message, unlock menu, enable facets, dim spike
set(fig_menu,'HandleVisibility','on'); drawnow;
set(h_msg,'BackgroundColor', [0.8 0.8 0.8]);
set(h_msg,'FontAngle','normal', 'String',''); drawnow;
new_params=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -