首页 > 其他分享 >DVB-S学习记录之信道编码

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

时间:2024-02-07 22:24:18浏览次数:28  
标签:编码 字节 记录 TS DVB cdots 信道编码 mathrm vdots

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

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

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

扰码

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

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

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

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

原理

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

202312082040856.png

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

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

P(X) = 1 + _X_14 + _X_15

其扰码过程如图所示:

202312082046715.png

扰码输出如下图所示:

202312082047800.png

R-S编码

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

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

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

R-S码字结构

202312091940295.png

编码原理

对于定义在_GF_(2_m_)的RS(n,k)码,n = 2_m_ − 1
,生成多项式取

$$
g(x)=\prod_{i=1}{i=n-k}(x+\alpha)=
x{2t}+g_{2t-1}x+\cdots+g_{2}x^{2}+g_{1}x+g_{0}
$$

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

g(x)的系数属于_GF_(2_m_)
,生成矩阵 G 可表示为:

$$
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阶单位矩阵 $ I $
和 $k*(n-k) $ 阶的矩阵 $ A $ 组成 ,满足 $$
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 = U ⋅ _G_1 = [U|U_⋅_A] = [U|R]

其中矩阵 $ R $ 有_n_ − _k_个监督符号,多项式表示为

r(x) = rn − k − 1_xn_ − k − 1 + ⋯ + _r_2_x_2 + r_1_x + _r_0

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

c(x) = u(x)xn − k + r(x)

DVB-S使用的R-S生成多项式为 $$
G(X)=\overset{15}{\operatorname*{\coprod}}(X+\lambda^i)
$$

其中 $ =02H $ ,为本原元,域生成多项式为 P(X) = _X_8 + _X_4 + _X_3 + _X_2 + 1
最小码距为17字节

将_G_(x)展开可得
$$
g(x)=x{16}+59x+13x{14}+104x+189x{12}\+68x+209x{10}+30x+8x{8}+163x+65x{6}\+41x+229x{4}+98x+50x^{2}+36x+59
$$ 假设信息多项式为 m(x) = _m_187_x_187 + _m_186_x_186 + ⋯ + _m_1_x_1 + _m_0
则使用_x_16 × m(x)/g(x)所得余式的16个系数即为生成的16个校验字节,将这16个字节添加到188个数据后就完成了R-S编码

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

202312091956671.png

image-20231209195625640

卷积交织

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

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

202312092118981.png

image-20231209211827932

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

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

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

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 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72
73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94 95 96
97 98 99 100 101 102 103 104 105 106 107 108
109 110 111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130 131 132
133 134 135 136 137 138 139 140 141 142 143 144
145 146 147 148 149 150 151 152 153 154 155 156
157 158 159 160 161 162 163 164 165 166 167 168
169 170 171 172 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189 190 191 192
193 194 195 196 197 198 199 200 201 202 203 204
205 206 207 208 209 210 211 212 213 214 215 216
217 218 219 220 221 222 223 224 225 226 227 228

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

1 0 0 0 0 0 0 0 0 0 0 0
13 0 0 0 0 0 0 0 0 0 0 0
25 0 0 0 0 0 0 0 0 0 0 0
37 0 0 0 0 0 0 0 0 0 0 0
49 0 0 0 0 0 0 0 0 0 0 0
61 0 0 0 0 0 0 0 0 0 0 0
73 0 0 0 0 0 0 0 0 0 0 0
85 0 0 0 0 0 0 0 0 0 0 0
97 0 0 0 0 0 0 0 0 0 0 0
109 0 0 0 0 0 0 0 0 0 0 0
121 0 0 0 0 0 0 0 0 0 0 0
133 0 0 0 0 0 0 0 0 0 0 0
145 0 0 0 0 0 0 0 0 0 0 0
157 0 0 0 0 0 0 0 0 0 0 0
169 0 0 0 0 0 0 0 0 0 0 0
181 0 0 0 0 0 0 0 0 0 0 0
193 0 0 0 0 0 0 0 0 0 0 0
205 2 0 0 0 0 0 0 0 0 0 0
217 14 0 0 0 0 0 0 0 0 0 0

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

卷积编码

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

202312092118943.png

image-20231209211850906

