盲自适应多用户检测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、自适应滤波部分
用LMS 、RLS 和Kalmanz 算法对CDMA 系统进行盲多用户检测仿真。系统模型见课本第4.13节,并对算法的统计性能进行讨论。
1, 原理说明:
由于是要对DS-CDMA 系统进行盲多用户检测,所以,首先要了解DS-CDMA 系统。
DS-CDMA 全称为Direct Sequence —Code Division Multiple Access ,即直接序列码分多址。从原理上来说,DS-CDMA 是通过将携带信息的窄带信号与高速地址码信号相乘而获得的宽带扩频信号。收端需要用与发端同步的相同地址码信号去控制输入变频器的载频相位即可实现解扩。
下面讨论地址码的获取:
1)m 序列的生产;m 序列是最长线性反馈移位寄存器序列的简称。它是由带线性反馈的移位寄存器产生的周期最长的序列。对于一个n 级反馈移位寄存器来说,最多可以有n
2个状态,对于一个线性反馈移位寄存器来说,全“0”状态不会转入其他状态,所以线性移位寄存器的序列的最长周期为 12-n
。当n 级线性移位寄存器产生的序列{}i a 的周期为12-=n
T 时,称{}i a 为n 级m 序列。下
面图1.1给出一个4级线性反馈移位寄存器。设初始状态为{}{
}0,0,0,1,,,0123=a a a a 。
图1.1 m 序列的产生
2)gold 序列的生产;gold 序列是1967年R.Gold 在m 序列基础上提出并分析的一种特性较好的伪
随机序列,它是由两个码长相等、码时钟速率相同的m序列优选对通过模2相加而构成的。gold序列的生产两种方法一为级联m序列移位寄存器,一为并联m序列移位寄存器。在本仿真中采用级联序列移位寄存器的构成方式。
由于其他部分在课本第4.13节中有了具体的介绍,在这就不在累述。
2,程序说明:
multiuser_dectect.m和multiuser_dectect_D.m分别是主函数,其中multiuser_dectect.m为平稳高斯信道、用户不变的同步DCMA系统盲信道检测,multiuser_dectect_D.m为平稳高斯信道、用户变化的同步DCMA系统盲信道检测;m_sequence.m为m序列产生程序;gold_sequence.m为gold序列产生程序,它由没序列级联而成因此调用了m_sequence.m;Change_symbols.m为把符号[0 1]转化成[-1 1];Kalman_D.m和Kalman_S.m分别是Kalman算法的用户变化的同步DCMA系统盲信道检测和用户不变的同步DCMA系统盲信道检测,其主要区别在于接口上;LMS_D.m和LMS_S.m分别是LMS算法的用户变化的同步DCMA系统盲信道检测和用户不变的同步DCMA系统盲信道检测,其主要区别在于接口上;RLS_D.m和RLS_S.m 分别是RLS算法的用户变化的同步DCMA系统盲信道检测和用户不变的同步DCMA系统盲信道检测,其主要区别在于接口上。
函数接口介绍:
① [ sequence_out ] = Change_symbols( sequence_in )
作用:
把符号[0 1]转化成[-1 1];
输入:
sequence_in——输入要转化序列;
输出:
sequence_out——输出转化后的序列。
② [gold_seq] = gold_sequence(connections1,connections2)
作用:
gold序列产生;
输入:
connections1——输入产生第一个m序列的生成多项式;
connections2——输入产生第二个m序列的生成多项式;
输出:
gold_seq——输出gold序列
③ [m_seq] = m_sequence(connections);
作用:
m序列产生;
输入:
connections——输入产生m序列的生成多项式;
输出:
m_seq——输出m序列
④ [P1,P_i_n,y,correct,E_ex,KK,w] = Kalman_D(b,N,K,step,yN_step,S,SS,C_null,SNR,KK,w)
作用:
用户变化的同步DCMA系统盲信道检测的Kalman算法;
输入:
b——信息符号序列;
N——扩频增益;
K——用户数;
step——迭代次数;
yN_step——需要检测的信号;
S——K个用户的地址码;
SS——31个用户的地址码;
C_null——典范表示2的系数;
SNR——用户的信噪比;
KK——(一步)预测状态误差的相关矩阵;
w——状态变量。
输出:
P1——SIR的分子部分;
P_i_n——SIR的分母部分;
y——检测后的输出序列;
correct——与输入b比较那些是正确的;
E_ex——剩余输出能量;
KK——最后一次迭代的(一步)预测状态误差的相关矩阵;
w——最后一次迭代的状态变量。
⑤[P1,P_i_n,y,correct,E_ex] = Kalman_S(b,N,K,step,yN_step,S,SS,C_null,SNR) 作用:
用户不变的同步DCMA系统盲信道检测的Kalman算法;
输入:
b——信息符号序列;
N——扩频增益;
K——用户数;
step——迭代次数;
yN_step——需要检测的信号;
S——K个用户的地址码;
SS——31个用户的地址码;
C_null——典范表示2的系数;
SNR——用户的信噪比;
输出:
P1——SIR的分子部分;
P_i_n——SIR的分母部分;
y——检测后的输出序列;
correct——与输入b比较那些是正确的;
E_ex——剩余输出能量。
⑥[P1,P_i_n,y,correct,E_ex,x] = LMS_D(b,N,K,step,yN_step,S,SNR,x,mu)
作用:
用户变化的同步DCMA系统盲信道检测的LMS算法;
输入:
b——信息符号序列;
N——扩频增益;
K——用户数;
step——迭代次数;
yN_step——需要检测的信号;