第二章 CDMA基本原理
CDMA技术的基础是扩频通信。扩频:用来传输信息的信号带宽远远大于信息本身带宽的一种传输方式,频带的扩展由独立于信息的扩频码来实现,与所传信息数据无关,在接收端用同步接收实现解扩和数据恢复。如图2-1,我们可以知道CDMA系统的基本原理和TDMA、FDMA的区别。
inspect
图2-1 CDMA、TDMA、FDMA比较
扩频通信的理论基础就是著名的香农定理:
…………………………………………(1)
这个公式表明,在高斯信道中当传输系统的信号噪声功率比S/N下降时,可用增加系统传输带宽W的办法来保持信道容量C不变。对于任意给定的信号噪声功率比,可以用增大传输带宽来获得较低的信息差错率。正因为这个原因,扩频通信具有比较强的抗噪声干扰的能力。CDMA技术是以扩频通信为基础的载波调制和多址接入技术,所以如何实现扩频部分对于整个CDMA系统的实现有着重要的影响。
2.1 CDMA系统的关键技术
扩频技术是CDMA系统的基础,在扩频系统中,常使用伪随机码来扩展频谱,伪随机码的特性,如编码类型、长度、速度等在很大程度上决定了扩频系统的性能,如抗干扰能力、多址能力、码捕获时间。因此要实现扩频部分,关键就是如何选择一个比较好的方法来实现PN码产生器。
而实现PN码产生器的难点就是实现其同步,即在接收端进行解扩所用的PN码和接收到的信号在发送时所用的PN码是同步的,这是扩频技术中的难点。CDMA系统要求接收机的本地伪随机码与接收到的PN码在结构、频率和相位上完全一致,否则就不能正常接收所发送的信息,接收到的只是一片噪声。若实现了收发同步但不能保持同步,也无法准确可靠地
获取所发送的信息数据。因此,PN码序列的同步是CDMA通信扩频模块的关键技术。但是要真正成为一种商业应用的通信系统,还有很多技术问题需要解决,本文暂不做考虑。
所有CDMA类型都使用扩频过程增益来允许接受者部分衰减非期望信号。具有期望扩频码的信号和定时被接受,如果信号有好轻松不同的扩频码(或者相同扩频码但是不同的时间偏移)将被过程增益认为随机噪声衰减掉。这项操作的方法是给每一个站点分配一个扩频码或者芯片序列.这些芯片序列被表示成由+1和-1组成的序列。每个芯片序列和本身点乘得到+1,(和补码点乘得到-1),反之点乘不同的芯片序列得到0。
例如 如果 C1 = (-1,-1,-1,-1), C2 = (+1,-1,+1,-1) 那么
C1 . C1 = (-1,-1,-1,-1) . (-1,-1,-1,-1) = +1
C1 . -C1 = (-1,-1,-1,-1) . (+1,+1,+1,+1) = -1
C1 . C2 = (-1,-1,-1,-1) . (+1,-1,+1,-1) = 0
C1 . -C2 = (-1,-1,-1,-1) . (-1,+1,-1,+1) = 0
这种特性叫做正交性. 这些序列叫做 Walsh码可以从一个二进制 Walsh矩阵导出。当多个终端发送多个片码时,信号就会在空中叠加。例如芯片序列是(-1,-1,-1,-1)和(+1,-1,+1,-1),叠加后变成(0,-2,0,-2)。接受方只要计算发送信号到空中的终端目点值。例如(-1,-1,-1,-1) . (0,-2,0,-2) = +1。
TDMA和FDMA终端理论上可以过滤其他时隙或者频率通道的任意强信号。这在CDMA无法实现,它只能部分过滤干扰信号。如果任一或者全部噪声信号强于有用信号,则有用信号就被淹没了。这样在CDMA系统中就要求每个终端有一个近似合适的信号功率。在CDMA蜂窝网络中,基站使用一个快速闭环功率控制方案来紧密控制每一个移动终端的传输功率。
湖沥青
向前纠错(FEC)编码在任何一种CDMA方案中都是必须的,它用于减小信噪比的需求,从而使得信道最大限度的可靠。 CDMA较TDMA和FDMA的优势在于CDMA可用码字数量理论上是无限的。这就使得CDMA承载大容量负载是对每一个随机会话中产生一个相对小的流量,从而避免为个别通讯频繁的建立和拆除有限的时隙或者频率通道。CDMA发射端只是在有数据发出时占用信道,完成后就释放掉。
2.2 CDMA系统的基本结构
CDMA技术是以扩频通信为基础的载波调制和多址接入技术,所以如何实现扩频部分对于整个CDMA系统的实现有着重要的影响。下图是CDMA系统的基本原理图:
图2-2 CDMA系统的基本原理
妈的英语信号经信源编码后成为数字信号,经过纠错编码、卷积编码和交织等相关处理后送入调制器中,利用PN码发生器产生的高速PN码将数字信号变成码片,使得信号的传输带宽远大于信号本身的带宽以实现扩频通信,同时,为了使信号的传输与信道特性相匹配,必须用载波发生器产生的载波去调制扩频信号。使其频率变为适合信道传愉的射频频段,将数字
信号调制成模拟信号后通过放大器发射出去。在接收端,利用下变频器将射频信号还原成中频信号,采用与发射端相同的信号处理技术再将信号还原成原始信号,从而达到数据通信传输的目的。mapx
针对本课题所要求的CDMA发送端的设计,主要从以下几个方面去研究,数据处理模块、差分编码模块、PN码序列产生模块、扩频模块。其中数据处理模块主要是用来完成数据的串/并变换;差分编码模块主要用于对数据先进行差分编码;PN码序列产生模块是扩频通信模块中比较重要的模块,其具体的作用和功能我们将在具体实践中做具体研究和讨论;扩频模块是发射端的核心模块,主要用于完成数据的扩频。图2-3就是CDMA系统模块化以后的基本结构,其中虚线框内的部分就是CDMA数字基带发送部分,本课题我们主要就是完成下图中上半部分,此外,在此基础上将对接收部分做简单的介绍。图中发送端和接收端的Walsh码发生器和PN码发生器其实是同一个模块,它们的区别仅仅是延迟不同。
图2-3 CDMA系统模块化结构图
由上图可知,这个系统一共有两个模块组成——调制模块和解调模块。其中调制模块是信号发生器产生4路输入信号,经WALSH调制、PN扩频、基带求和与并/串变换成为1路信号,完成调制。而解调模块主要是将收到的1路信号首先进行串并转换,在取得同步的基础上进行PN解扩和WALSH解调从而恢复出4路信息。该系统框图就是我们所要实现的系统的基本结构,具体实现方法、步骤、以及原理分析及优化我将针对每个模块,在后面给予具体研究。
附录
一、SIMULINK仿真模型
二、MATLAB模型
clc,clear
%%
%我们使用四个用户的CDMA系统
coefficients=[1 0 1 0 0]; %5级左移m序列码发生器的反馈系数
mq=mries(coefficients); %生成31×31的m序列码矩阵
lucky是什么意思
walsh=[1 1 1 1;1 -1 1 -1;1 1 -1 -1;1 -1 -1 1]; %4阶WALSH矩阵
pn=mq(1:31); %PN码
%四个用户发出的信号,可以随便设定
ur0=[ 1,-1,-1,-1,-1,-1, 1, 1, 1,-1,-1, 1, 1,-1, 1,-1, 1,-1,-1,-1,-1,-1, 1, 1, 1,-1,-1, 1, 1,-1, 1,-1];%用户1,可以是随机信号
ur1=[-1,-1,-1,-1,-1, 1, 1,-1, 1,-1,-1, 1, 1, 1, 1,-1, 1,-1,-1, 1, 1,-1, 1, 1, 1,-1, 1, 1, 1,-1, 1,-1];%用户2,可以是随机信号
ur2=[ 1,-1,-1,-1, 1,-1, 1, 1, 1,-1,-1, 1, 1,-1, 1, 1, 1,-1, 1,-1,-1,-1, 1, 1, 1, 1,-1, 1, 1, 1,-1,-1];%用户3,可以是随机信号
ur3=[-1,-1, 1,-1,-1, 1, 1,-1, 1,-1,-1, 1, 1, 1, 1,-1, 1,-1,-1, 1,-1, 1, 1,-1, 1,-1,-1, 1, 1,-1, 1, 1];%用户4,可以是随机信号
%=======================================================
for t=1:length(ur0)
ur=[ur0(t),ur1(t),ur2(t),ur3(t)];%四个用户分别发送1,-1,1,1
for i=1:4%四用户信号和WALSH矩阵相乘
for j=1:4
walsh_ur(j,i)=ur(i)*walsh(i,j);
end
end
for i=1:4%变成串行信号
roam
walsh_ur2(4*i-3)=walsh_ur(i,1);
walsh_ur2(4*i-2)=walsh_ur(i,2);世界大学排名揭晓
walsh_ur2(4*i-1)=walsh_ur(i,3);
walsh_ur2(4*i-0)=walsh_ur(i,4);
end
for i=1:31
for j=1:16
walsh_ur3(i,j)=walsh_ur2(j);
end
end
for i=1:31
for j=1:16
pn_walsh_ur(i,j)=walsh_ur3(i,j)*pn(i);
rush
end
end
%并----串
for i=1:31
for j=1:16
pn_walsh_ur_c(i*j)=pn_walsh_ur(i,j);
end
end
%以上是信号调制过程
%==========================================================================
%一下是信号解调过程
%串----并
for i=1:31
怎么治疗痘印
for j=1:16
pn_walsh_ur_rec(i,j)=pn_walsh_ur_c(i*j);
end
end
%pn解扩
for i=1:31
for j=1:16
walsh_ur_rec(i,j)=pn_walsh_ur_rec(i,j)*pn(i);