• 自适应MSER波束形成辅助接收机的MATLAB仿真


    目录

    一、理论基础

    二、MATLAB程序

    三、仿真结论


    一、理论基础

         自适应MSER波束形成辅助接收机是一种先进的无线通信技术,它的原理是基于对信号的空间采样和波束形成,以实现干扰信号的衰减和期望信号的提取。这项技术运用了自适应波束形成算法,即最小符号误码率(MSER)算法,以实现空分多址场景中多用户信号的分离和检测。

          在自适应MSER波束形成辅助接收机中,多个麦克风阵元被放置在不同的空间位置,以对声波进行空间采样。每个麦克风阵元都配备了高灵敏度的传感器,能够捕捉到从不同方向传来的信号,并将这些信号传输到后端的信号处理系统。

          在信号处理系统中,自适应MSER波束形成算法被用来处理从麦克风阵元传来的信号。这种算法运用了最小均方误差(MMSE)和最小符号误码率(MSER)两种优化准则,以实现最佳的信号分离和检测。具体来说,这种算法会计算出每个采样信号的相关性,然后根据这些相关性对信号进行加权处理,以实现信号的定向性和灵敏度的优化。

          在具体的实现过程中,自适应MSER波束形成辅助接收机需要解决的一个重要问题是如何对信号进行有效的分离和检测。为了解决这个问题,该技术采用了最小均方误差(MMSE)和最小符号误码率(MSER)两种优化准则,以得到最佳的信号处理效果。其中,MMSE准则主要考虑的是干扰信号的抑制和期望信号的提取,而MSER准则主要考虑的是数据符号的错误率和误码率的降低。

         在对自适应MSER波束形成辅助接收机的研究中,研究者们发现这种技术相比传统的MMSE波束形成辅助接收机具有更好的性能。具体来说,自适应MSER波束形成辅助接收机在可实现的符号错误率方面超过了标准的MMSE设计。这主要是因为MSER算法在处理高阶QAM信令时具有更高的精度和鲁棒性。

           运用波束形成技术,利用麦克风阵列估计指定方向上的混有噪声和干扰的期望信号。这些麦克风阵元位于不同的空间位置,对声波进行空间采样,然后对采样信号进行处理以衰减干扰信号并提取期望信号。这样就得到一个特定的阵列空间响应,其主瓣指向期望信号而对干扰进行陷波。

           自适应波束形成能够分离在相同载波频率上传输的用户信号,因此提供了在空分多址场景中支持多用户的实用手段。此外,为了进一步提高可实现的带宽效率,高吞吐量正交幅度调制QAM方案在许多无线网络标准中变得流行,特别是在最近的WiMax标准中。多天线辅助多用户系统的自适应波束形成辅助检测其采用高阶QAM信令。

          传统上,最小均方误差(MMSE)自适应波束形成辅助接收机的设计被认为是最先进的。然而,最近工作[1]提出了一种新的波束形成辅助最小符号误码率(MSER)设计并且证明了这种MSER设计提供了显著的性能增强,在可实现的符号错误率方面超过标准MMSE设计。该MSER波束形成设计在此贡献中得到充分发展。特别是MSER的自适应实现详细研究了波束形成算法,即最小符号误码率算法。在仿真中评估了所提出的自适应MSER波束形成方案,并与自适应MMSE波束形成基准。

            该算法的流程和理论公式如下:

    二、MATLAB程序

    1. clc;
    2. clear;
    3. close all;
    4. warning off;
    5. SNR_set = [10:1:24];
    6. BER = 1;
    7. nRx = 4;
    8. nTx = 3;
    9. frame_length = 1000;
    10. Bers = [];
    11. %论文table 2
    12. alpha = [0,-70,65,32];
    13. SIR = [0,0,0,0];
    14. for SNR = SNR_set;
    15. N0 = 1/(10^(SNR/10));
    16. delta2 = N0;
    17. error_count = 0;
    18. bit_count = 0;
    19. index = 0;
    20. ERR_NUM = [];
    21. tmps = 0;
    22. while error_count < 500000
    23. index = index+1;
    24. for kk=1:nTx
    25. bits(kk,:) = round(rand(1,frame_length));
    26. symbols(kk,:) = qammod(bits(kk,:),16);
    27. end
    28. %transmit signal
    29. s = symbols;
    30. u = reshape(s,nTx,nRx,length(s)/nRx);
    31. %Channel
    32. h = 1/sqrt(2)*[randn(nRx,nTx,length(s)/nRx) + j*randn(nRx,nTx,length(s)/nRx)];
    33. for ij = 1:nTx
    34. p(:,ij,:) = h(:,ij,:).*exp(j*alpha(ij)*pi/180);
    35. end
    36. %mmse beamforming
    37. WK = [];
    38. WK2 = [];
    39. w = [];
    40. LMS = zeros(1,length(s)/nRx);
    41. dt = [];
    42. for i=1:length(s)/nRx
    43. for ii = 1:length(SIR)
    44. u2(:,ii) = u(:,ii,i)*10^(SIR(ii)/10);
    45. end
    46. XN(:,:,i)= awgn(u2,SNR,'measured');
    47. %定义接收信号
    48. w(:,:,i) = inv(p(:,:,i)*p(:,:,i)'+2*delta2^2*eye(nRx))*p(:,1,i);
    49. Nsb = nRx;
    50. M = nRx;
    51. r =(2*sqrt(M)-2)/sqrt(M);
    52. if i == 1
    53. WK = w(:,:,i)'*p(:,:,i);
    54. dt = -0.0001*[ones(1,Nsb)]';
    55. else
    56. bk = bits(1,nRx*(i-2)+1:nRx*(i-1));
    57. bk = 2*bk-1;
    58. x1_ = bk;
    59. p1 = p(:,1,i);
    60. yr = real(yhat(:,:,i-1));
    61. cr = real(w(:,:,i));
    62. for iii = 1:Nsb
    63. l = iii;
    64. ul = 2*l-sqrt(M) - 1;
    65. Rt{iii} = exp(-(yr(iii) - cr(iii)*(ul-1))^2/(2*delta2^2))*((yr(iii) - cr(iii)*(ul-1))*w(:,:,i) - x1_(iii) + (ul-1)*p1);
    66. end
    67. PER= r/(2*Nsb*sqrt(2*pi)*delta2) * (Rt{1} + Rt{2} + Rt{3} + Rt{4});
    68. yi = imag(yhat(:,:,i-1));
    69. ci = imag(w(:,:,i));
    70. for iii = 1:Nsb
    71. q = iii;
    72. uq = 2*q-sqrt(M) - 1;
    73. It{iii} = exp(-(yi(iii) - ci(iii)*(uq-1))^2/(2*delta2^2))*((yi(iii) - ci(iii)*(uq-1))*w(:,:,i) + sqrt(-1)*x1_(iii) + (uq-1)*p1);
    74. end
    75. PEI= r/(2*Nsb*sqrt(2*pi)*delta2) * (It{1} + It{2} + It{3} + It{4});
    76. PEB= PER + sqrt(-1)*PEI;
    77. for is = 1:length(PEB)
    78. if isnan(abs(PEB(is))) == 1
    79. PEB(is) = 1;
    80. end
    81. end
    82. WWt(:,i-1) = PEB;
    83. if i>3
    84. fai=max(min((abs(WWt(:,i-1)).^2)./(abs(WWt(:,i-2)).^2),1),0);
    85. else
    86. fai=ones(nRx,1);
    87. end
    88. dt = fai.*dt - PEB;
    89. miu = 5e-6;
    90. WK = WK + miu*[dt(1:nTx)]';
    91. end
    92. WK = WK/(max(abs(WK)));
    93. yhat(:,:,i) = WK*XN(:,:,i);
    94. R1 = real(yhat(:,:,i));
    95. I1 = imag(yhat(:,:,i));
    96. s_hat(:,:,i)= qamdemod(R1+sqrt(-1)*I1,16);
    97. end
    98. s_hat1 = squeeze(s_hat);
    99. recovered_bits = reshape(s_hat1,1,length(s));
    100. ERR_NUM = sum(recovered_bits ~= bits(1,:));
    101. %异常错误不进行统计
    102. % if index <= 200
    103. % tmps = tmps + ERR_NUM;
    104. % else
    105. % if ERR_NUM/(tmps/200) < 20
    106. SNR
    107. error_count
    108. error_count = error_count + ERR_NUM;
    109. bit_count = bit_count + frame_length;
    110. % end
    111. % end
    112. end
    113. %Calculate the BER
    114. BER = error_count/bit_count;
    115. Bers = [Bers,BER];
    116. end
    117. error_count
    118. bit_count
    119. figure;
    120. semilogy(SNR_set,Bers,'b-o');
    121. axis([10,40,1.0001e-6,1]);
    122. ylabel('BER');
    123. xlabel('SNR');
    124. grid on
    125. % save r2ber.mat SNR_set Bers

    三、仿真结论

    仿真结果如下:

           提出了一种用于多天线辅助的自适应MSER波束形成技术采用高通量QAM信令的多用户通信系统。已经证明了MSER波束形成设计可以在可实现系统的SER方面提供比标准MMSE设计显著的性能增强。它已经还已经证明,MSER波束形成设计提供了更高的用户容量与传统的MMSE波束形成相比,在远近传感器中更为鲁棒设计已经使用称为LSER技术的随机梯度自适应算法实现了MSER波束形成解决方案的自适应实现。模拟研究结果清楚地表明,自适应LSER波束形成能够:在快速衰落条件下成功运行,其性能始终优于自适应LMS波束形成基准。

    A01-14 

  • 相关阅读:
    C++ 多态类型
    使用 Docker 部署 instantbox 轻量级 Linux 系统
    Web 安全之时序攻击 Timing Attack 详解
    一元多项式相加问题(两种方法)
    C语言编程经典100例——1至10例
    spring各版本jar包下载,持续更新中
    Jmeter之配置元件
    Nginx: Rewrite功能配置/Nginx反向代理/Nginx的安全控制SSL
    CSV文件操作
    【Java基础夯实】变量声明选择包装类还是基本类型有哪些讲究?
  • 原文地址:https://blog.csdn.net/ccsss22/article/details/126735661