中间的方框代表一个7位的移位寄存器,两个输出X、Y的生成多项式分别为
$$
\begin{aligned}G_1&=1+X+X2+X3+X6\\G_2&=1+X2+X3+X5+X^6\end{aligned}
$$
该系统每个clk输入1bit信息,有两个模2加法器输出2bit信息,且输出的信息和移位寄存器内的当前信息和前6个信息都有关系,因此常用(2,1,7)来表示该卷积码

QPSK

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

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

202312101121667.png

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系统中滚降系数_α_ = 0.35

下图为QPSK调制框图:

202312101127496.png

image-20231210112752444

标签:编码,字节,记录,TS,DVB,cdots,信道编码,mathrm,vdots
From: https://www.cnblogs.com/sawen/p/18011381

相关文章

  • linux系统自动记录登陆用户的操作命令
    ViewCode#--------------------trace_login---------------------------------USER_IP=$(echo-e"`who-uami2>/dev/null|awk'{print$NF}'|sed-e's/[()]//g'`")IP=$(who-uami2>/dev/null|awk'{print$NF}'|......
  • 【随手记录】harbor部署在国产arm服务器报错 502 Bad Gateway
    在国产arm服务器KyLinV11操作系统部署harbor仓库时候遇到502BadGateway 问题问题:502BadGatewaydockerlogin--username=xx--password=xxx10.23.5.10:18023WARNING!Using--passwordviatheCLIisinsecure.Use--password-stdin.Errorresponsefromdaemon:lo......
  • JOISC 2019 记录
    Day1T1Examination三维数点板子题,直接cdq分治+树状数组,时间复杂度\(O(n\log^2n)\)。Day1T2Meetings对于一个大小为\(n\)的树,我们可以在\(n-2\)的询问中得到某一条我们选定的链\((x,y)\)上的所有节点的集合\(S_0\),以及在断掉这条链之后,得到的若干连通块集合\(S_1,......
  • 记录一次Electron程序打包自定义安装包
    首先下载nsNiuNiu打包程序下面就是下载之后解压的文件夹内容,注明了主要文件/文件夹的用途将使用electron-builder打包的文件内容拷贝到FilesToInstall,也就是文件夹下面的内容拷贝过去修改.\SetupScripts\nim\nim_setup.nsi中的内容,这个文件是nsis的打包主文件,在其中设......
  • idea maven启动项目报错记录
    1.Failedtoexecutegoalorg.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy(default-cli)onprojecth更改项目配置中的commandline栏:tomcat7:run-Dmaven.tomcat.port=8087-fpom.xml2.tomcat-maven-plugin:1.1:run(default-cli)onprojectBidNXJC:Couldnots......
  • 目录遍历(建立目录树,记录目录属性)仅适用于小样本
    directory.h#pragmaonce#include<windows.h>#include<tchar.h>#include<stdio.h>#include<tchar.h>#include<string>#include<stack>#include<codecvt>#include<vector>#defineFILE_NOT_IN_NODE-1classDirTreeNode{p......
  • 2024年重启人生要做的100件事,记录待办清单并打卡完成
    新年伊始,很多人都怀揣着改变自己、追求更美好生活的期望,渴望在2024年做一些有意义的事情,为自己的人生注入新的活力。为了帮助大家更好地实现这些目标,小编整理了一份2024年重启人生要做的100件事待办清单,涵盖了健康美丽、自我提升、享受生活、诗与远方、奖励自己等五个方面。这些......
  • (python)做题记录||2024.2.4||题目是codewars的【 All Balanced Parentheses】
    题目链接:https://www.codewars.com/kata/5426d7a2c2c7784365000783/python我的解决方案:defbalanced_parens(n):#Yourcodehere!used_l=[Falseforiinrange(n)]used_r=[Falseforiinrange(n)]answers=[]defprocess(answer):iflen(a......
  • Erlang 学习之第四天 . 列表,文件,原子,映射,元组,记录
    Erlang列表列表属于数据类型里面的集合, 列表是用于存储数据项集合的结构。在Erlang中,列表是通过将值括在方括号[]中来创建的。实例:  start() ->    Lst1 = [1,2,3],    io:fwrite("~w~n",[Lst1]).输出结果是:[123]以下是列表的方法说明:all: ......
  • 理解日志基础:使用Python进行有效的日志记录
    源码分享https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tab=BB08J2日志记录是任何软件开发过程中的一个基本组成部分,尤其是在爬虫开发中。有效的日志记录策略可以帮助开发者监控爬虫的行为,诊断问题,以及追踪爬虫的性能。Python的logging模块提供了一套强大的日志记录工具,它可以帮助......