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

📄 waterfilling4x4.asv

📁 v-blast4x4_dast程序
💻 ASV
字号:
function p = waterfilling4x4(Lm, jj, M, pp, signal_power)


%for ii=1:Lm %ii为循环变量,ii依次取1,2,3,...,Ln
    %for jj=1:2
        %for kk=1:2
            %H(jj,kk)=(randn(1)+j*randn(1))*(sqrt(0.5));%randn(s)产生一维正态分布随机数组
        %end;
    %end;   
    
    aa(:,pp) = svd(M(:,:,pp)*M(:,:,pp)');
    
   %for jj=1:SNR_num
       
       snr=(jj-1)*2;
        %snr=6;
       snr_lin = 10^(snr/10);
        %snr_lin = 10^(snr/10);
        n = signal_power/snr_lin;%总发射功率恒定,噪声功率随信噪比的变化而变化
        MM = signal_power/4 + (1/aa(1,pp) + 1/aa(2,pp) + 1/aa(3,pp) + 1/aa(4,pp));
          for q = 1:1000  
              L1 = 4;
            for i = 1:4
               P(i) = max((MM-n/aa(i,pp)),0 + 0i);
               if P(i) == 0
                  L1 = L1 - 1;
               end;
            end;
            a = 0.1*(P(1) + P(2) + P(3) + P(4) - signal_power)/4;
            a = 0.1*(P(1) + P(2) + P(3) + P(4) - signal_power)/4;
            if abs(a) <= 0.0001
               break;
            else MM = MM - a;
            end;
          end;
        
p = blkdiag(P(1),P(2),P(3),P(4));
   %end;




⌨️ 快捷键说明

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