1.一种NOMA系统的用户活跃性和多用户联合检测方法,其特征在于包括以下步骤:步骤1:在上行免调度NOMA系统中,设定在基站侧只有1个配置有单天线的基站,在用户侧共有K个配置有单天线的用户;在上行免调度NOMA系统中,考虑到信道编码因素,每个用户在J个时隙上发射符号,基站在各个时隙的N个子载波上接收信号,将第k个用户在第j个时隙上发射的符号记为 将基站在第j个时隙的第n个子载波上接收到的信号记为描述为: 然后将K个用户在第j个时隙上发射的符号构成的维数为K×j
1的列向量记为x , 将K个用户在J个时隙上发射的符号构成的维数为K
1 j J
×J的矩阵记为X,X=[x ,...,x ,...,x ];并将基站在第j个时隙的N个子载波上接收到的j j j j j
信号构成的维数为N×1的列向量记为y, y描述为:y=Gx+w ,将基1
站在J个时隙的所有子载波上接收到的信号构成的维数为N×J的矩阵记为Y,Y=[y ,...,j J
y ,...,y],Y描述为Y=GX+W;其中,K表示用户数量,K≥1,J表示时隙数量,J≥1,N表示子载波数量,N≥1,1≤k≤K,1≤j≤J,1≤n≤N,若第k个用户在第j个时隙上活跃则 Δ表i
示M进制正交幅度调制的所有符号构成的集合, M进制为2进制,即M=i
2 ,i为正整数,1≤i≤10, 表示M进制正交幅度调制的第1个符号, 表示M进制正交幅度调制的第m个符号, 表示M进制正交幅度调制的第M个符号,1≤m≤M,若第k个用户在第j个时隙上不活跃则 为零, 表示第1个用户在第j个时隙上发射的符号, 表示第K个用户在第j个时隙上发射的符号,hn,k表示第k个用户在第n个子载波上的信道增益,sn,k表示第k个用户对应的扩频序列的第n个分量,扩频序列的长度为N, 表示第j个时隙的第n个子载波‑1
上的噪声, 服从均值为0、精度为λ即方差为λ 的复高斯分布,即T 1
表示复高斯分布,[] 表示向量或矩阵的转置,x表示K个用户在第1个时隙上发射的符号构J
成的维数为K×1的列向量,x 表示K个用户在第J个时隙上发射的符号构成的维数为K×1的列向量, 表示基站在第j个时隙的第1个子载波上接收到的信号, 表示基站在第j个时1
隙的第N个子载波上接收到的信号,y 表示基站在第1个时隙的N个子载波上接收到的信号J
构成的维数为N×1的列向量,y 表示基站在第J个时隙的N个子载波上接收到的信号构成的j
维数为N×1的列向量,w表示第j个时隙的N个子载波上的噪声构成的维数为N×1的独立同分布的加性复高斯白噪声向量, 表示第j个时隙的第1个子载波上的噪声, 表示第j个时隙的第N个子载波上的噪声,W表示J个时隙的所有子载波上的噪声
1 j J 1
构成的维数为N×J的噪声矩阵,W=[w ,...,w ,...,w],w 表示第1个时隙的N个子载波上J
的噪声构成的维数为N×1的独立同分布的加性复高斯白噪声向量,w 表示第J个时隙的N个子载波上的噪声构成的维数为N×1的独立同分布的加性复高斯白噪声向量,G表示维数为N×K的等效信道矩阵,G=[g1,...,gk,...,gK],g1表示G的第1个列向量,gk表示G的第k个列向T
量,gK表示G的第K个列向量,gk=[h1,ks1,k,...,hn,ksn,k,...,hN,ksN,k] ,h1,k表示第k个用户在第1个子载波上的信道增益,hN,k表示第k个用户在第N个子载波上的信道增益,s1,k表示第k个用户对应的扩频序列的第1个分量,sN,k表示第k个用户对应的扩频序列的第N个分量;
步骤2:对G进行奇异值分解,G=UΛV;然后根据Y=GX+W和G=UΛV,得到Y=UΛVX+W;
T T T
接着在Y=UΛVX+W的两侧均左乘矩阵U ,得到U Y=ΛVX+UW;再引入一个维数为N×J的矩T T
阵D,令D=UY=ΛVX+UW;其中,U表示维数为N×N的正交矩阵即酉矩阵,V表示维数为K×K
1 j J 1
的正交矩阵即酉矩阵,Λ表示维数为N×K的非负实对角矩阵,D=[d ,...,d ,...,d],d 表J j 1
示D的第1列向量,d表示D的第J列向量,d 表示D的第j列向量,且 d 、J j j j j
d和d的维数均为N×1, 为d中第1个元素, 为d中第n个元素, 为d中第N个元素;
步骤3:将精度λ的先验概率记为p(λ),p(λ)=Gam(λ;a,b);并将在D已知的条件下精度λ和X的后验概率记为p(X,λ|D),p(X,λ|D)∝p(D|X,λ)p(X)p(λ);其中,Gam(λ;a,b)表示λ服从参数为a和b的Gamma分布,Gam()表示Gamma分布,a和b均为接近于0的极小正数,符号“∝”表示正比于,p(D|X,λ)表示X和λ已知的条件下D的概率,C为引入的维数为N×J
的辅助矩阵,p(D|C,λ)表示C和λ已知的条件下D的概率,p(C|X)表示X已知的条件下C的概率, 为C的第n行第j列的元素, (ΛV)n表示矩阵ΛV的第n行,表示 和λ已知的条件下 的概率, 表示变‑1 j
量 服从均值为 方差为λ 的复高斯分布的概率密度函数, 表示x已知的条件下 的概率, δ()表示狄拉克函数,p(X)表示X的先验概率,表示 的先验概率;
步骤4:根据p(X,λ|D)∝p(D|X,λ)p(X)p(λ)及和
将p(X,λ|D)∝p(D|X,λ)p(X)p(λ)改写为然后令fλ(λ)、
和 对应表示p(λ)、 和 将重新表示为
进而得到因子图模型;其中,
为引入的仅用于表示因子的一个符号,用fA(B)的形式泛指fλ(λ)、和 fA(B)中A表示因子图中的因子、B表示因子图中的变量;
步骤5:在因子图模型的基础上,对用户活跃性和多用户进行联合检测,具体过程为:步骤5_1:将 的均值的初始化值记为 将 的方差的初始化值记为 并引入中间变量 将 的初始化值记为引入中间变量 令 将 的初始化值记为 令t表示外循环的迭代次数,t的初始值为0;其中,pm表示 为 的概率,符号“||”为取模操作符号,E()表示求期望;
步骤5_2:根据近似消息传递算法,计算在第t次迭代下因子 传递给变量 的后向消息的方差和均值,对应记为 和
其中,符号“→”表示传递的方向,符号“||”为取模操作符号,(ΛV)n,k表示矩阵ΛV的第n行第k列的元素,t=0时 即为 t>0时 表示在第t次迭代下 的方差的值,t=0时 即为 t>0时 表示在第t次迭代下的均值的值,t=0时 即为 t>0时 表示在第t‑1次迭代下 的值;
步骤5_3:计算在第t次迭代下所有与变量 相关的因子传递给变量 的消息的方差和均值,对应记为 和
其中,t=0时 即为 t>0时 表示在第t‑1次迭代下 的值;
步骤5_4:计算在第t次迭代下 的值,记为 再计算在第t次迭代下 的值,记为步骤5_5:计算在第t次迭代下所有与变量 相关的因子传递给变量 的前向消息的方差和均值,对应记为 和
H
其中,() 表示共轭转置;
步骤5_6:引入一个维数为(K×J)×1的中间向量r,T
然后将 重新表示为r=[r1,...,rη,...,rL] ;接着针T
对r=[r1,...,rη,...,rL]中的每个元素引入对应的一个长度为Γ的隐藏变量,将针对rη引T
入的对应的隐藏变量记为zη,zη为维数为1×Γ的行向量;再将针对r=[r1,...,rη,...,rL]中的所有元素引入的对应的隐藏变量构成的维数为L×Γ的隐藏变量矩阵记为Z,Z=T
[z1,...,zη,...,zL] ;其中,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, z1表示针对r1引入的对应的隐藏变量,zL表示针对rL引入的对应的隐藏变量,Γ=M+1;
步骤5_7:将向量r、隐藏变量矩阵Z、参数σ、参数μ和参数τ的联合概率密度函数记为p(r,Z,σ,μ,τ),p(r,Z,σ,μ,τ)=p(r|Z,μ,τ)p(Z|σ)p(σ)p(μ|τ)p(τ);其中,p(r|Z,μ,τ)表示Z、μ和τ已知的条件下r的概率, Φ=M+1,Φ为集合Δ'中的符号的总个数,Γ=Φ,为Z的第η行第 列的元素, 的取值只有0和1两种,并且行向量zη中有且只有一个1其‑1
他均为0, 表示变量rη服从均值为 方差为τ 的复高斯分布的概率密度函数,在 中μ为对均值 进行缩放的参数、τ为精度,p(Z|σ)表示σ已知的条件下Z的概率, 是多项式分布, 表示长度为Φ的向量σ中的第 个元素,σ表示由Φ个高斯分布的混合系数构成的向量,p(σ)表示σ的先验概率, 是狄利克雷分布, 为p(σ)的参数, 是一个长度为Φ的向量, β0为 中的元素, 为p(σ)的归一化常数,p(μ|τ)表示τ已知的条件下μ的概率,‑1
表示变量μ服从均值为μ0、方差为(γ0τ) 的高斯分布的概率密度函数, 表示高斯分布,μ0和γ0均为超参数,p(τ)表示τ的先验概率,p(τ)=Gam(τ|a0,b0),Gam(τ|a0,b0)表示τ服从参数为a0和b0的Gamma分布,a0和b0均为超参数;
步骤5_8:根据变分贝叶斯推断算法,用q()表示变分分布,将隐藏变量矩阵Z、参数σ、参数μ和参数τ的变分分布记为q(Z,σ,μ,τ),q(Z,σ,μ,τ)=q(Z)q(σ)q(μ,τ);其中,q(Z)表示隐藏变量矩阵Z的变分分布, 是多项式分布,exp()表示以自然基数e为底的指数函数,ln()表示以自然基数e为底的对数函数,符号“||”为取模操作符号,根据 计算得到,q(σ)表示参数σ的变分分布, 是狄利克雷分布, 为q(σ)的参数, 是一个长度为Φ的向量, β'为 中的元素, 为q(σ)的归一化常数, q(μ,τ)表示参数μ和参数τ的变分分布,μ'、γ'、a'和b'均为超参数,且a'=a0+Φ,
表示变量μ服从均值为μ'、方差为‑1
(γ'τ) 的高斯分布的概率密度函数,Gam(τ|a',b')表示τ服从参数为a'和b'的Gamma分布,E(ln(τ))=ψ(a')‑ψ(b'),ψ()为digamma函数,
*
Re()表示求复数的实部数值,() 表示复数的共轭;
步骤5_9:令t'表示内循环的迭代次数,t'的初始化值为1;
(t')
步骤5_10:计算在第t'次迭代下β'的值,记为β' , 并计算在第t'(t')
次迭代下γ'的值,记为γ' , 计算在第t'次迭代下μ'的值,(t')
记为μ' , 计算在第t'次迭代下a'的值,记(t') (t' (t')
为a' ,a' )=a0+Φ;计算在第t'次迭代下b'的值,记为b' ,其中,β0的初始化值大于Φ,当t'=1且 时 等于0.5,当t'=1且 时 等于 当t'>1时 表示在第t'‑1次迭代下 的值,γ0的初始化值大于或等于1000,μ0的初始化值大于或等于1,a0的初始化值大于或等于100,b0的初始化值大于0且小于或等于1;
步骤5_11:计算在第t'次迭代下 的值,记为 其中,根据 的计算公式
计算得到;
步骤5_12:判断迭代次数t'是否达到内循环最大迭代次数tmax',若达到,则停止内循环(t') (t') (t')
的迭代过程,再执行步骤5_13;若没有达到,则令a0=a' ,b0=b' ,μ0=μ' ,γ0=γ(t') (t') (t')
' ,β0=β' ,t'=t'+1,然后返回步骤5_10继续执行;其中,tmax'≥2000,a0=a' ,b0=(t') (t') (t') (t')b' ,μ0=μ' ,γ0=γ' ,β0=β' ,t'=t'+1中的“=”均为赋值符号;
步骤5_13:判断迭代次数t是否达到外循环最大迭代次数tmax,若达到,则停止外循环的迭代过程,再执行步骤6;若没有达到,则得到矩阵 中的第η行第 列元素为然后令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列的值,再返回步骤5_2继续执行;其中,tmax≥10, 表示在第tmax'次迭代下 的值,均为引入的中间向量,符号“||”为取模操作符号,t=t+1中的符号“=”为赋值符号;
步骤6:得到矩阵 中的第η行第 列元素为 提取出 的每行中的最大值及最大值所在列的列序号,将L个最大值所在列的列序号按最大值所在行的行序号的顺序排列构成维数为L×1的列向量,记为将 重新表示成维数为K×J的矩阵 的第1列向量为 的第2列向量为的第J列向量为 中的第k行第j列元素为若 则认为第k个用户在第j个时隙上不活跃,且多用户检测结果为0;若 则认为第k个用户在第j个时隙上活跃,且多用户检测结果为Δ'中的第 个数;其中, 表示在第tmax'次迭代下 的值, 对应表示 的第1行中的最大值所在列的列序号、……、 的第K行中的最大值所在列的列序号、 的第K+1行中的最大值所在列的列序号、……、 的第2K行中的最大值所在列的列序号、……、的第K×(J‑1)+1行中的最大值所在列的列序号、……、 的第L行中的最大值所在列的列序号, 的值为1至Φ中的正整数,