基于QUASI-ML decoder算法的PSK信号准最大似然译码器matlab性能仿真
目录
一、理论基础
本算法主要参考文献:
《[1] Luo Z Q , Luo X , Kisialiou M . An efficient quasi-maximum likelihood decoder for PSK signals[C]// IEEE. IEEE, 2003.》
Since exact maximum likelihood (ML) detection is computationally intractable in general, approximate ML approaches are needed to reduce the computation time while maintaining low bit error rate (BER). In this work, we develop an efficient approximate ML decoder for constant modulus signals based on a simple nonlinear programming relaxation. Unlike the existing sphere decoder whose expected complexity is cubic in problem size and whose performance deteriorates with increasing problem size and noise level, our proposed new decoder enjoys a worst case quadratic complexity and scales gracefully with problem dimension and noise level. Our initial testing and analysis suggests that this new decoder is capable of delivering ML like BER performance for PSK signals while requiring substantially lower computational complexity. In this sense, our new decoder is similar to the sphere decoder which is an effective method for QAM signals.
数字通信中的一个基本问题,最大似然(ML)检测,是NP难题,在实际应用中通常需要次优策略。现有的ML检测方法要么具有指数复杂性(例如,球体解码器及其变体),要么表现出显著的误码率(BER)退化(例如,LMMSE检测器等)。在本文中,我们考虑了两种基于半定松弛的准ML检测器:BPSK星座的SDR检测器和M-PSK星座的PSK检测器。这两个检测器都能够以多项式最坏情况复杂度提供接近最优(准ML)BER性能。对于一般类别的随机信道,我们证明了SDR检测器提供了对数似然值方面的恒定因子近似值,并且对于大系统,ML和SDR检测器之间的SNR间隙(以dB表示)由常数限制。对于PSK检测器,我们证明了对于ML检测问题可行的低秩半定松弛的每个局部最大值至少达到最大相对对数似然值的一半,并且对于BPSK情况,甚至可以得到精确的ML解。我们还提出了两个检测器的有效实现:SDR检测器使用双尺度内点方法实现,而PSK检测器基于可行集同伦上的坐标下降策略。我们使用动态降维和热启动技术来实现两个检测器的SNR敏感改进。BER性能和运行时间的数值模拟表明了这些准ML检测器的效率。此外,我们应用半定松弛策略为具有LDPC或turbo码的MIMO通信系统中的标准迭代接收机开发了一种有效的准MAP SDR检测器。所提出的准MAP SDR检测器以低复杂度(每个信道使用仅解决一个半定程序)和低内存利用率(不存储候选列表)提供接近最优的BER。蒙特卡罗模拟证实了准MAP SDR检测器的优点。
算法流程图如下所示:
二、核心程序
%QUASI-ML PSK decoder算法
for k=1:data_Numbers
y = H_Ray*MIMO_Tx(:,k) + 20*N0*randn(size(H_Ray*MIMO_Tx(:,k)));
y = y/max(max(abs(y)));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
e0 = 0.5;
beta0 = 0.4;
n1 = 10;
n2 = 10;
ee = zeros(n1,1);
%STEP1
for i1 = 1:n1
ee(i1) = -i1*e0/(n1-1) + n1*e0/(n1-1);
x1s = [-1-ee(i1)+(2+2*ee(i1))/Tm:(2+2*ee(i1))/Tm:1+ee(i1)];
for k1 = 1:Tm
x1 = x1s(k1)*ones(Tm,1);
f1(k1) = x1'*H_Ray'*H_Ray*x1 - y'*H_Ray*x1 - x1'*H_Ray'*y + y'*y;
end
[g1(i1),xk1(i1)] = min(f1);
end
[g11,xk11] = min(g1);
XK1 = y(xk1(xk11));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%STEP2
M = 64;
for i2 = 1:n2
beta(i2) = -i1*beta0/(n2-1) + n2*e0/(n2-1);
deltaa(i2) = 2*pi*(i2-1)/(M*(n2-1));
x2s = [-1-beta(i2)+(2+2*beta(i2))/Tm:(2+2*beta(i2))/Tm:1+beta(i2)];
for k2 = 1:Tm
x2 = x2s(k2)*ones(Tm,1);
f2(i2,k2) = x2'*H_Ray'*H_Ray*x2 - y'*H_Ray*x2 - x2'*H_Ray'*y + y'*y;
end
end
for k2 = 1:Tm
[g2,xk2] = min(f2(:,k2));
XK2(k2) = y(xk2);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%STEP3
a5(:,k) = XK2;
end
01-123
三、测试结果
相关文章
- 智能优化算法——飞蛾扑火优化算法(完整Matlab实现)
- 基于DWA算法的机器人路径规划研究(Matlab代码实现)
- 基于改进的洗牌蛙跳算法在系统可靠性分析中的研究(Matlab代码实现)
- 基于候鸟优化算法(MBO)的柔性车间调度优化研究(Matlab代码实现)
- 基于遗传算法的柔性车间调度优化(Matlab代码实现)
- 传感器|基于改进贪心算法的最佳传感器位置选择(Matlab代码实现)
- 多旋翼无人机组合导航系统-多源信息融合算法(Matlab代码实现)
- 基于智能优化算法的无人机路径规划(Matlab代码实现)
- DQN算法控制模拟旋转摆研究(Matlab代码实现)
- m基于matlab的软件无线电注水功率分配算法性能仿真,对比C-PF,C-CUBP,C-DUBP等
- m基于OFDM系统,对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析
- 基于模拟退火优化算法的三维装箱优化matlab仿真,优化重量利用率和空间利用率
- m基于GA遗传优化算法的陆基制导系统地面站布设策略matlab仿真,并输出GDOP值
- m基于HOG特征提取和GRNN网络的人体姿态识别算法matlab仿真,样本为TOF数据库的RGB-D深度图像
- 基于Lucas-Kanade算法的双目图像光流提取matlab仿真
- m基于HMM隐性马尔科夫模型的驾驶员驾驶意图识别算法matlab仿真
- m基于AlexNet神经网络和GEI步态能量图的步态识别算法MATLAB仿真
- m基于隐马尔科夫模型(HMM)的手机用户行为预测(MMUB)算法matlab仿真
- 【MATLAB】数据类型 ( 执行代码 | 清空命令 | 注释 | 数字 | 字符 | 字符串 )
- 【MATLAB】MATLAB 2017A 软件安装
- 使用 PMU(相量测量单元)进行电力系统状态估计(Matlab代码实现)
- m基于负价环N算法的无线传感器网络性能matlab仿真
- m基于整数序列的QC-LDPC的稀疏校验矩阵构造算法性能对比matlab仿真,对比差分序列,PEG,Mackey等
- 基于目标运动模型和观测模型的交互多模算法IMM卡尔曼滤波目标跟踪matlab仿真