%This Matlab script can be used to generate Figure 3 (a) and (b) in th dịch - %This Matlab script can be used to generate Figure 3 (a) and (b) in th Việt làm thế nào để nói

%This Matlab script can be used to

%This Matlab script can be used to generate Figure 3 (a) and (b) in the
%lecture note:
%
%Emil Björnson, Mats Bengtsson, Björn Ottersten, “Optimal Multi-User
%Transmit Beamforming: Difficult Problem with a Simple Solution Structure,”
%IEEE Signal Processing Magazine, To appear.
%
%Download article: Address will be added here.
%
%The implementation of the heuristic beamforming schemes (MRT, ZFBF,
%transmit MMSE/regularized ZFBF/SLNR-MAX beamforming, and the corresponding
%power allocation is borrowed from the Matlab package of the following
%book:
%
%Emil Björnson, Eduard Jorswieck, “Optimal Resource Allocation in
%Coordinated Multi-Cell Systems,” Foundations and Trends in Communications
%and Information Theory, vol. 9, no. 2-3, pp. 113-381, 2013.
%
%The implementation of the branch-reduce-and-bound (BRB) algorithm, which
%computes the optimal beamforming, also originates from that book. The
%implemenation of this algorithm utilizes and requires CVX: http://cvxr.com/
%
%This is version 1.0 (Last edited: 2014-03-26)
%
%License: This code is licensed under the GPLv2 license. If you in any way
%use this code for research that results in publications, please cite our
%original article listed above.
%
%Please note that the channels are generated randomly, thus the results
%will not be exactly the same as in the lecture note.


close all;
clear all;


%%Simulation parameters

rng('shuffle'); %Initiate the random number generators with a random seed
%%If rng('shuffle'); is not supported by your Matlab version, you can use
%%the following commands instead:
%randn('state',sum(100*clock));

Nantennas = [4 12]; %Number of transmit antennas
K = 4; %Number of users

%Should the optimal beamforming be calculated? (true /false)
%(Note that it is the calculation of optimal beamforming is the main source
%of computational complexity. The running time with optimal beamforming
%takes hours or days, while it only takes a few minutes when only the
%heuristic beamforming schemes are computed. This shows clearly the need
%for simple heuristic beamforming!
computeOptimalBeamforming = true;

%Number of realizations in the Monte Carlo simulations
nbrOfMonteCarloRealizations = 2; %100;

%Combined channel matrix will be (K x K*N). This matrix gives the
%normalized variance of each channel element
channelVariances = [1 1 1 1];

%User weights for (unweighted) sum rate computation
weights = [1 1 1 1]'; ones(K,1);

%Range of SNR values
PdB = -10:1:30; %dB scale
P = 10.^(PdB/10); %Linear scale



%%System parameters - Special for optimal beamforming (using BRB algorithm)

%Optimal beamforming have its own (sparser) SNR range, since it is the
%Main source of computational complexity
PdB_BRB = -10:5:30; %SNR range (in dB) for optimal beamforming
P_BRB = 10.^(PdB_BRB/10); %SNR range for optimal beamforming

problemMode = 1; %Tells the BRB algorithm to maximize the (weighted) sum rate.

epsilonBRB = 0.01; %Accuracy of the optimal sum rate in the BRB algorithm
deltaBRB = 0.1; %Accuracy of the line searches in the BRB algorithm
maxIterations = 2000; %Maximal number of iterations of the algorithm
maxFuncEvaluations = 3000; %Maximal number of convex problems solved in the algorithm



%%Pre-allocation of matrices

%Matrices for saving sum rates with different beamforming stategies
sumRateMRT = zeros(length(P),nbrOfMonteCarloRealizations,length(Nantennas));
sumRateZFBF = zeros(length(P),nbrOfMonteCarloRealizations,length(Nantennas));
sumRateMMSE = zeros(length(P),nbrOfMonteCarloRealizations,length(Nantennas));

if computeOptimalBeamforming == true
sumrateOPTIMAL = zeros(length(P_BRB),nbrOfMonteCarloRealizations,length(Nantennas));
end


%Go through the different number of transmit antennas
for n = 1:length(Nantennas)

%Extract the current number of antennas
N = Nantennas(n);

%Pre-generation of Rayleigh fading channel realizations (unit variance)
Hall = (randn(K,N,nbrOfMonteCarloRealizations)+1i*randn(K,N,nbrOfMonteCarloRealizations))/sqrt(2);

%Go through all channel realizations
for m = 1:nbrOfMonteCarloRealizations

%Output the progress
disp(['Progress: N = ' num2str(N) ', ' num2str(m) ' out of ' num2str(nbrOfMonteCarloRealizations) ' realizations.']);


%Generate channel matrix for m:th realization
H = repmat(sqrt(channelVariances)',[1 N]) .* Hall(:,:,m);


%Compute normalized beamforming vectors for MRT
wMRT = functionMRT(H);

%Compute normalized beamforming vectors for ZFBF
wZFBF = functionZFBF(H);


%Pre-allocate matrix for saving good feasible starting points for the
%BRB algorithm, based on heuristic beamforming
if computeOptimalBeamforming == true
bestfeasibleRates = zeros(K,length(P_BRB));
pind_BRB = 1;
end


%Go through all transmit powers
for pind = 1:length(P)

%Compute normalized beamforming vectors for transmit MMSE
%beamforming (which is the same as regularized ZFBF and SLNR-MAX
%beamforming). Note that it varies with the transmit power.
wSLNRMAX = functionSLNRMAX(H,P(pind)*ones(K,1));


%Calculate power allocation with MRT (using Theorem 3.5 in [7])
rhos = diag(abs(H*wMRT).^2)';
powerAllocationMRT = functionHeuristicPowerAllocation(rhos,P(pind),weights);

%Calculate sum rate with MRT
W = kron(sqrt(powerAllocationMRT),ones(N,1)).*wMRT;
channelGains = abs(H*W).^2;
signalGains = diag(channelGains);
interferenceGains = sum(channelGains,2)-signalGains;
rates = log2(1+signalGains./(interferenceGains+1));
sumRateMRT(pind,m,n) = weights'*rates;


%Calculate power allocation with ZFBF (using Theorem 3.5 in [7])
rhos = diag(abs(H*wZFBF).^2)';
powerAllocationwZFBF = functionHeuristicPowerAllocation(rhos,P(pind),weights);

%Calculate sum rate with ZFBF
W = kron(sqrt(powerAllocationwZFBF),ones(N,1)).*wZFBF;
channelGains = abs(H*W).^2;
signalGains = diag(channelGains);
interferenceGains = sum(channelGains,2)-signalGains;
rates = log2(1+signalGains./(interferenceGains+1));
sumRateZFBF(pind,m,n) = weights'*rates;


%Calculate power allocation with transmit MMSE beamforming (using Theorem 3.5 in [7])
rhos = diag(abs(H*wSLNRMAX).^2)';
powerAllocationwSLNRMAX_sumrate = functionHeuristicPowerAllocation(rhos,P(pind),weights);

%Calculate sum rate with transmit MMSE beamforming
W = kron(sqrt(powerAllocationwSLNRMAX_sumrate),ones(N,1)).*wSLNRMAX;
channelGains = abs(H*W).^2;
signalGains = diag(channelGains);
interferenceGains = sum(channelGains,2)-signalGains;
rates = log2(1+signalGains./(interferenceGains+1));
sumRateMMSE(pind,m,n) = weights'*rates;



%Save the rates of transmit MMSE beamforming to use as starting
%point when calculating Optimal beamforming
if computeOptimalBeamforming == true && P(pind)==P_BRB(pind_BRB)
bestfeasibleRates(:,pind_BRB) = rates;
pind_BRB = pind_BRB+1;
end

end

if computeOptimalBeamforming == true

for pind = 1:length(P_BRB)
%[pind length(P_BRB)] %Simple output to keep track of progress

%Definition of a total power constraint
L = 1;

%The matrix-square root of the weighting matrix
Qsqrt = sqrt(1/P_BRB(pind))*eye(N);

%Normalized limit of the total transmit power
q = ones(L,1);


%The BRB algorithm searches in a box with lower corner in the
%origin. The upper corner is the utopia point, where each user
%gets the rate that it would get if it was the only user in the
%system. This point is computed below.
origin = zeros(K,1);

%Computation of the utopia point using MRT, which is optimal
%when there is only one active user
utopia = zeros(K,1);
for k = 1:K
utopia(k) = log2(1+abs(H(k,:)*wMRT(:,k))^2*P_BRB(pind));
end

%This matrix is similar to diagonal matrices defined in the
%section "Multiple Cooperating Base Stations" and says that all
%antennas transmit to all users.
D = repmat(eye(N),[1 1 K]);

%Obtain the beamforming that maximizes the sum rate using the
%BRB algorithm from [7].
bestFeasibleBRB = functionBRBalgorithm_cvx(H,D,Qsqrt,q,origin,utopia,weights,deltaBRB,epsilonBRB,maxIterations,maxFuncEvaluations,bestfeasibleRates(:,pind),problemMode);

%Save the performance of the optimal beamforming
sumrateOPTIMAL(pind,m,n) = weights'*bestFeasibleBRB;
end

end

end

end




%Plot simulation results
for n = 1:length(Nantennas)

figure; hold on; box on;

if computeOptimalBeamforming==true
plot(PdB_BRB,mean(sumrateOPTIMAL(:,:,n),2),'k:','LineWidth',1);
end

plot(PdB,mean(sumRateMMSE(:,:,n),2),'r','LineWidth',1);
plot(PdB,mean(sumRateZFBF(:,:,n),2),'b--','LineWidth',1);
plot(PdB,mean(sumRateMRT(:,:,n),2),'k-.','LineWidth',1);

if computeOptimalBeamforming == true
legen
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
% Matlab kịch bản này có thể được sử dụng để tạo ra con số 3 (a) và (b) trong các% lưu ý bài giảng:%% Emil Björnson, thảm Bengtsson, Björn Ottersten, "tối ưu đa người dùng% Truyền Beamforming: các vấn đề khó khăn với một cấu trúc giải pháp đơn giản, "% IEEE tín hiệu xử lý tạp chí, xuất hiện.%% Tải về bài viết: địa chỉ sẽ được thêm vào đây.%% Thực hiện các chương trình heuristic beamforming (tàu điện ngầm, ZFBF,% truyền MMSE/regularized. ZFBF/SLNR-MAX beamforming, và tương ứng% điện phân bổ vay mượn từ các gói Matlab sau đâycuốn sách %:%% Emil Björnson, Eduard Jorswieck, "phân bổ nguồn lực tối ưu trong% Phối hợp hệ thống đa di động,"cơ sở và các xu hướng truyền thông% và lý thuyết thông tin, vol. 9, no. 2-3, tr. 113-381, 2013.%% Thực hiện các thuật toán (BRB) chi nhánh giảm-và-bị ràng buộc, mà% tính beamforming tối ưu, cũng bắt nguồn từ cuốn sách đó. Các% implemenation của thuật toán này sử dụng và yêu cầu CVX: http://cvxr.com/%% Đây là phiên bản 1.0 (bài: 2014-03-26)%% Giấy phép: mã này được cấp phép theo giấy phép GPLv2. Nếu bạn ở bất kỳ cách nào% sử dụng mã này để nghiên cứu các kết quả trong các ấn phẩm, xin vui lòng trích dẫn của chúng tôi% bản gốc bài viết được liệt kê ở trên.%% Xin vui lòng lưu ý rằng các kênh được tạo ra ngẫu nhiên, do đó kết quả% sẽ không là chính xác giống như trong lưu ý bài giảng.đóng tất cả;rõ ràng tất cả;%% Tham số mô phỏngRNG('shuffle'); % Bắt đầu các máy phát điện số ngẫu nhiên với một hạt giống ngẫu nhiên%% Nếu rng('shuffle'); không được hỗ trợ bởi phiên bản Matlab của bạn, bạn có thể sử dụng%% sau lệnh thay vào đó:% randn('state',sum(100*clock));Nantennas = [4 12]; % Số truyền ăng-tenK = 4; % Số lượng người dùng% Nên tối ưu các beamforming được tính? (đúng /false)% (Lưu ý rằng nó là tính toán tối ưu beamforming là nguồn chính% tính toán phức tạp. Thời gian chạy với beamforming tối ưu% mất giờ hoặc ngày, trong khi nó chỉ mất một vài phút khi chỉ các% heuristic beamforming đề án được tính. Điều này cho thấy rõ ràng sự cần thiết% cho đơn giản heuristic beamforming!computeOptimalBeamforming = true;% Số realizations ở Monte Carlo mô phỏngnbrOfMonteCarloRealizations = 2; % 100;% Kênh kết hợp ma trận sẽ là (K x K * N). Ma trận này cung cấp cho các% chuẩn hoá phương sai của mỗi phần tử kênhchannelVariances = [1 1 1 1];% Người dùng kiếm thanh Sword cho (unweighted) tổng tỷ lệ tính toántrọng lượng = [1 1 1 1]'; Ones(K,1);% Phạm vi của SNR giá trịPdB = - 10:1:30; % dB quy môP = 10.^(PdB/10); % Quy mô tuyến tính%% Tham số hệ thống - đặc biệt cho tối ưu beamforming (bằng cách sử dụng thuật toán BRB)Beamforming % tối ưu có phạm vi SNR (sparser) của riêng của nó, vì nó là% Chính nguồn tính toán phức tạpPdB_BRB = - 10:5:30; Khoảng SNR % (trong dB) cho beamforming tối ưuP_BRB = 10.^(PdB_BRB/10); Khoảng SNR % cho tối ưu beamformingproblemMode = 1; % Nói với các thuật toán BRB để tối đa hóa tỷ lệ tổng (trọng).epsilonBRB = 0,01; % Độ chính xác của các tỷ lệ tổng tối ưu trong thuật toán BRBdeltaBRB = 0,1; % Độ chính xác của dòng tìm kiếm trong các thuật toán BRBmaxIterations = năm 2000; % Số tối đa của lặp đi lặp lại của các thuật toánmaxFuncEvaluations = 3000; % Tối đa số lồi vấn đề giải quyết trong các thuật toán%% Trước phân bổ của ma trận% Ma trận cho tiết kiệm tổng tỷ giá với khác nhau beamforming stategiessumRateMRT = zeros(length(P),nbrOfMonteCarloRealizations,length(Nantennas));sumRateZFBF = zeros(length(P),nbrOfMonteCarloRealizations,length(Nantennas));sumRateMMSE = zeros(length(P),nbrOfMonteCarloRealizations,length(Nantennas));Nếu computeOptimalBeamforming == true sumrateOPTIMAL = zeros(length(P_BRB),nbrOfMonteCarloRealizations,length(Nantennas));kết thúc% Đi qua khác nhau số truyền ăng-tencho n = 1:length(Nantennas) Giải nén % số hiện tại của ăng-ten N = Nantennas(n); % Các thế hệ trước của Rayleigh phai kênh realizations (đơn vị phương sai) Hall = (randn(K,N,nbrOfMonteCarloRealizations)+1i*randn(K,N,nbrOfMonteCarloRealizations))/sqrt(2); % Đi qua tất cả kênh realizations với m = 1:nbrOfMonteCarloRealizations % Sản lượng sự tiến bộ Disp ([' tiến bộ: N = 'num2str(N)', ' num2str(m) 'trong 'num2str(nbrOfMonteCarloRealizations)' realizations.']); % Tạo ra kênh ma trận cho thực hiện m:th H = repmat (sqrt (channelVariances)', [1 N]). * Hall(:,:,m); % Tính chuẩn hoá beamforming vector cho tàu điện ngầm wMRT = functionMRT(H); % Tính chuẩn hoá beamforming vector cho ZFBF wZFBF = functionZFBF(H); % Tiền phân bổ các ma trận cho tiết kiệm điểm khởi đầu tốt khả thi cho các % BRB thuật toán, dựa trên heuristic beamforming Nếu computeOptimalBeamforming == true bestfeasibleRates = zeros(K,length(P_BRB)); pind_BRB = 1; kết thúc % Đi qua tất cả truyền quyền hạn cho pind = 1:length(P) % Tính toán bình thường beamforming vector cho truyền MMSE % beamforming (mà là giống như regularized ZFBF và SLNR-MAX % beamforming). Lưu ý rằng nó thay đổi với sức mạnh truyền. wSLNRMAX = functionSLNRMAX(H,P(pind)*ones(K,1)); % Tính toán phân bổ quyền lực với các tàu điện ngầm (bằng cách sử dụng định lý 3.5 trong [7]) Rhos = diag(abs(H*wMRT).^2)'; powerAllocationMRT = functionHeuristicPowerAllocation(rhos,P(pind),weights); % Tính toán tổng tỷ lệ với tàu điện ngầm W = kron(sqrt(powerAllocationMRT),ones(N,1)). * wMRT; channelGains = abs(H*W). ^ 2; signalGains = diag(channelGains); interferenceGains = sum(channelGains,2) – signalGains; tỷ lệ = log2(1+signalGains./(interferenceGains+1)); sumRateMRT(pind,m,n) = trọng lượng * tỷ lệ; % Tính toán phân bổ quyền lực với ZFBF (bằng cách sử dụng định lý 3.5 trong [7]) Rhos = diag(abs(H*wZFBF).^2)'; powerAllocationwZFBF = functionHeuristicPowerAllocation(rhos,P(pind),weights); % Tính toán tổng tỷ lệ với ZFBF W = kron(sqrt(powerAllocationwZFBF),ones(N,1)). * wZFBF; channelGains = abs(H*W). ^ 2; signalGains = diag(channelGains); interferenceGains = sum(channelGains,2) – signalGains; tỷ lệ = log2(1+signalGains./(interferenceGains+1)); sumRateZFBF(pind,m,n) = trọng lượng * tỷ lệ; % Tính năng phân bổ với truyền MMSE beamforming (bằng cách sử dụng định lý 3.5 trong [7]) Rhos = diag(abs(H*wSLNRMAX).^2)'; powerAllocationwSLNRMAX_sumrate = functionHeuristicPowerAllocation(rhos,P(pind),weights); % Tính toán tổng tỷ lệ với truyền MMSE beamforming W = kron(sqrt(powerAllocationwSLNRMAX_sumrate),ones(N,1)). * wSLNRMAX; channelGains = abs(H*W). ^ 2; signalGains = diag(channelGains); interferenceGains = sum(channelGains,2) – signalGains; tỷ lệ = log2(1+signalGains./(interferenceGains+1)); sumRateMMSE(pind,m,n) = trọng lượng * tỷ lệ; % Tiết kiệm tỷ lệ truyền MMSE beamforming để sử dụng như là bắt đầu % điểm khi tính tối ưu beamforming Nếu computeOptimalBeamforming == true & & P(pind)==P_BRB(pind_BRB) bestfeasibleRates(:,pind_BRB) = tỷ lệ; pind_BRB = pind_BRB + 1; kết thúc kết thúc Nếu computeOptimalBeamforming == true cho pind = 1:length(P_BRB) % [pind length(P_BRB)] % các đầu ra đơn giản để theo dõi sự tiến bộ % Định nghĩa của một hạn chế tất cả sức mạnh L = 1; % Ma trận bậc của ma trận nặng Qsqrt = sqrt(1/P_BRB(pind))*eye(N); % Bình thường giới hạn tổng số truyền tải điện q = ones(L,1); % Các thuật toán BRB tìm kiếm trong một hộp với góc dưới ở các nguồn gốc %. Góc trên là điểm utopia, nơi mỗi người dùng % được mức mà nó sẽ nhận được nếu nó là người dùng duy nhất trong các Hệ thống %. Điểm này được tính dưới đây. nguồn gốc = zeros(K,1); % Tính toán điểm utopia sử dụng tàu điện ngầm, mà là tối ưu % khi có chỉ có một người dùng hoạt động Utopia = zeros(K,1); cho k = 1:K Utopia(k) = log2(1+abs(H(k,:)*wMRT(:,k))^2*P_BRB(pind)); kết thúc % Ma trận này là tương tự như đường chéo ma trận được định nghĩa trong các % phần "Nhiều hợp tác cơ sở trạm" và nói rằng tất cả % ăng-ten truyền cho tất cả người dùng. D = repmat (mắt (N), [1 1 K]); % Có được beamforming tối đa hóa tổng tỷ lệ sử dụng các Thuật toán BRB % từ [7]. bestFeasibleBRB = functionBRBalgorithm_cvx(H,D,Qsqrt,q,origin,utopia,weights,deltaBRB,epsilonBRB,maxIterations,maxFuncEvaluations,bestfeasibleRates(:,pind),problemMode); Tiết kiệm % hiệu suất của beamforming tối ưu sumrateOPTIMAL(pind,m,n) = trọng lượng * bestFeasibleBRB; kết thúc kết thúc kết thúc kết thúcKết quả mô phỏng âm mưu %cho n = 1:length(Nantennas)con số; Giữ hộpNếu computeOptimalBeamforming == true Plot(PdB_BRB,Mean(sumrateOPTIMAL(:,:,n),2),'k:','LineWidth',1);kết thúcPlot(PdB,Mean(sumRateMMSE(:,:,n),2),'r','LineWidth',1);Plot(PdB,Mean(sumRateZFBF(:,:,n),2),'b--','LineWidth',1);Plot(PdB,Mean(sumRateMRT(:,:,n),2),'k-.','LineWidth',1);Nếu computeOptimalBeamforming == true legen
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
% Kịch bản Matlab này có thể được sử dụng để tạo ra hình 3 (a) và (b) trong
note%
giảng:%%
Emil Bjornson, Mats Bengtsson, Björn Ottersten, "tối ưu
Multi-User% Transmit Beamforming: Vấn đề khó khăn với một giải pháp đơn giản cấu trúc,
"% IEEE Signal Magazine chế biến, để xuất
hiện.%%
Tải bài: Địa chỉ sẽ được thêm vào ở
đây.%%
Việc thực hiện các đề án beamforming phỏng đoán (MRT, ZFBF,% truyền MMSE / regularized ZFBF / SLNR-MAX beamforming, và tương ứng với phân bổ% điện năng được vay từ gói Matlab trong các cách sau cuốn sách%:%% Emil Bjornson, Eduard Jorswieck, "Phân bổ tối ưu tài nguyên trong% phối hợp hệ thống Multi-Cell," Foundations và xu hướng trong Truyền% và thông tin Lý thuyết, vol. 9, không có. 2-3, pp. 113-381, 2013.%% Việc thực hiện của các ngành giảm và ràng buộc (BRB) thuật toán, mà% tính toán beamforming tối ưu, cũng bắt nguồn từ cuốn sách đó. Việc% implemenation của thuật toán này sử dụng và yêu cầu CVX: http://cvxr.com/%% Đây là phiên bản 1.0 (sửa cuối: 2014/03/26)%% Giấy phép: Mã này được cấp phép theo giấy phép GPLv2. Nếu bạn trong bất kỳ cách nào% sử dụng mã này để nghiên cứu mà kết quả trong các ấn phẩm, xin trích dẫn của chúng tôi% bài viết gốc được liệt kê ở trên.%% Xin lưu ý rằng các kênh được tạo ra ngẫu nhiên, do đó kết quả% sẽ không được chính xác giống như trong các bài giảng . lưu ý đóng tất cả; rõ ràng tất cả; %% mô phỏng thông số RNG ('Shuffle'); Khởi% các máy phát điện số ngẫu nhiên với một ngẫu nhiên giống %% Nếu RNG ('Shuffle'); không được hỗ trợ bởi phiên bản Matlab của bạn, bạn có thể sử dụng %% các lệnh sau để thay thế:% randn ('nhà nước', sum (100 * đồng hồ)); Nantennas = [4 12]; % Số lượng phát anten K = 4; % Số người% các beamforming tối ưu nên được tính toán? (true / false)% (Lưu ý rằng nó là tính toán của beamforming tối ưu là nguồn chính% các tính toán phức tạp. Thời gian chạy với tối ưu beamforming% mất hàng giờ hoặc vài ngày, trong khi nó chỉ mất một vài phút khi chỉ beamforming Heuristic% đề án được tính toán này cho thấy rõ sự cần thiết.% cho beamforming Heuristic đơn giản! computeOptimalBeamforming = true;% Số lượng chứng ngộ ở Monte Carlo mô phỏng nbrOfMonteCarloRealizations = 2;% 100;% ma trận kênh kết hợp sẽ được (K x K * N) này. ma trận cho các% phương sai bình thường của mỗi phần tử kênh channelVariances = [1 1 1 1];% trọng tài cho (trọng số) tính toán tỷ lệ tổng trọng = [1 1 1 1] '; những người (K, 1);% Phạm vi của SNR giá trị PDB = -10: 1: 30;% quy mô dB. P = 10 ^ (PDB / 10);% tuyến tính quy mô %% Hệ thống thông số - đặc biệt cho beamforming tối ưu (sử dụng thuật toán BRB)% beamforming Optimal có riêng của mình (thưa thớt) phạm vi SNR, vì nó là% nguồn chính của tính toán phức tạp PdB_BRB = -10: 5: 30;% phạm vi SNR (dB) cho tối ưu beamforming. P_BRB = 10 ^ (PdB_BRB / 10); Phạm vi% SNR cho tối ưu beamforming problemMode = 1; % Cho thuật toán BRB để tối đa hóa (trọng số) tỷ lệ tiền. EpsilonBRB = 0,01; % Độ chính xác của tỷ giá tiền tối ưu trong BRB thuật toán deltaBRB = 0,1; % Độ chính xác của đường tìm kiếm trong các thuật toán BRB maxIterations = 2000; % Số tối đa của lần lặp của thuật toán maxFuncEvaluations = 3000; % Số tối đa của các vấn đề được giải quyết lồi trong thuật toán %% Pre-phân bổ của các ma trận% Ma trận để lưu giá tiền với beamforming khác nhau stategies sumRateMRT = zeros (chiều dài (P), nbrOfMonteCarloRealizations, chiều dài (Nantennas)); sumRateZFBF = zeros (chiều dài ( P), nbrOfMonteCarloRealizations, chiều dài (Nantennas)); sumRateMMSE = zeros (chiều dài (P), nbrOfMonteCarloRealizations, chiều dài (Nantennas)); nếu computeOptimalBeamforming == true sumrateOPTIMAL = zeros (chiều dài (P_BRB), nbrOfMonteCarloRealizations, chiều dài (Nantennas)); cuối% Đi qua các số khác nhau của ăng-ten truyền cho n = 1: chiều dài (Nantennas)% Trích xuất số lượng hiện tại của anten N = Nantennas (n);% Pre thế hệ của Rayleigh kênh fading ngộ (đơn vị sai) Hội trường = (randn (K, N, nbrOfMonteCarloRealizations) + 1i * randn (K, N, nbrOfMonteCarloRealizations)) / sqrt (2);% Đi qua tất cả các chứng ngộ kênh cho m = 1: nbrOfMonteCarloRealizations% Output tiến độ disp (['Progress: N =' num2str (N) ',' num2str (m) 'ra khỏi' num2str (nbrOfMonteCarloRealizations) '. ngộ']);% Tạo ma trận kênh cho m: th thực hiện H = repmat (sqrt (channelVariances) ', [1 N]) . * Hall (:,:, m);% Tính toán vectơ chuẩn beamforming cho MRT wMRT = functionMRT (H);% Tính toán vectơ chuẩn beamforming cho ZFBF wZFBF = functionZFBF (H);% Pre-giao ma trận để lưu điểm tốt khởi đầu khả thi cho các thuật toán% BRB, dựa trên beamforming heuristic, nếu computeOptimalBeamforming == true bestfeasibleRates = zeros (K, chiều dài (P_BRB)); pind_BRB = 1; end% Đi qua tất cả các quyền hạn truyền cho Pind = 1: chiều dài (P)% Tính toán bình thường vectơ beamforming cho phát MMSE% beamforming (mà là giống như ZFBF đúng quy tắc và SLNR-MAX% beamforming). Lưu ý rằng nó khác nhau với công suất phát. WSLNRMAX = functionSLNRMAX (H, P (Pind) * cái (K, 1));% phân bổ sức mạnh tính toán với MRT (sử dụng định lý 3.5 trong [7]) Rhos = diag (abs (H * wMRT) ^ 2) ';. powerAllocationMRT = functionHeuristicPowerAllocation (Rhos, P (Pind), trọng lượng);% Tính toán tỷ lệ tổng với MRT W = Kron (sqrt (powerAllocationMRT), những người thân (N, 1)) * wMRT;. channelGains = abs (H * W) ^ 2;. signalGains = diag (channelGains); interferenceGains = sum (channelGains, 2) -signalGains; giá = log2 (1 + signalGains ./ (interferenceGains + 1)); sumRateMRT (Pind, m , n) = '* giá; trọng lượng% phân bổ sức mạnh tính toán với ZFBF (sử dụng định lý 3.5 trong [7]) Rhos = diag (abs (H * wZFBF) ^ 2).'; powerAllocationwZFBF = functionHeuristicPowerAllocation (Rhos, P (Pind) , trọng lượng);% Tính toán tỷ lệ tổng với ZFBF W = Kron (sqrt (powerAllocationwZFBF), những người thân (N, 1)) * wZFBF;. channelGains = abs (H * W) ^ 2;. signalGains = diag (channelGains); interferenceGains = sum (channelGains, 2) -signalGains; giá = log2 (1 + signalGains ./ (interferenceGains + 1)); sumRateZFBF (Pind, m, n) = * Tỷ lệ trọng lượng ';% phân bổ sức mạnh tính toán với truyền MMSE beamforming (sử dụng Định lý 3.5 trong [7]) Rhos = diag (abs (H * wSLNRMAX) ^ 2) ';. powerAllocationwSLNRMAX_sumrate = functionHeuristicPowerAllocation (Rhos, P (Pind), trọng lượng);% Tính toán tỷ lệ tổng với truyền MMSE beamforming W = Kron (sqrt (powerAllocationwSLNRMAX_sumrate), những người thân (N, 1)) * wSLNRMAX;. channelGains = abs (H * W) ^ 2;. signalGains = diag (channelGains); interferenceGains = sum (channelGains, 2) -signalGains; giá = log2 (1 + signalGains ./ (interferenceGains + 1)); sumRateMMSE (Pind, m, n) = * Tỷ lệ trọng lượng ';% Lưu giá của truyền MMSE beamforming để sử dụng như là bắt đầu% điểm khi tính beamforming tối ưu nếu computeOptimalBeamforming == true && P (Pind) == P_BRB (pind_BRB) bestfeasibleRates (:, pind_BRB) = giá; pind_BRB = pind_BRB + 1; cuối cuối nếu computeOptimalBeamforming == true cho Pind = 1: chiều dài (P_BRB) [chiều dài Pind (P_BRB)]%% Simple đầu ra để theo dõi tiến độ% Định nghĩa của một số hạn chế quyền lực L = 1;% Gốc ma trận vuông của ma trận trọng số Qsqrt = sqrt (1 / P_BRB (Pind)) * mắt (N);% giới hạn bình thường hóa của tổng số truyền tải điện q = những người thân (L, 1);% Các BRB tìm kiếm thuật toán trong một hộp với góc thấp trong xứ%. Góc trên là điểm không tưởng, nơi mà mỗi người dùng% được lãi suất mà nó sẽ nhận được nếu là người dùng duy nhất trong hệ thống%. Điểm này được tính toán dưới đây. Nguồn gốc = zeros (K, 1);% Tính toán các điểm không tưởng sử dụng tàu điện ngầm, đó là tối ưu% khi chỉ có một người dùng đang hoạt động không tưởng = zeros (K, 1); cho k = 1: K không tưởng (k) = log2 (1 + abs (H (k,:) * wMRT (:, k)) ^ 2 * P_BRB (Pind)); cuối% ma trận này là tương tự như các ma trận đường chéo được định nghĩa trong phần% "Nhiều Hợp tác Base Stations "và nói rằng tất cả% ăng-ten để truyền tải tới tất cả người dùng. D = repmat (mắt (N), [1 1 K]);% Lấy beamforming nhằm tối đa hóa tỷ lệ tiền bằng cách sử dụng thuật toán% BRB từ [7]. bestFeasibleBRB = hiệu suất của chùm sóng tối ưu sumrateOPTIMAL (Pind, m, n) = * bestFeasibleBRB trọng '; end end end end kết quả mô phỏng% Lô cho n = 1: chiều dài (Nantennas) con số; cầm giữ; hộp tìm kiếm trên; nếu computeOptimalBeamforming == true legen





















































































































































































































































đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: