www.gusucode.com > m4k20功率分配图 mimo功率优化,OFDM典型仿真程序,贪婪算法仿真程序 > code/mimo功率优化/mutual_mimo_func_diag.m
function [fmutual_mean_new] = mutual_mimo_func_diag(M,N,H0,Rt_sqrt, ... gamma,lambda,NSAMPLE,I) %------------------------------------------------------------ % Function to calculate the average mutual information given a diagonal % transmit covariance matrix. % % Author: Mai Vu % Date: 11/30/2003 % Revised: 04/12/2004 %------------------------------------------------------------ %------------------------------------------------------------ % INPUTS % M: number of receive antennas % N: number of transmit antennas % H0: channel mean % Rt_sqrt: square root of transmit correlation % gamma: SNR (linear, not dB) % lambda: eigenvalues of transmit covariance matrix % NSAMPLE: number of samples used in Monte-Carlo simulation % I: identity matrix of size NxN % % OUTPUTS % fmutual_mean_new: average mutual information % %------------------------------------------------------------ H = (randn(M,N,NSAMPLE) + j*randn(M,N,NSAMPLE))/sqrt(2); fmutual_new = 0; for k=1:NSAMPLE H_k = H0 + H(:,:,k)*Rt_sqrt; S_k = gamma*H_k'*H_k; P = I + S_k*diag(lambda); fmutual_new = fmutual_new - log(real(det(P))); end fmutual_mean_new = fmutual_new/NSAMPLE;