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 原理
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 相等
具体的样子如下图所示
如何得到 OVSF code 或者 说是 Walsh code?
用 MATLAB 中的 Hadamard(u) 可以直接得到 长度为 u x u 的 Hadamard matrix
原理 (我自己想的), OC = OVSF code
其中 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个用户 如下图所示
对于每一个用户 起始时间 也就是 读 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