WCDMA 辅同步信号S_SCH介绍,MATLAB实现
本期主要介绍一下WCDMA辅同步信号S_SCH实现和映射,从公式生成开始介绍,最后用MATLAB实现,让大家了解对比一下3G时代辅同步信号和前面介绍的4G、5G和2G时代的辅同步信号共同点和不同点,不管在什么时候辅同步信号都要遵循一个码要正交,相关性要好的原则,其相关性应该是一代更比一代强,抗干扰性能也应该是一代更比一代强。
WCDMA系统辅同步信号S_SCH构成
wcdma系统一共定义了16个长度为256的辅助同步信号码
,这16个辅同步码不尽相同,且不同码之间要正交以便检测的时候去除模糊性,其中
k=0,2,...,15为16个码组的序号,i=0,1,...,14为时隙的序号。
辅同步码包含了码组号和帧头信息,所以检测完S_SCH一方面可以确定码组号,另一方面可以确定帧边界信息。
S_SCH序列由分层golay码和hardmard序列的乘积构成,如下:
B=<x0,x2,..,x7,-x8,-x10,..,-x15>
其中<x0,x1...x15>=<1 1 1 1 1 1 -1 -1 1 -1 1 -1 1 -1 -1 1>
z=<b,b,b,-b,b,b,-b,-b,b,-b,b,-b,-b,-b,-b,-b>
hardmard序列通过下式迭代后得到H8后再从中每隔16个选
其中从H8的第一行间隔16取,就可以取到我们需要的16个S_SCH码,第n行表示为
<hn(0),hn(1),hn(2),...,hn(255)>
S_SCH码Cs_sch,k可以表示为:
Cs_sch,k = (1+1i)*<hn(0)*z(0),hn(1)*z(1),hn(2)*z(2),...,hn(255)>
其中n可以表示为16*(k-1),也就是上面说的间隔16取数。
一个wcdma无线帧由15个时隙组成,15个时隙中的S_SCH码从16种Cs_sch,k按照3GPP协议选择相应的15个SSCH码,wcdma系统定义了64组绕码组,共有64种选择办法,怎么选,这64种办法是由64个向量表得来,这64个向量表都由循环移位唯一性,也就是说任意两个的移位组成的序列都不会相同,64个移位向量表如下:
S_SCH的映射:
如下图所示,S_SCH同PSCH一样占据每隔slot的前256个chip传输
MATLAB实现
clc,clear,close all;
%
%
% author 生产队的蠢驴
%
%coding time 2024.09.02
%
%
%
slot_per_frame = 15;
sample_per_slot = 2560;
ssch_group_seq = 1;
b = [1,1,1,1,1,1,-1,-1,-1,1,-1,1,-1,1,1,-1];
z = [b,b,b,-b,b,b,-b,-b,b,-b,b,-b,-b,-b,-b,-b];
group_table=[
1 1 2 8 9 10 15 8 10 16 2 7 15 7 16
1 1 5 16 7 3 14 16 3 10 5 12 14 12 10
1 2 1 15 5 5 12 16 6 11 2 16 11 15 12
1 2 3 1 8 6 5 2 5 8 4 4 6 3 7
1 2 16 6 6 11 15 5 12 1 15 12 16 11 2
1 3 4 7 4 1 5 5 3 6 2 8 7 6 8
1 4 11 3 4 10 9 2 11 2 10 12 12 9 3
1 5 6 6 14 9 10 2 13 9 2 5 14 1 13
1 6 10 10 4 11 7 13 16 11 13 6 4 1 16
1 6 13 2 14 2 6 5 5 13 10 9 1 14 10
1 7 8 5 7 2 4 3 8 3 2 6 6 4 5
1 7 10 9 16 7 9 15 1 8 16 8 15 2 2
1 8 12 9 9 4 13 16 5 1 13 5 12 4 8
1 8 14 10 14 1 15 15 8 5 11 4 10 5 4
1 9 2 15 15 16 10 7 8 1 10 8 2 16 9
1 9 15 6 16 2 13 14 10 11 7 4 5 12 3
1 10 9 11 15 7 6 4 16 5 2 12 13 3 14
1 11 14 4 13 2 9 10 12 16 8 5 3 15 6
1 12 12 13 14 7 2 8 14 2 1 13 11 8 11
1 12 15 5 4 14 3 16 7 8 6 2 10 11 13
1 15 4 3 7 6 10 13 12 5 14 16 8 2 11
1 16 3 12 11 9 13 5 8 2 14 7 4 10 15
2 2 5 10 16 11 3 10 11 8 5 13 3 13 8
2 2 12 3 15 5 8 3 5 14 12 9 8 9 14
2 3 6 16 12 16 3 13 13 6 7 9 2 12 7
2 3 8 2 9 15 14 3 14 9 5 5 15 8 12
2 4 7 9 5 4 9 11 2 14 5 14 11 16 16
2 4 13 12 12 7 15 10 5 2 15 5 13 7 4
2 5 9 9 3 12 8 14 15 12 14 5 3 2 15
2 5 11 7 2 11 9 4 16 7 16 9 14 14 4
2 6 2 13 3 3 12 9 7 16 6 9 16 13 12
2 6 9 7 7 16 13 3 12 2 13 12 9 16 6
2 7 12 15 2 12 4 10 13 15 13 4 5 5 10
2 7 14 16 5 9 2 9 16 11 11 5 7 4 14
2 8 5 12 5 2 14 14 8 15 3 9 12 15 9
2 9 13 4 2 13 8 11 6 4 6 8 15 15 11
2 10 3 2 13 16 8 10 8 13 11 11 16 3 5
2 11 15 3 11 6 14 10 15 10 6 7 7 14 3
2 16 4 5 16 14 7 11 4 11 14 9 9 7 5
3 3 4 6 11 12 13 6 12 14 4 5 13 5 14
3 3 6 5 16 9 15 5 9 10 6 4 15 4 10
3 4 5 14 4 6 12 13 5 13 6 11 11 12 14
3 4 9 16 10 4 16 15 3 5 10 5 15 6 6
3 4 16 10 5 10 4 9 9 16 15 6 3 5 15
3 5 12 11 14 5 11 13 3 6 14 6 13 4 4
3 6 4 10 6 5 9 15 4 15 5 16 16 9 10
3 7 8 8 16 11 12 4 15 11 4 7 16 3 15
3 7 16 11 4 15 3 15 11 12 12 4 7 8 16
3 8 7 15 4 8 15 12 3 16 4 16 12 11 11
3 8 15 4 16 4 8 7 7 15 12 11 3 16 12
3 10 10 15 16 5 4 6 16 4 3 15 9 6 9
3 13 11 5 4 12 4 11 6 6 5 3 14 13 12
3 14 7 9 14 10 13 8 7 8 10 4 4 13 9
5 5 8 14 16 13 6 14 13 7 8 15 6 15 7
5 6 11 7 10 8 5 8 7 12 12 10 6 9 11
5 6 13 8 13 5 7 7 6 16 14 15 8 16 15
5 7 9 10 7 11 6 12 9 12 11 8 8 6 10
5 9 6 8 10 9 8 12 5 11 10 11 12 7 7
5 10 10 12 8 11 9 7 8 9 5 12 6 7 6
5 10 12 6 5 12 8 9 7 6 7 8 11 11 9
5 13 15 15 14 8 6 7 16 8 7 13 14 5 16
9 10 13 10 11 15 15 9 16 12 14 13 16 14 11
9 11 12 15 12 9 13 13 11 14 10 16 15 14 16
9 12 10 15 13 14 9 14 15 11 11 13 12 16 10
];
% H8 hardmand矩阵生成
h_order_num = 8;
for n=0:h_order_num
if n == 0
H = 1;
else
H = kron(H,[1 1;1 -1]);
end
end
%间隔16取16个
Hk = H(1:16:end,:);
ssch = zeros(16,256);
代码未完。。。
完整的MATLAB实现请关注微信号订阅号:nb_lte_5g ,老牛nb5g老牛每天带你学通信同步更新
努力只能及格,拼命才能优秀。
想成功,先发疯,不顾一切往前冲。
学通信任道重远,老牛带你走最捷径的路.