banner
Moerjie

Moerjie

hello world

DVB-S学习记录-信道编码

经过信源编码和系统复接后生成的节目传送码流,通常需要通过某种传输媒 介才能到达用户接收机。通常情况下,编码码流并不能直接通过信道传输,必须经过信道编码后,使其变成适合在信道中传输的形式后再进行传输。

DVB-S 的信道编码主要包括

  • 扰码
  • R-S 编码
  • 卷积交织
  • 卷积编码

扰码#

数字通信理论在设计通信系统时都是假设传输比特流中 0 和 1 的出现概率是等概的,实际中的通信系统的设计指标等首先也是以该假设为前提的。

但是 TS(transport stream)码流经过编码后可能会出现连 0 或连 1 的情况,一方面破坏了系统设计的前提,另一方面连 0 或连 1 会使得比特时钟的提取变得困难,因此,为保证在任何情况下进入 DVB 传输系统的数据码流中 "0" 与 "1" 的概率都能基本相等,系统引入一个伪随机序列对 TS 码流进行 == 扰乱处理 ==,使得 0 和 1 的出现概率接近 50%。

扰乱改变了原 TS 码流,因此在接收端对传输码流纠错解码后,还需 按逆过程对其进行解扰处理,以恢复原 TS 码流。

在接收端对接收到的码流逆编码后,就可以恢复原 TS 码流

原理#

传送复用器输出的 TS 流帧结构如图所示:

image-20231208204057822

第一个字节为同步字节,数值为 47H。每 8 个包组成一个超帧,并将第一个包的同步字节反转,变为 B8H,后面的 7 个包的同步字节不变。同步字节不参与扰码,其余字节参与扰码

伪随机二进制序列(PRBS)生成器的多项式应为:

P(X)=1+X14+X15P(X)=1+X^{14}+X^{15}

其扰码过程如图所示:

image-20231208204647672

扰码输出如下图所示:

image-20231208204732769

R-S 编码#

DVB-S 中使用的外层纠错编码为 R-S(204,188)码,编码效率 $ R_c=\frac {188}{204}=0.92 $ , 码字长度为 8。

每个 TS 包独立进行 R-S 编码保护,生成一个 R-S 码字,R-S 同步头就采用 TS 的包头,如此设计有以下好处:

  1. 当某个 R-S 码字在接 收端解码时出现无法纠正的错误时,误码集中在一个 TS 包中,不会影响到其它的 TS 包,便于分接器进行差错指示
  2. 便于分接器提取 TS 包的同步,简化了 TS 包同步提取系统结构

R-S 码字结构#

image

编码原理#

对于定义在 $GF (2^m)$ 的 RS (n,k) 码,$n=2^m-1$ ,生成多项式取

g(x)=i=1i=nk(x+αi)=x2t+g2t1x2t1++g2x2+g1x+g0g(x)=\prod_{i=1}^{i=n-k}(x+\alpha^{i})= x^{2t}+g_{2t-1}x^{2t-1}+\cdots+g_{2}x^{2}+g_{1}x+g_{0}

记 $ n-k=2t $ ,纠错能力为 $t$,就是说如果编码后的一组数据里面出现了错误的数据个数不大于 t,那么可以通过 n-k 个监督数据达到对错误数据纠正的目的

$g (x)$ 的系数属于 $GF (2^m)$ , 生成矩阵 G 可表示为:

G=[g2tg2t1g1g0000g2tg2g1g0000g2tg2t1g2t2g0]G=\begin{bmatrix}\mathrm{g_{2t}}&\mathrm{g_{2t-1}}&\cdots&\mathrm{g_{1}}&\mathrm{g_{0}}&0&\cdots&0\\0&\mathrm{g_{2t}}&\cdots&\mathrm{g_{2}}&\mathrm{g_{1}}&\mathrm{g_{0}}&\cdots&0\\\vdots&\vdots&\ddots&\vdots&\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\mathrm{g_{2t}}&\mathrm{g_{2t-1} }&\mathrm{g_{2t-2}}&\cdots&\mathrm{g_{0} }\end{bmatrix}

对矩阵 G 进行变换得到与其等价的矩阵 G_1 ,该矩阵由 k 阶单位矩阵 $ \bold I $ 和 $k*(n-k) $ 阶的矩阵 $ \bold A $ 组成 ,满足

G1=[IA]=[100a1,1a1,2a1,nk010a2,1a2,2a2,nk001ak,1gk,2ak,nk]G_1=[I|A]=\begin{bmatrix}1&0&\cdots&0&a_{1,1}&a_{1,2}&\cdots&a_{1,n-k}\\0&1&\cdots&0&a_{2,1}&a_{2,2}&\cdots&a_{2,n-k}\\\vdots&\vdots&\ddots&\vdots&\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1&a_{k,1}&g_{k,2}&\cdots&a_{k,n-k}\end{bmatrix}

编码结果可以表示为

C=UG1=[UUA]=[UR]C=U\cdot G_1=[U|U\cdot A]=[U|R]

其中矩阵 $ \bold R $ 有 $n-k$ 个监督符号,多项式表示为

r(x)=rnk1xnk1++r2x2+r1x+r0r(x)=r_{n-k-1}x^{n-k-1}+\cdots+r_2x^2+r_1x+r_0

