circuito_decision.m

来自「matlab在通信原理中的应用」· M 代码 · 共 46 行

M
46
字号
function y = Circuito_Decision(u)

i=0; band=0;
     while i<=50
           if isempty(find_system(gcs,'Name','Decision'))==1
              i=i+1;
              if isempty(find_system(gcs,'Name',['Decision',int2str(i)]))==1
              else
                Blks=([gcs,'/','Decision',int2str(i)]);
                snr_in_dB=str2num(get_param(Blks,'Potencia'));
                break
              end
           else
               Blks=([gcs,'/','Decision']);
               snr_in_dB=str2num(get_param(Blks,'Potencia'));
               break
        end
    end

SNR=exp((snr_in_dB)*(log(10)/10));
sigma=(1/sqrt(2*SNR));
%==============================================
% Punto de decision
% Id = I(0)+I(1)/2
Id=(max(u(:,:))+min(u(:,:)))/2;
%---------------------------------------------
[a b]=size(u);
j=1;
r=zeros(1,b);
y=zeros(1,b);
%output=zeros(1,b);
while j<=b
        if u(1,j)<Id
           r(1,j) = 0+gngauss(sigma);
        else
           r(1,j) = 1+gngauss(sigma);
        end
        if r(1,j) < 0.5
            r(1,j) =0;
        else
            r(1,j) =1;
        end   
    j=j+1;
end
y=r;
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?