发明内容
本发明所要解决的技术问题是提供一种用户活跃性和多用户联合检测方法,其在用户稀疏性未知的情况下,利用所发送的离散符号的先验信息进行用户活跃性和多用户联合检测,联合检测效果好。
本发明解决上述技术问题所采用的技术方案为:一种用户活跃性和多用户联合检测方法,其特征在于包括以下步骤:
步骤1:在上行免调度非正交多址接入***中,设定在基站侧只有1个配置有单天线的基站,在用户侧共有K个配置有单天线的用户;在上行免调度非正交多址接入***中,考虑到信道编码因素,每个用户在J个时隙上发射符号,基站在各个时隙的N个子载波上接收信号,将第k个用户在第j个时隙上发射的符号记为
将基站在第j个时隙的第n个子载波上接收到的信号记为
描述为:
然后将K个用户在第j个时隙上发射的符号构成的维数为K×1的列向量记为x
j,
将K个用户在J个时隙上发射的符号构成的维数为K×J的矩阵记为X,X=[x
1,...,x
j,...,x
J];并将基站在第j个时隙的N个子载波上接收到的信号构成的维数为N×1的列向量记为y
j,
y
j描述为:y
j=Gx
j+w
j,将基站在J个时隙的所有子载波上接收到的信号构成的维数为N×J的矩阵记为Y,Y=[y
1,...,y
j,...,y
J],Y描述为Y=GX+W;其中,K表示用户数量,K≥1,J表示时隙数量,J≥1,N表示子载波数量,N≥1,1≤k≤K,1≤j≤J,1≤n≤N,若第k个用户在第j个时隙上活跃则
Δ表示M进制正交幅度调制的所有符号构成的集合,
M进制为2
i进制,即M=2
i,i为正整数,1≤i≤10,
表示M进制正交幅度调制的第1个符号,
表示M进制正交幅度调制的第m个符号,
表示M进制正交幅度调制的第M个符号,1≤m≤M,若第k个用户在第j个时隙上不活跃则
为零,
表示第1个用户在第j个时隙上发射的符号,
表示第K个用户在第j个时隙上发射的符号,h
n,k表示第k个用户在第n个子载波上的信道增益,s
n,k表示第k个用户对应的扩频序列的第n个分量,扩频序列的长度为N,
表示第j个时隙的第n个子载波上的噪声,
服从均值为0、精度为λ即方差为λ
-1的复高斯分布,即
表示复高斯分布,[ ]
T表示向量或矩阵的转置,x
1表示K个用户在第1个时隙上发射的符号构成的维数为K×1的列向量,x
J表示K个用户在第J个时隙上发射的符号构成的维数为K×1的列向量,
表示基站在第j个时隙的第1个子载波上接收到的信号,
表示基站在第j个时隙的第N个子载波上接收到的信号,y
1表示基站在第1个时隙的N个子载波上接收到的信号构成的维数为N×1的列向量,y
J表示基站在第J个时隙的N个子载波上接收到的信号构成的维数为N×1的列向量,w
j表示第j个时隙的N个子载波上的噪声构成的维数为N×1的独立同分布的加性复高斯白噪声向量,
表示第j个时隙的第1个子载波上的噪声,
表示第j个时隙的第N个子载波上的噪声,W表示J个时隙的所有子载波上的噪声构成的维数为N×J的噪声矩阵,W=[w
1,...,w
j,...,w
J],w
1表示第1个时隙的N个子载波上的噪声构成的维数为N×1的独立同分布的加性复高斯白噪声向量,w
J表示第J个时隙的N个子载波上的噪声构成的维数为N×1的独立同分布的加性复高斯白噪声向量,G表示维数为N×K的等效信道矩阵,G=[g
1,...,g
k,...,g
K],g
1表示G的第1个列向量,g
k表示G的第k个列向量,g
K表示G的第K个列向量,g
k=[h
1,ks
1,k,...,h
n,ks
n,k,...,h
N,ks
N,k]
T,h
1,k表示第k个用户在第1个子载波上的信道增益,h
N,k表示第k个用户在第N个子载波上的信道增益,s
1,k表示第k个用户对应的扩频序列的第1个分量,s
N,k表示第k个用户对应的扩频序列的第N个分量;
步骤2:根据贝叶斯定理,在Y已知的条件下X的概率为p(X|Y),p(X|Y)∝p(Y|X)p(X),其中,符号“∝”表示正比于,p(Y|X)表示在X已知的条件下Y的概率,
C为引入的维数为N×J的辅助矩阵,p(Y|C)表示在C已知的条件下Y的概率,p(C|X)表示在X已知的条件下C的概率,
表示在
已知的条件下
的概率,
表示变量
服从均值为
方差为λ
-1的复高斯分布的概率密度函数,
表示在x
j已知的条件下
的概率,
δ( )表示狄拉克函数,G
n表示G的第n行,
表示维数为N×1的辅助向量c
j中的第n个元素,也即为C的第n行第j列的元素,c
j为C中的第j列向量,c
j=Gx
j,
p(X)表示X的先验概率,
表示
的先验概率;然后将p(X|Y)∝p(Y|X)p(X)改写成
再令
表示
令
表示
令
表示
将
重新表示为
其中,以f
A(B)泛指
f
A(B)中的A表示因子图中的因子、B表示与因子A相关的变量,
代表
最后根据
中变量与因子的关系,得到因子图模型;
步骤3:在因子图模型的基础上,对用户活跃性和多用户进行联合检测,具体过程为:
步骤3_1:将
的均值的初始化值记为
将
的方差的初始化值记为
并引入中间变量
将
的初始化值记为
令t表示外循环的迭代次数,t的初始值为0;其中,p
m表示
为
的概率,符号“| |”为取模操作符号,
仅作为
的下标;
步骤3_2:根据近似消息传递算法,计算在第t次迭代下因子
传递给变量
的后向消息的方差和均值,对应记为
和
其中,符号“→”表示消息传递的方向,符号“| |”为取模操作符号,G
n,k表示G的第n行第k列的元素,t=0时
即为
t>0时
表示在第t次迭代下
的方差的值,t=0时
即为
t>0时
表示在第t次迭代下
的均值的值,t=0时
即为
t>0时
表示在第t-1次迭代下
的值;
步骤3_3:计算在第t次迭代下所有与变量
相关的因子传递给变量
的消息的方差和均值,对应记为
和
步骤3_5:计算在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的方差和均值,对应记为
和
其中,( )
H表示共轭转置;
步骤3_6:引入一个维数为(K×J)×1的中间向量r,
然后将
重新表示为r=[r
1,...,r
η,...,r
L]
T;接着针对r=[r
1,...,r
η,...,r
L]
T中的每个元素引入对应的一个长度为Γ的隐藏变量,将针对r
η引入的对应的隐藏变量记为z
η,z
η为维数为1×Γ的行向量;再将针对r=[r
1,...,r
η,...,r
L]
T中的所有元素引入的对应的隐藏变量构成的维数为L×Γ的隐藏变量矩阵记为Z,Z=[z
1,...,z
η,...,z
L]
T;其中,L=K×J,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第1个用户在第1个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第K个用户在第1个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第1个用户在第2个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第K个用户在第2个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第1个用户在第3个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第K个用户在第3个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第K个用户在第J个时隙上发射的符号,1≤η≤L,
z
1表示针对r
1引入的对应的隐藏变量,z
L表示针对r
L引入的对应的隐藏变量,Γ=M+1;
步骤3_7:将向量r、隐藏变量矩阵Z、参数σ、参数μ和参数τ的联合概率密度函数记为p(r,Z,σ,μ,τ),p(r,Z,σ,μ,τ)=p(r|Z,μ,τ)p(Z|σ)p(σ)p(μ|τ)p(τ);其中,p(r|Z,μ,τ)表示在Z、μ和τ已知的条件下r的概率,
Φ=M+1,Φ为集合Δ'中的符号的总个数,Γ=Φ,
对应为Δ'中的第1个符号、……、第
个符号、……、第Φ个符号,
为Z的第η行第
列的元素,
的取值只有0和1两种,并且Z的第η个行向量z
η中有且只有一个1而其他均为0,
表示变量r
η服从均值为
方差为τ
-1的复高斯分布的概率密度函数,在
中μ为对均值
进行缩放的参数、τ为精度,p(Z|σ)表示在σ已知的条件下Z的概率,
是多项式分布,
表示长度为Φ的向量σ中的第
个元素,σ表示由Φ个高斯分布的混合系数构成的向量,p(σ)表示σ的先验概率,
是狄利克雷分布,
为p(σ)的参数,
是一个长度为Φ的向量,
β
0为
中的元素,
为p(σ)的归一化常数,p(μ|τ)表示在τ已知的条件下μ的概率,
表示变量μ服从均值为μ
0、方差为(γ
0τ)
-1的高斯分布的概率密度函数,
表示高斯分布,μ
0和γ
0均为超参数,p(τ)表示τ的先验概率,p(τ)=Gam(τ|a
0,b
0),Gam(τ|a
0,b
0)表示τ服从参数为a
0和b
0的Gamma分布,a
0和b
0均为超参数;
步骤3_8:根据变分贝叶斯推断算法,用q( )表示变分分布,将隐藏变量矩阵Z、参数σ、参数μ和参数τ的变分分布记为q(Z,σ,μ,τ),q(Z,σ,μ,τ)=q(Z)q(σ)q(μ,τ);其中,q(Z)表示隐藏变量矩阵Z的变分分布,
是多项式分布,
exp( )表示以自然基数e为底的指数函数,ln( )表示以自然基数e为底的对数函数,符号“| |”为取模操作符号,
根据
计算得到,E( )表示求期望,q(σ)表示参数σ的变分分布,
是狄利克雷分布,
为q(σ)的参数,
是一个长度为Φ的向量,
β'为
中的元素,
为q(σ)的归一化常数,
q(μ,τ)表示参数μ和参数τ的变分分布,
μ'、γ'、a'和b'均为超参数,且
a'=a
0+Φ,
表示变量μ服从均值为μ'、方差为(γ'τ)
-1的高斯分布的概率密度函数,Gam(τ|a',b')表示τ服从参数为a'和b'的Gamma分布,
E(ln(τ))=ψ(a')-ψ(b'),
ψ( )为digamma函数,
Re( )表示求复数的实部数值,( )
*表示复数的共轭;
步骤3_9:令t'表示内循环的迭代次数,t'的初始化值为1;
步骤3_10:计算在第t'次迭代下β'的值,记为β'
(t'),
并计算在第t'次迭代下γ'的值,记为γ'
(t'
),
计算在第t'次迭代下μ'的值,记为μ'
(t'
),
计算在第t'次迭代下a'的值,记为a'
(t'),a'
(t')=a
0+Φ;计算在第t'次迭代下b'的值,记为b'
(t'),
其中,β
0的初始化值大于Φ,当t'=1且
时
等于0.5,当t'=1且
时
等于
当t'>1时
表示在第t'-1次迭代下
的值,γ
0的初始化值大于或等于1000,μ
0的初始化值大于或等于1,a
0的初始化值大于或等于100,b
0的初始化值大于0且小于或等于1;
步骤3_11:计算在第t'次迭代下
的值,记为
其中,
根据
的计算公式计算得到;
步骤3_12:判断内循环的迭代次数t'是否达到内循环最大迭代次数tmax',若达到,则停止内循环的迭代过程,再执行步骤3_13;若没有达到,则令a0=a'(t'),b0=b'(t'),μ0=μ'(t'),γ0=γ'(t'),β0=β'(t'),t'=t'+1,然后返回步骤3_10继续执行;其中,tmax'≥2000,a0=a'(t'),b0=b'(t'),μ0=μ'(t'),γ0=γ'(t'),β0=β'(t'),t'=t'+1中的“=”均为赋值符号;
步骤3_13:判断外循环的迭代次数t是否达到外循环最大迭代次数t
max,若达到,则停止外循环的迭代过程,再执行步骤4;若没有达到,则得到矩阵
中的第η行第
列元素为
然后令t=t+1,引入长度为Φ的列向量
令
为维数为L×1的列向量,令
将维数为L×1的列向量
转换成维数为K×J的矩阵
将维数为L×1的列向量
转换成维数为K×J的矩阵
转换过程均为:维数为K×J的矩阵的第1列是维数为L×1的向量的第1行至第K行,维数为K×J的矩阵的第2列是维数为L×1的向量第K+1行至第2K行,维数为K×J的矩阵的第J列是维数为L×1的向量的第K×(J-1)+1行至第L行,令
等于矩阵
的第k行第j列的值,令
等于矩阵
的第k行第j列的值,再返回步骤3_2继续执行;其中,t
max≥10,
表示在第t
max'次迭代下
的值,
均为引入的中间向量,符号“| |”为取模操作符号,t=t+1中的符号“=”为赋值符号;
步骤4:得到矩阵
中的第η行第
列元素为
提取出
的每行中的最大值及最大值所在列的列序号,将L个最大值所在列的列序号按最大值所在行的行序号的顺序排列构成维数为L×1的列向量,记为
将
重新表示成维数为K×J的矩阵
的第1列向量为
的第2列向量为
的第J列向量为
中的第k行第j列元素为
若
则认为第k个用户在第j个时隙上不活跃,且多用户检测结果为0;若
则认为第k个用户在第j个时隙上活跃,且多用户检测结果为Δ'中的第
个数;其中,
表示在第t
max'次迭代下
的值,
对应表示
的第1行中的最大值所在列的列序号、……、
的第K行中的最大值所在列的列序号、
的第K+1行中的最大值所在列的列序号、……、
的第2K行中的最大值所在列的列序号、……、
的第K×(J-1)+1行中的最大值所在列的列序号、……、
的第L行中的最大值所在列的列序号,
的值为1至Φ中的正整数,
与现有技术相比,本发明的优点在于:
1)本发明方法在进行多用户检测时无需提前已知用户稀疏度,这同时也是联合检测的优势。
2)本发明方法利用了所发送的离散符号的先验信息,主要是利用了贝叶斯框架下的变分贝叶斯推断算法,引入结构化的先验知识再进行用户活跃性和多用户联合检测。
3)本发明方法将变分贝叶斯推断算法和近似消息传递算法进行了结合,利用近似消息传递算法提高了计算效率,两种算法的结合提高了联合检测的性能准确性。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种用户活跃性和多用户联合检测方法,其总体实现框图如图1所示,其包括以下步骤:
步骤1:如图2所示,在上行免调度非正交多址接入***中,设定在基站侧只有1个配置有单天线的基站,在用户侧共有K个配置有单天线的用户;在上行免调度非正交多址接入***中,考虑到信道编码因素,每个用户在J个时隙上发射符号,基站在各个时隙的N个子载波上接收信号,将第k个用户在第j个时隙上发射的符号记为
将基站在第j个时隙的第n个子载波上接收到的信号记为
描述为:
然后将K个用户在第j个时隙上发射的符号构成的维数为K×1的列向量记为x
j,
将K个用户在J个时隙上发射的符号构成的维数为K×J的矩阵记为X,X=[x
1,...,x
j,...,x
J];并将基站在第j个时隙的N个子载波上接收到的信号构成的维数为N×1的列向量记为y
j,
y
j描述为:y
j=Gx
j+w
j,将基站在J个时隙的所有子载波上接收到的信号构成的维数为N×J的矩阵记为Y,Y=[y
1,...,y
j,...,y
J],Y描述为Y=GX+W;其中,K表示用户数量,K≥1,如取K=150,J表示时隙数量,J≥1,在本实施例中取J=7,N表示子载波数量,N≥1,在本实施例中取N=100,1≤k≤K,1≤j≤J,1≤n≤N,若第k个用户在第j个时隙上活跃则
Δ表示M进制正交幅度调制的所有符号构成的集合,
M进制为2
i进制,即M=2
i,i为正整数,1≤i≤10,由于目前正交幅度调制(QAM)达到1024,因此i最大为10,
表示M进制正交幅度调制的第1个符号,
表示M进制正交幅度调制的第m个符号,
表示M进制正交幅度调制的第M个符号,1≤m≤M,若第k个用户在第j个时隙上不活跃则
为零,
表示第1个用户在第j个时隙上发射的符号,
表示第K个用户在第j个时隙上发射的符号,
表达的是
经过扩频序列(扩频序列的长度为N)和信道,加上
得到
由于扩频序列和信道在所有时隙保持不变,因此,h
n,k表示第k个用户在第n个子载波上的信道增益,s
n,k表示第k个用户对应的扩频序列的第n个分量,扩频序列的长度为N,
表示第j个时隙的第n个子载波上的噪声,
服从均值为0、精度为λ即方差为λ
-1的复高斯分布,即
表示复高斯分布,[ ]
T表示向量或矩阵的转置,x
1表示K个用户在第1个时隙上发射的符号构成的维数为K×1的列向量,x
J表示K个用户在第J个时隙上发射的符号构成的维数为K×1的列向量,
表示基站在第j个时隙的第1个子载波上接收到的信号,
表示基站在第j个时隙的第N个子载波上接收到的信号,y
1表示基站在第1个时隙的N个子载波上接收到的信号构成的维数为N×1的列向量,y
J表示基站在第J个时隙的N个子载波上接收到的信号构成的维数为N×1的列向量,w
j表示第j个时隙的N个子载波上的噪声构成的维数为N×1的独立同分布的加性复高斯白噪声向量,
表示第j个时隙的第1个子载波上的噪声,
表示第j个时隙的第N个子载波上的噪声,W表示J个时隙的所有子载波上的噪声构成的维数为N×J的噪声矩阵,W=[w
1,...,w
j,...,w
J],w
1表示第1个时隙的N个子载波上的噪声构成的维数为N×1的独立同分布的加性复高斯白噪声向量,w
J表示第J个时隙的N个子载波上的噪声构成的维数为N×1的独立同分布的加性复高斯白噪声向量,G表示维数为N×K的等效信道矩阵,G=[g
1,...,g
k,...,g
K],g
1表示G的第1个列向量,g
k表示G的第k个列向量,g
K表示G的第K个列向量,
h
1,k表示第k个用户在第1个子载波上的信道增益,h
N,k表示第k个用户在第N个子载波上的信道增益,s
1,k表示第k个用户对应的扩频序列的第1个分量,s
N,k表示第k个用户对应的扩频序列的第N个分量。
步骤2:根据贝叶斯定理,在Y已知的条件下X的概率为p(X|Y),p(X|Y)∝p(Y|X)p(X),其中,符号“∝”表示正比于,p(Y|X)表示在X已知的条件下Y的概率,
C为引入的维数为N×J的辅助矩阵,p(Y|C)表示在C已知的条件下Y的概率,p(C|X)表示在X已知的条件下C的概率,
表示在
已知的条件下
的概率,
表示变量
服从均值为
方差为λ
-1的复高斯分布的概率密度函数,
表示在x
j已知的条件下
的概率,
δ( )表示狄拉克函数,G
n表示G的第n行,
表示维数为N×1的辅助向量c
j中的第n个元素,也即为C的第n行第j列的元素,c
j为C中的第j列向量,c
j=Gx
j,
p(X)表示X的先验概率,
表示
的先验概率;然后将p(X|Y)∝p(Y|X)p(X)改写成
再令
表示
令
表示
令
表示
将
重新表示为
其中,以f
A(B)泛指
f
A(B)中的A表示因子图中的因子、B表示与因子A相关的变量,
代表
最后根据
中变量与因子的关系,得到因子图模型,如图3所示。
步骤3:在因子图模型的基础上,对用户活跃性和多用户进行联合检测,具体过程为:
步骤3_1:将
的均值的初始化值记为
将
的方差的初始化值记为
并引入中间变量
将
的初始化值记为
令t表示外循环的迭代次数,t的初始值为0;其中,p
m表示
为
的概率,符号“| |”为取模操作符号,
仅作为
的下标。
步骤3_2:根据近似消息传递算法,计算在第t次迭代下因子
传递给变量
的后向消息的方差和均值,对应记为
和
其中,符号“→”表示消息传递的方向,符号“| |”为取模操作符号,G
n,k表示G的第n行第k列的元素,t=0时
即为
t>0时
表示在第t次迭代下
的方差的值,t=0时
即为
t>0时
表示在第t次迭代下
的均值的值,t=0时
即为
t>0时
表示在第t-1次迭代下
的值。
步骤3_3:计算在第t次迭代下所有与变量
相关的因子传递给变量
的消息(包括前向消息和后向消息)的方差和均值,对应记为
和
步骤3_5:计算在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的方差和均值,对应记为
和
其中,( )
H表示共轭转置。
步骤3_6:引入一个维数为(K×J)×1的中间向量r,
然后将
重新表示为r=[r
1,...,r
η,...,r
L]
T;接着针对r=[r
1,...,r
η,...,r
L]
T中的每个元素引入对应的一个长度为Γ的隐藏变量,将针对r
η引入的对应的隐藏变量记为z
η,z
η为维数为1×Γ的行向量;再将针对r=[r
1,...,r
η,...,r
L]
T中的所有元素引入的对应的隐藏变量构成的维数为L×Γ的隐藏变量矩阵记为Z,Z=[z
1,...,z
η,...,z
L]
T;其中,L=K×J,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第1个用户在第1个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第K个用户在第1个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第1个用户在第2个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第K个用户在第2个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第1个用户在第3个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第K个用户在第3个时隙上发射的符号,
表示在第t次迭代下所有与变量
相关的因子传递给变量
的前向消息的均值,
表示第K个用户在第J个时隙上发射的符号,1≤η≤L,
z
1表示针对r
1引入的对应的隐藏变量,z
L表示针对r
L引入的对应的隐藏变量,Γ=M+1。
步骤3_7:由于中间向量r中的数据分布情况为混合高斯模型(因为对应的符号数据有Φ种情况,即有Φ个高斯分布),因此将向量r、隐藏变量矩阵Z、参数σ、参数μ和参数τ的联合概率密度函数记为p(r,Z,σ,μ,τ),p(r,Z,σ,μ,τ)=p(r|Z,μ,τ)p(Z|σ)p(σ)p(μ|τ)p(τ);其中,p(r|Z,μ,τ)表示在Z、μ和τ已知的条件下r的概率,
Φ=M+1,Φ为集合Δ'中的符号的总个数,Γ=Φ,
对应为Δ'中的第1个符号、……、第
个符号、……、第Φ个符号,
为Z的第η行第
列的元素,
的取值只有0和1两种,并且Z的第η个行向量z
η中有且只有一个1而其他均为0,
表示变量r
η服从均值为
方差为τ
-1的复高斯分布的概率密度函数,在
中μ为对均值
进行缩放的参数、τ为精度,p(Z|σ)表示在σ已知的条件下Z的概率,
是多项式分布,
表示长度为Φ的向量σ中的第
个元素,σ表示由Φ个高斯分布的混合系数构成的向量,p(σ)表示σ的先验概率,由于混合系数的先验概率服从狄利克雷分布,因此
是狄利克雷分布,
为p(σ)的参数,
是一个长度为Φ的向量,
β
0为
中的元素,
为p(σ)的归一化常数,p(μ|τ)表示在τ已知的条件下μ的概率,
表示变量μ服从均值为μ
0、方差为(γ
0τ)
-1的高斯分布的概率密度函数,
表示高斯分布,μ
0和γ
0均为超参数,p(τ)表示τ的先验概率,p(τ)=Gam(τ|a
0,b
0),Gam(τ|a
0,b
0)表示τ服从参数为a
0和b
0的Gamma分布,a
0和b
0均为超参数。
步骤3_8:根据变分贝叶斯推断算法,用q( )表示变分分布,将隐藏变量矩阵Z、参数σ、参数μ和参数τ的变分分布记为q(Z,σ,μ,τ),q(Z,σ,μ,τ)=q(Z)q(σ)q(μ,τ);其中,q(Z)表示隐藏变量矩阵Z的变分分布,
是多项式分布,
exp( )表示以自然基数e(e=2.17…)为底的指数函数,ln( )表示以自然基数e(e=2.17…)为底的对数函数,符号“| |”为取模操作符号,
根据
计算得到,π=3.14…,E( )表示求期望,q(σ)表示参数σ的变分分布,
是狄利克雷分布,
为q(σ)的参数,
是一个长度为Φ的向量,
β'为
中的元素,
为q(σ)的归一化常数,
q(μ,τ)表示参数μ和参数τ的变分分布,
μ'、γ'、a'和b'均为超参数,且
a'=a
0+Φ,
表示变量μ服从均值为μ'、方差为(γ'τ)
-1的高斯分布的概率密度函数,Gam(τ|a',b')表示τ服从参数为a'和b'的Gamma分布,
E(ln(τ))=ψ(a')-ψ(b'),
ψ( )为digamma函数,
Re( )表示求复数的实部数值,( )
*表示复数的共轭。
步骤3_9:令t'表示内循环的迭代次数,t'的初始化值为1。
步骤3_10:计算在第t'次迭代下β'的值,记为β'
(t'),
并计算在第t'次迭代下γ'的值,记为γ'
(t'),
计算在第t'次迭代下μ'的值,记为μ'
(t'),
计算在第t'次迭代下a'的值,记为a'
(t'),a'
(t')=a
0+Φ;计算在第t'次迭代下b'的值,记为b'
(t'),
其中,β
0的初始化值大于Φ,在本实施例中取β
0等于20,当t'=1且
时
等于0.5,当t'=1且
时
等于
当t'>1时
表示在第t'-1次迭代下
的值,γ
0的初始化值大于或等于1000,在本实施例中取γ
0等于1000,μ
0的初始化值大于或等于1,在本实施例中取μ
0等于1.25,a
0的初始化值大于或等于100,在本实施例中取a
0等于100,b
0的初始化值大于0且小于或等于1,在本实施例中取b
0等于1。
步骤3_11:计算在第t'次迭代下
的值,记为
其中,
根据
的计算公式计算得到。
步骤3_12:判断内循环的迭代次数t'是否达到内循环最大迭代次数tmax',若达到,则停止内循环的迭代过程,再执行步骤3_13;若没有达到,则令a0=a'(t'),b0=b'(t'),μ0=μ'(t'),γ0=γ'(t'),β0=β'(t'),t'=t'+1,然后返回步骤3_10继续执行;其中,tmax'≥2000,a0=a'(t'),b0=b'(t'),μ0=μ'(t'),γ0=γ'(t'),β0=β'(t'),t'=t'+1中的“=”均为赋值符号。
步骤3_13:判断外循环的迭代次数t是否达到外循环最大迭代次数t
max,若达到,则停止外循环的迭代过程,再执行步骤4;若没有达到,则得到矩阵
中的第η行第
列元素为
然后令t=t+1,引入长度为Φ的列向量
令
为维数为L×1的列向量,令
将维数为L×1的列向量
转换成维数为K×J的矩阵
将维数为L×1的列向量
转换成维数为K×J的矩阵
转换过程均为:维数为K×J的矩阵的第1列是维数为L×1的向量的第1行至第K行,维数为K×J的矩阵的第2列是维数为L×1的向量第K+1行至第2K行,维数为K×J的矩阵的第J列是维数为L×1的向量的第K×(J-1)+1行至第L行,令
等于矩阵
的第k行第j列的值,令
等于矩阵
的第k行第j列的值,再返回步骤3_2继续执行;其中,t
max≥10,
表示在第t
max'次迭代下
的值,
均为引入的中间向量,符号“| |”为取模操作符号,t=t+1中的符号“=”为赋值符号。
步骤4:得到矩阵
中的第η行第
列元素为
提取出
的每行中的最大值及最大值所在列的列序号,将L个最大值所在列的列序号按最大值所在行的行序号的顺序排列构成维数为L×1的列向量,记为
将
重新表示成维数为K×J的矩阵
的第1列向量为
的第2列向量为
的第J列向量为
中的第k行第j列元素为
若
则认为第k个用户在第j个时隙上不活跃,且多用户检测结果为0;若
则认为第k个用户在第j个时隙上活跃,且多用户检测结果为Δ'中的第
个数;其中,
表示在第t
max'次迭代下
的值,
对应表示
的第1行中的最大值所在列的列序号、……、
的第K行中的最大值所在列的列序号、
的第K+1行中的最大值所在列的列序号、……、
的第2K行中的最大值所在列的列序号、……、
的第K×(J-1)+1行中的最大值所在列的列序号、……、
的第L行中的最大值所在列的列序号,
的值为1至Φ中的正整数,
通过以下仿真来进一步说明本发明方法的性能。
图4给出了发送4QAM(即M=4)信号,当子载波数量为N=100、用户总数为K=150、时隙数量为J=7、外循环最大迭代次数tmax=15、内循环最大迭代次数t'max=5000、活跃设备数量为20时,本发明方法(活跃用户位置和发射符号均未知)、结构化迭代支撑检测方法(structured iterative support detection,SISD)的误符号率随信噪比的变化曲线对比图。从图4中可以看出随着信噪比的增大,本发明方法在调制模式为4QAM的情况下误符号率相比结构化迭代支撑检测方法降低明显,在高信噪比(10dB)下误符号率达到10-5,极低的误符号率说明本发明方法的检测性能好。
图5给出了发送16QAM(即M=16)信号,当子载波数量为N=100、用户总数为K=150、时隙数量为J=7、外循环最大迭代次数tmax=15、内循环最大迭代次数t'max=5000、活跃设备数量为20时,本发明方法(活跃用户位置和发射符号均未知)、结构化迭代支撑检测方法(structured iterative support detection,SISD)的误符号率随信噪比的变化曲线对比图。从图5中可以看出随着信噪比的增大,本发明方法在调制模式为16QAM的情况下误符号率仍降低明显;另外,通过图4和图5的对比,说明本发明方法的检测性能在不同调制模式下都比较好。
图6给出了发送16QAM(即M=16)信号,当子载波数量为N=100、用户总数为K=150、时隙数量为J=7、外循环最大迭代次数tmax=15、内循环最大迭代次数t'max=5000、信噪比为10dB时,本发明方法(活跃用户位置和发射符号均未知)、结构化迭代支撑检测方法(structured iterative support detection,SISD)的误符号率随活跃用户数的变化曲线对比图。从图6中可以看出,当活跃用户数增大时,本发明方法虽然在活跃用户数在30~50范围内性能变化明显,在活跃用户数达到50时才开始出现检测性能的降低,但相比结构化迭代支撑检测方法仍有较好的误符号率性能;另外,通过图5和图6的对比,说明本发明方法在相同调制模式不同情况下的检测性能均低于结构化迭代支撑检测方法。