前前言
接触到这一领域才发现传统方法的性能在基于神经网络的方法面前有多乏力。因为研究方向不是这方面的所以在此做一点简单的记录。
前言
通信信号的调制识别是介于能量检测和信号解调之间的过程。其目的是在未知调制信息内容的前提下正确判断通信信号的调制类型。现有的传统调制识别算法有部分是基于基带信号进行识别的,而实际应用过程中接收信号一般带有载频,因此该部分算法需要在部署过程中考虑下变频带来的影响,下面的高阶累积量算法显然对实际环境中频率估计算法的误差、噪声特性与多径效应皆不具有很好的鲁棒性。
高阶累积量
有一随机过程,则其
阶累积量的定义为:
其中为求累量操作,该累积量操作可表示为其高阶混合矩的运算,因此定义该随机过程的p阶混合矩定义为:
式中表示该随机序列的共轭,q为共轭操作的累乘次数。则该随机过程的各阶累积量如下所示:
高阶累积量主要反应的是高阶矩中的相位信息,因此需要对信号进行下变频,对其基带信号作高阶累积量变换才能正确地得到该信号的高阶矩,且由于其对非高斯噪声较低的鲁棒性,非精确的下变频会导致该信号的高阶累积量值严重失真,以下是本人整理的部分调制信号的基带高阶累积量:
C20 | C21 | C40 | C41 | C42 | C60 | C63 | C80 | |
BPSK | 1 | 1 | -2 | -2 | -2 | -16 | 16 | -272 |
4PSK | 0 | 1 | 1 | 0 | -1 | 0 | 4 | -34 |
8PSK | 0 | 1 | 0 | 0 | -1 | 0 | 4 | 1 |
16PSK | 0 | 1 | 0 | 0 | -1 | 0 | 4 | 0 |
2FSK | 0 | 1 | 0 | 0 | -1 | 0 | 4 | |
4FSK | 0 | 1 | 0 | 0 | -1 | 0 | 4 | |
8FSK | 0 | 1 | 0 | 0 | -1 | 0 | 4 | |
8QAM | 0.68 | 1 | 1 | 0.89 | 4.73 | 54.15 | ||
16QAM | 0 | 1 | -0.68 | 0 | -0.68 | 0 | 2.08 | 13.98 |
函数如下所示:
function [output_var] = cumulate(input_array,cum_order,cum_t)
%UNTITLED 此处提供此函数的摘要
% 此处提供详细说明
m20 = MM(input_array,2,0);
m21 = MM(input_array,2,1);
m40 = MM(input_array,4,0);
m41 = MM(input_array,4,1);
m42 = MM(input_array,4,2);
m60 = MM(input_array,6,0);
m63 = MM(input_array,6,3);
m80 = MM(input_array,8,0);
if cum_order == 2 && cum_t == 0
output_var = m20;
end
if cum_order == 2 && cum_t == 1
output_var = m21;
end
if cum_order == 4 && cum_t == 0
output_var = m40-3*m20.^2;
end
if cum_order == 4 && cum_t == 1
output_var = m41-3*m21.*m20;
end
if cum_order == 4 && cum_t == 2
output_var = m42-abs(m20).^2-2*m21.^2;
end
if cum_order == 6 && cum_t == 0
output_var = m60-15.*m40.*m20+30.*m20.^3;
end
if cum_order == 6 && cum_t == 3
output_var = m63-6*m20.*m41-9*m42.*m21+18*m20.^2.*m21+12*m21.^3;
end
if cum_order == 8 && cum_t == 0
output_var = m80-28*m20.*m60-35*m40.^2+420*m20.^2.*m40-630*m20.^4;
end
end
function [output_array] = MM(input_array,ma,mb)
%UNTITLED2 此处提供此函数的摘要
% 此处提供详细说明
output_array = mean(input_array.^(ma-mb).*conj(input_array).^mb);
end