Spreading and modulation in WCDMA

WCDMA

在 Universal Mobile Telecommunications System (UMTS) 中

UMTS Terrestrial Radio Access Frequency Division Duplex (UTRA-FDD)

也被称作 WCDMA

 

Spreading and modulation 由一个 correlation pool 来实现

 

Correlation pool 原理

Spreading and modulation in WCDMA

Chip, Symbol and Spreading factor

这个 Chip 和 Symbol 还有 Spreading factor (SF) 有关系

具体来说就是 一个单位信息 Symbol 由 SF 个 Chip 组成

而这个 SF 只可能是 2 的整数次幂 (2, 4, 8, 16, 32 …)

对于上边这个图来说 每一个 Chip 都是 一个 12 位的复数

其中 6 位实部 6 位虚部

 

OVSF  code

这个码是为了 区分传输设备和传输用户的

Orthogonal variable spreading factor (OVSF) 就是 Walsh code

一个OVSF code 的长度 和 SF 相等

具体的样子如下图所示

Spreading and modulation in WCDMA

如何得到 OVSF code 或者 说是 Walsh code?

用 MATLAB 中的 Hadamard(u) 可以直接得到 长度为 u x u 的 Hadamard matrix 

原理 (我自己想的), OC = OVSF code

Spreading and modulation in WCDMA

其中 BITWISE_NOT(OC) 是对 OC 的每一位取反

比如 OC = 1, 1, 1, 1 那么 BITWISE_NOT(OC) = –1, –1, –1, –1

再如果 Temp = 1, 1, 1, 1 那么 OC + Temp = 1, 1, 1, 1, 1, 1, 1, 1

 

假设 SF = 8 我们需要得到 第 X 个 OVSF code OC

OC = OC0, OC1, OC2, OC3, OC4, OC5, OC6, OC7

因为 X 只有 0-7 所以 可以用三位的二进制数表示

X = X[0], X[1], X[2] 其中 X[0]是最高位

首先 OC[0] 必然是 1

之后 如果 X[0] = 0 那么 OC[1] = 1

反之如果 X[0] = 1 那么 OC[1] = –1

之后 如果 X[1] = 0 那么 OC[2]OC[3] = OC[0]OC[1]

反之 如果 X[1] = 1 那么 OC[2]OC[3] = BITWISE_NOT(OC[0]OC[1])

之后 如果 X[2] = 0 那么 OC[4]OC[5]OC[6]OC[7] = OC[0]OC[1]OC[2]OC[3]

反之 如果 X[2] = 1 那么 OC[4]OC[5]OC[6]OC[7] = BITWISE_NOT(OC[0]OC[1]OC[2]OC[3])

 

总之就是 1 取反 0 复制

 

Scrambling code

这个码也是为了 区分传输设备和传输用户的

具体信息请看 3GPP上的标准

这个码是 38400 个 1位 复数

产生逻辑由俩个 25 位的 shift register 和若干 XOR 组成

一个 shift register 输出 实部 一个 shift register 输出 虚部

改变这两个 shift register的值 就可以改变得到 Srambling code

初始的时候 第二个 shift register 的值全设为 1

通过 第一个 shift register 来控制 Scrambling code 的产生

对于每一个用户来说都有 一个 OVSF code 和一个 Scrambling code

这两个码来区分用户与用户 这也是 Code division multiple access (CDMA) 名字的由来

 

User

假设我们有 3个用户 如下图所示

Spreading and modulation in WCDMA

对于每一个用户 起始时间 也就是 读 buffer 的 start address

由于进入buffer的 chip 是以 4x chip rate 进入的

所以 读取buffer的时候 要每 4 个 chip 读一个

比如 起始地址是 5

那么第一个 chip 的位置是 5

第二个 chip 的 位置是 9

buffer 的大小 由用户的最大延迟来决定

 

User, OVSF code and Scrambling code

从内个 3GPP上的标准 来看 对于 radio access network 来说

SF = 256, OVSF code length = 256, Scrambling code length = 38400

对于每一个用户来说 都会被分配一个 OVSF code OC 以及一个 Scrambling code SC

i = [0, 256]

Result = ΣChip[i] * (OC[i] XOR SC[i])

Scrambling code length = 38400 也就是说 Result 有 150个

这个也是标准 就不说为什么了

转载于:https://www.cnblogs.com/zcold/archive/2011/02/24/1964255.html