加扰与解扰

今天来谈谈通信基带设计中的加扰和解扰。

为什么加扰

在通信中通常是要保证数据序列的随机性, 若存在长时间的连0 或者连1, 就有可能丢失同步信息,或者是导致均衡器不收敛, 性能劣化。

实现的方式主要是采用伪随机序列和信息bit进行异或操作。

matlab 实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
scr_input=[80 255 16 9 48 255 80 0 25 0 145] 

s=20255; %Initialization of scrambler circuit
rand_data=zeros(size(scr_input));

for j=1:size(Scrambler_input,2);
for i=1:8
msb=bitxor(bitget(s,1),bitget(s,2));
s=bitshift(s,-1);
s=bitset(s,15,msb);
t=bitxor(bitget(scr_input(j),9-i),msb);
rand_data(j)=bitset(rand_data(j),9-i,t);
end
end
scrambler_out=rand_data


s=20255; %Initialization of de-scrambler circuit
descrambler_in=zeros(size(scrambler_out));
for j=1:size(scrambler_out,2);
for i=1:8
msb=bitxor(bitget(s,1),bitget(s,2));
s=bitshift(s,-1);
s=bitset(s,15,msb);
t=bitxor(bitget(scrambler_out(j),9-i),msb);
descrambler_in(j)=bitset(descrambler_in(j),9-i,t);
end
end
descrambler_out=descrambler_in

输出结果为:

scr_input =

80   255    16     9    48   255    80     0    25     0   145

scrambler_out =

89   233    38   125   133   196   238   153   158    85   130

descrambler_out =

80   255    16     9    48   255    80     0    25     0   145