DVB-S系统仿真学习

DVB-S系统用于卫星电视信号传输,发送端框图如下所示

1711536126647.png

扰码

实际数字通信中,载荷数据的码元会出现长连0或长连1的情况,不利于接收端提取时钟信号,同时会使得数据流中含有大量的低频分量,使得QPSK调制器的相位长时间不变,使得信号易受干扰。因此要对载荷数据进行随机化扰码处理

DVB-S标准中规定扰码的生成多项式为

p ( x ) = x 15 + x 14 + 1 p(x)=x^{15}+x^{14}+1 p(x)=x15+x14+1

同时移位寄存器的初始状态为"1001_0101_0000_000”

1711536797434.png

Matlab代码仿真

n=500;
% origin_data=randi([0 1],n,1);
origin_cnt_1=nnz(origin_data==1)scrambling = comm.Scrambler("CalculationBase",2,"InitialConditions",[1 0 0 1 0 1 0 1 0 0 0 0 0 0 0], ..."Polynomial",[1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1]);
scrambling_data=step(scrambling,origin_data);
scrambling_data_cnt_1=nnz(scrambling_data==1)

运行结果如下图所示

1711536855542.png

可以看出初始的500点长度的数据包中有403个“1”,经过扰码处理后“1”的个数接近数据总量的一半

外码纠错编码(RS编码)

RS码定义:

G F ( q ) 上( q ≠ 2 , 通常 q = 2 m ),码长 n = q − 1 的本原 B C H 码 GF(q)上(q \neq 2, 通常q=2^m),码长n=q-1的本原BCH码 GF(q)上(q=2,通常q=2m),码长n=q1的本原BCH

能纠正 t 个错误的RS码的参数为

- 分组长度n=q-1
- 校验符号数n-k=2t
- 码的最小距离dmin=2t+1

DVB-S系统中使用的RS(188,204)是由RS(239,255)截断而来的,可以纠正8个字节的错误

Matlab仿真

m=8; %bit per symbol
n=204;
k=188;data_test=randi([0,n],1,k);
data_gf=gf(data_test,m);data_rs_enc=rsenc(data_gf,n,k);
data_enc=data_rs_enc.x;data_rs_dec=rsdec(data_rs_enc,n,k);
data_dec=data_rs_dec.x;subplot(3,1,1);
stem(data_test);
subplot(3,1,2);
stem(data_enc);
subplot(3,1,3);
stem(data_dec);

首先生成一个长度为188的序列,将其转换到伽罗华域后,使用rsenc函数进行RS编码,再进行译码,根据对比可以看出译码后的比特和译码前的完全一样

1711538853533.png

卷积交织

在实际的传输过程中,由于脉冲干扰、多径效应等因素会带来持续一定时间的突发错误,虽然RS码对突发错误有较好的纠错能力,但是当其持续时间较长时,就会超出RS码的纠错能力,因此在编码过程中引入了卷积交织,将数据的传输顺序按照一定的规律分散开,就可以使得错误的码元也被分散开

DVB-S中交织深度为12,总共17个FIFO,数据按行写入寄存器,按列读出

交织后最大可纠错长度为12*8=96

1711539867512.png

可以看出前一段时间读取到了很多0,说明下面的移位寄存器中的数据还没有移动到末端

卷积编码

卷积码是一种有效的前向纠错码记作 ( n , k , m ) (n,k,m) (n,k,m),将k个信息比特编为n个比特,m为编码存储长度,N=m+1为约束长度,即卷积码的当前码元不仅与当前输入的k的信息码元有关,还与前面m个时刻输入的信息码元有关

clc;
close all;
n=500;
tre1=[1 1 1 1 0 0 1]; %oct 171
tre2=[1 0 1 1 0 1 1]; %oct 133trellis = poly2trellis(7,[171 133]);convData=convenc(scrambling_data,trellis);decData=vitdec(convData,trellis,499,"trunc","hard");subplot(3,1,1);
stem(scrambling_data);
subplot(3,1,2);
stem(convData);
subplot(3,1,3);
stem(decData);
biterr(scrambling_data,decData)

使用poly2trellis将卷积编码多项式转换为网格描述

1711541868504.png

比对后可以看到解码出的数据和原数据完全相同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/289526.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国国际通信大会2024|中国通信展览会|通信展览会

中国国际通信大会2024|中国通信展览会|通信展览会 中国国际信息通信展览会(ICT展)是亚太地区最具影响力的信息通信技术盛会之一。每年一度的ICT展汇聚了来自全球各行各业的专业人士,为各领域的科技公司、创新企业以及技术爱好者们提供一个难得…

数据结构学习——无头+单向+非循环链表增删查改实现

链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 注意: 链式结构在逻辑上是连续的,但是在物理上不一定连续在链表实现过程中,结点一…

轻松赚钱,精彩生活:上班族副业赚钱新攻略大揭秘!

薪水总是捉襟见肘,每月账单总让人倍感压力。你是否曾在静谧的夜晚,躺在床上,思索如何为家庭多赚一分钱?其实,你并不孤单。在这个充满机遇与挑战的时代,越来越多的人开始寻找副业,以期望让生活更…

使用easyYapi生成文档

