MATLAB - алгоритм заполнения водой - бесконечный цикл - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь написать код Matlab для выполнения алгоритма Waterfilling в каналах MIMO. Я написал код ниже, но что-то не так с моим WHL IE l oop, оно никогда не заканчивается, и я не могу понять, почему? !! Я пытаюсь написать код для данной формулы ниже. Не могли бы вы помочь мне исправить это? enter image description here

вот код:

% Power allocated using Waterfilling 
C_eigen=zeros(1,numel(SNR));
C_equal_t2=zeros(1,r);
K=zeros(1,numel(L));

P=zeros(1,r);
sq=0;
for i=1:numel(SNR)

    p=1;
    go = true;
     while go

        for j=1:r-p+1
         K(j)=1/L(j);
         T =sum(K);
        end;
         m =(1/(r-p+1))*(1+ (1/SNR(i))*T);
             for j=1:r-p+1 
             P(j)= m-(1/(SNR(i)*L(j)));
                     if P(r-p+1)< 0
                         P(r-p+1)=0;
                         p =p+1;
                     end;
             end;
        sq = sum(P);
        if sq <= 1.00005
            go = false;
        end;
     end;
      for j=1:r
        C_equal_t2(j)=log2(1+SNR(i)*L(j)*P(j));
        C_eigen(i)=sum(C_equal_t2);
      end;
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...