1.软件版本
matlab2013b
2.本算法理论知识
3.部分源码
clc;
clear;
close all;
warning off;SNR_set = [0:1:12];
BER = 1;
nRx = 10;
nTx = 10;
frame_length = 1000;
Bers = [];
%论文table 2
alpha = [0,10,-15,30,-45,50,60,-55,-35,-60];
for SNR = SNR_set;N0 = 1/(10^(SNR/10));delta2 = N0;error_count = 0;bit_count = 0;index = 0;ERR_NUM = [];tmps = 0;while error_count < 50000index = index+1;for kk=1:nTxbits(kk,:) = round(rand(1,frame_length));%QPSKsymbols(kk,:) = -2*(pskmod(bits(kk,:),4)-(0.5+sqrt(-1)*0.5));end%transmit signals = symbols; u = reshape(s,nRx,nTx,length(s)/nTx);%Channelh = 1/sqrt(2)*[randn(nRx, nTx,length(s)/nTx) + j*randn(nRx,nTx,length(s)/nTx)];for ij = 1:nTxp(:,ij,:) = h(:,ij,:).*exp(j*alpha(ij)*pi/180);end%mmse beamformingWK = [];WK2= [];w = [];for i=1:length(s)/nTxn = sqrt(N0/2)*(randn(nTx,nRx)+1j*randn(nTx,nRx));XN(:,:,i)= u(:,:,i) + n;%定义接收信号w(:,:,i) = inv(p(:,:,i)*p(:,:,i)'+2*delta2^2*eye(nRx))*p(:,1,i);if i == 1WK = w(:,:,i)'*p(:,:,i);elsebk = bits(1,nTx*(i-2)+1:nTx*(i-1)); bk = 2*bk-1;pn = 2^delta2;yr = real(yhat(:,:,i-1));miu = 0.0000001;WK = WK + miu*(sign(bk)/(2*sqrt(2*pi)*pn)).*exp(-yr.^2/(2*pn^2))*(XN(:,:,i)); endWK = WK/(max(abs(WK)));yhat(:,:,i) = WK*XN(:,:,i);R1 = real(yhat(:,:,i))<0;I1 = imag(yhat(:,:,i))<0;s_hat(:,:,i)= pskdemod(R1+sqrt(-1)*I1,4);ends_hat1 = squeeze(s_hat);recovered_bits = reshape(s_hat1,1,length(s));ERR_NUM = sum(recovered_bits ~= bits(1,:));%异常错误不进行统计if index <= 200tmps = tmps + ERR_NUM; elseif ERR_NUM/(tmps/200) < 20SNRerror_counterror_count = error_count + ERR_NUM;bit_count = bit_count + frame_length;endendend%Calculate the BERBER = error_count/bit_count;Bers = [Bers,BER];
end
error_count
bit_countfigure;
semilogy(SNR_set,Bers,'b-o');
axis([0,30,1e-6,1]);
ylabel('BER');
xlabel('SNR');
grid on
% save r4.mat SNR_set Bers
4.仿真分析
5.参考文献
[1] Chen S , Hanzo L , Ahmad\T N N . adaptive minimum bit error rate beamforming assisted receiver for wireless communications[J]. 2017.A21-06