easyYapi生成文档 背景1.安装配置1.1 介绍1.2 安装1.3 配置1.3.1 Export Postman1.3.2 Export Yapi1.3.3 Export Markdown1.3.4 Export Api1.3.6 常见问题补充 2. java注释规范2.1 接口注释规范2.2 出入参注释规范 3. 特定化支持3.1 必填校验3.2 忽略导出3.3 返回不一致3.4 设置…

PL/SQL的词法单元

目录 字符集 标识符 分隔符 注释 oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 PL/SQL块中的每一条语句都必须以分号结束。 一个SQL语句可以跨多行,但分号表示该语句的结束:一行中也可以有多条 SQL语句&…

spring boot3自定义注解+拦截器+Redis实现高并发接口限流

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义限流注解 2.编写限流拦截器 3.注册拦截器 4.接口限流测试 写在前…

2024最新Win系统下VSCode下载安装与配置C/C++教程

2024最新Win系统下VSCode下载安装与配置C/C教程 文章目录 2024最新Win系统下VSCode下载安装与配置C/C教程1、下载安装VSCode2、安装运行时环境GCGC的环境配置 3、安装VSCode插件4、配置程序调试环境4.1确定文件存储路径4.2新建文件夹【.vscode】4.3在.vscode文件夹里新建四个配…

yarn按包的时候报错 ../../../package.json: No license field

运行 yarn config list 然后运行 yarn config set strict-ssl false 之后yarn就成功了

Canal配置

注:开发环境服务器:172.16.8.35 用develop用户登录。 进入canal安装目录:cd /home/devops/canal/deployer/conf 复制dst_vehicle目录,重命名为自己服务的数据库名 cp -r dst_vehicle/ dst_bill 进入dst_bill目录,删…

docker网段冲突导致主机连接不上

前提:windows电脑链接liunx服务器,liunx服务器里面起了docker。 场景:在liunx服务器里面,用docker-compose up -d启动容器过程中,终止了windows服务器连接liunx服务器 可能原因:1.docker自身的网卡网段与连…

Ubuntu20.04更换镜像源------最简单的教程

本教程适用于:Ubuntu22.04 操作流程 打开终端,运行以下命令: sudo sed -i "shttp://.*archive.ubuntu.comhttps://mirrors.tuna.tsinghua.edu.cng" /etc/apt/sources.list 运行后即完成更改。 如果找不到22.04的镜像&#xff…

机器学习——元学习

元学习(Meta Learning)是一种机器学习方法,旨在使模型能够学习如何学习。它涉及到在学习过程中自动化地学习和优化学习算法或模型的能力。元学习的目标是使模型能够从有限的训练样本中快速适应新任务或新环境。 在传统的机器学习中&#xff…

ffmpeg实现媒体流解码

ffmpeg Version : 5.14 本期主要讲解怎么将MP4媒体流的视频解码为yuv,音频解码为pcm数据;在此之前我们要先了解解复用和复用的概念; 解复用:像mp4是由音频和视频组成的(其他内容流除外);将MP4的流拆分成视频流(h264或h265等)和音频流(AAC或mp3等); 复用:就是将音频…

QT控件之显示控件

Qt Designer显示窗口部件提供的面板中,提供了10种显示小部件 (1) Label标签 (2) Text Browser文本浏览器 (3) Graphics View图形视图 (4) Calendar Widget日历 &…

银行监管报送系统介绍(十二):非居民金融账户涉税信息报送

国家税务总局、财政部、中国人民银行、中国银行业监督管理委员会、中国证券监督管理委员会、国家金融监督管理总局2017年5月9日发布、2017年7月1日起施行的《非居民金融账户涉税信息尽职调查管理办法》。 一、《管理办法》出台的背景是什么?   受二十国集团&…

快速幂算法在Java中的应用

引言: 在计算机科学和算法领域中,快速幂算法是一种用于高效计算幂运算的技术。在实际编程中,特别是在处理大数幂运算时,快速幂算法能够显著提高计算效率。本文将介绍如何在Java中实现快速幂算法,并给出一些示例代码和应…

计算机组成原理 — 指令系统

指令系统 指令系统指令的概述指令的格式指令的字长取决于 操作数类型和操作种类操作数的类型数据在存储器中的存放方式操作类型 寻址方式指令寻址数据寻址立即寻址直接寻址隐含寻址间接寻址寄存器寻址寄存器间接寻址基址寻址变址寻址堆栈寻址 RISC 和 CISC 技术RISC 即精简指令…

工业无线网关在汽车制造企业的应用效果和价值-天拓四方

随着智能制造的快速发展,工业无线网关作为关键通信设备,在提升生产效率、优化生产流程、实现设备间的互联互通等方面发挥着越来越重要的作用。以下是一个关于工业无线网关在智能制造行业应用的具体案例,展示了其在实际生产中的应用效果和价值…

Linux系统使用Docker部署Portainer结合内网穿透实现远程管理容器和镜像

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

vue2高德地图选点

<template><el-dialog :title"!dataForm.id ? 新建 : isDetail ? 详情 : 编辑" :close-on-click-modal"false" :visible.sync"show" class"rv-dialog rv-dialog_center" lock-scroll width"74%" :before-close&q…