因此经过 R-S 编码后的码多项式为

c(x)=u(x)xnk+r(x)c(x)=u(x)x^{n-k}+r(x)

DVB-S 使用的 R-S 生成多项式为

G(X)=15(X+λi)G(X)=\overset{15}{\operatorname*{\coprod}}(X+\lambda^i)

其中 $ \lambda =02H $ ,为本原元,域生成多项式为

P(X)=X8+X4+X3+X2+1P(X)=X^8+X^4+X^3+X^2+1

最小码距为 17 字节

将 $G (x)$ 展开可得

g(x)=x16+59x15+13x14+104x13+189x12+68x11+209x10+30x9+8x8+163x7+65x6+41x5+229x4+98x3+50x2+36x+59g(x)=x^{16}+59x^{15}+13x^{14}+104x^{13}+189x^{12}\\+68x^{11}+209x^{10}+30x^{9}+8x^{8}+163x^{7}+65x^{6}\\+41x^{5}+229x^{4}+98x^{3}+50x^{2}+36x+59

假设信息多项式为

m(x)=m187x187+m186x186++m1x1+m0m(x)=m_{187}x^{187}+m_{186}x^{186}+\cdots+m_{1}x^{1}+m_{0}

则使用 $x^{16}\times m (x) /g (x)$ 所得余式的 16 个系数即为生成的 16 个校验字节,将这 16 个字节添加到 188 个数据后就完成了 R-S 编码

R-S (204,188,T=8) 码帧结构#

image-20231209195625640

卷积交织#

在编码后加上卷积交织,使得数据的传送顺序按照一定的规律分散开,这样可以使信道中突发性干扰造成的错误字符也被分散开来。

DVB-S 中交织采用卷积交织的方式,其交织深度为 204/17=12 ,下图为交织和解码的原理图

image-20231209211827932

它由 FIFO 组成,数据按行写入寄存器,按列读出。

交织过程如下:R-S 编码码字向第 0 到第 11 支路依次循环输入数据,每条支路每次输入一个字节,交织后的数据按相同的顺序从各支路中输出,每条支路每次输出一个字节。R-S 码字的同步头永远从第 0 支路,即无延时支路传送。这样交 织后的数据流依然保持了 R-S 码字的同步和长度

假设输入的数据为从小到大的自然数,输入的数据如下

123456789101112
131415161718192021222324
252627282930313233343536
373839404142434445464748
495051525354555657585960
616263646566676869707172
737475767778798081828384
858687888990919293949596
979899100101102103104105106107108
109110111112113114115116117118119120
121122123124125126127128129130131132
133134135136137138139140141142143144
145146147148149150151152153154155156
157158159160161162163164165166167168
169170171172173174175176177178179180
181182183184185186187188189190191192
193194195196197198199200201202203204
205206207208209210211212213214215216
217218219220221222223224225226227228

经过交织模块后可以得到如下输出:

100000000000
1300000000000
2500000000000
3700000000000
4900000000000
6100000000000
7300000000000
8500000000000
9700000000000
10900000000000
12100000000000
13300000000000
14500000000000
15700000000000
16900000000000
18100000000000
19300000000000
20520000000000
217140000000000

因此,在卷积交织的输出序列中,同一个误码包的任意两个字节的最小距离为 12 字节,所以,R-S (204,188,T=8) 编码加上卷积交织后纠错的最大字节长度为 $ 8\times12=96 $ ,大大提高系统的纠错能力。

卷积编码#

DVB-S 的内码编码采用收缩卷积编码,系统框图如下

image-20231209211850906

中间的方框代表一个 7 位的移位寄存器,两个输出 X、Y 的生成多项式分别为

G1=1+X+X2+X3+X6G2=1+X2+X3+X5+X6\begin{aligned}G_1&=1+X+X^2+X^3+X^6\\\\G_2&=1+X^2+X^3+X^5+X^6\end{aligned}

该系统每个 clk 输入 1bit 信息,有两个模 2 加法器输出 2bit 信息,且输出的信息和移位寄存器内的当前信息和前 6 个信息都有关系,因此常用 (2,1,7) 来表示该卷积码

QPSK#

数字信号理论频谱带宽无限宽,要想无失真的传输数字信号,要在无限带宽信道中传输,而卫星系统的信道是带限信道,因此需要对卷积编码模块输出的信号进行成型滤波,使其与卫星信道匹配。

基带成型滤波器一方面要降低传输中需要的带宽,另一方面使码间串扰降至最低。理论上来说,如果随机数字码元流的重复周期为 Ts,只要通过带宽为 π/Ts 的理想滤 波器后,在 $nTs$ 时刻抽样,无码间干扰。由于理想 LPF 难以实现,因此选用升余弦滚降滤波器,传输函数为

image-20231210112143612

的升余弦滚降滤波器满足要求

$f_N=\frac {1}{2T_s}=\frac {R_s}{2}$ 为奈奎斯特频率

传输带宽 $B_r=\frac {1=\alpha}{2T_s} Hz$

频带利用率 $\eta=\frac {R_s}{B_r}=\frac {2}{1+\alpha} bit/Hz$

在 DVB-S 系统中滚降系数 $\alpha=0.35$

下图为 QPSK 调制框图:

image-20231210112752444

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。