【波束形成】MMSE波束形成,自适应MMSE波束形成以及自适应MBER波束形成

215 篇文章 52 订阅
该博客介绍了使用MATLAB2013b进行无线通信仿真,研究了自适应波束赋形接收机在不同信噪比(SNR)下的性能。通过QPSK调制,模拟了多天线系统,并应用最小比特误差率准则。仿真结果以BER(误比特率)为指标,展示了不同角度偏移对系统性能的影响,为无线通信系统的优化提供了参考。
摘要由CSDN通过智能技术生成

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 < 50000
        index = index+1;
        for kk=1:nTx
            bits(kk,:)    =  round(rand(1,frame_length));
            %QPSK
            symbols(kk,:) = -2*(pskmod(bits(kk,:),4)-(0.5+sqrt(-1)*0.5));
        end
        %transmit signal
        s        = symbols; 
        u        = reshape(s,nRx,nTx,length(s)/nTx);
        %Channel
        h        = 1/sqrt(2)*[randn(nRx, nTx,length(s)/nTx) + j*randn(nRx,nTx,length(s)/nTx)];
        for ij = 1:nTx
            p(:,ij,:) = h(:,ij,:).*exp(j*alpha(ij)*pi/180);
        end
        %mmse beamforming
        WK = [];
        WK2= [];
        w  = [];
        for i=1:length(s)/nTx
            n        = 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 == 1
               WK = w(:,:,i)'*p(:,:,i);
            else
               bk          = 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)); 
            end
            WK          = 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);
        end
        s_hat1               = squeeze(s_hat);
        recovered_bits       = reshape(s_hat1,1,length(s));
        ERR_NUM              = sum(recovered_bits ~= bits(1,:));
        %异常错误不进行统计
        if index <= 200
           tmps  = tmps + ERR_NUM; 
        else
           if ERR_NUM/(tmps/200) < 20
              SNR
              error_count
              error_count    = error_count + ERR_NUM;
              bit_count      = bit_count + frame_length;
           end
        end
    end
    %Calculate the BER
    BER  = error_count/bit_count;
    Bers = [Bers,BER];
end
error_count
bit_count

figure;
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

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值