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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。