m基于matlab的信息传输系统包括卷积编码,QPSK调制解调以及维特比译码

news2025/7/10 0:15:51

目录

1.算法概述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法概述

        信息传输系统主要包括信号发送,信号传输模块,信号接收模块,其中信号发送包括信号的产生,信源的编码,信号的调制等模块,信号传输模块。主要设计了一个简单的信息传输系统,系统包括卷积编码,QPSK调制,信道传输,QPSK解调以及维特比译码。我们首先对系统做了简单的介绍,然后正对每个模块进行详细的理论分析,并利用MATLAB进行仿真与分析。得到了系统的误码率曲线和眼图变化图。最后我们以发送一个图像为例,来检测系统的性能。 整个系统的结构如下所示: 

       卷积编码的过程就是编码器状态沿着时间轴一级一级跳转的过程。维特比译码算法则是在网格图上搜索最可能的状态跳转路径的过程。维特比译码算法先读取t时刻的所有状态的幸存路径度量,再根据t+1时刻的输入,算出跳转路径的度量:根据这两类度量算出t+1时刻到状态S的所有路径的度量,比较选出一个具有较小路径度量的路径作为t+l时刻状态S的幸存路径。这样对每个状态都得到一个幸存路径,根据这些幸存路径和最终编码器所处的状态就可以得到编码器的状态转移路径即译码结果。维特比译码结果的可信度取决于幸存路径的深度和它的路径度量值。幸存路径越深、路径度量值越高,那么译出信息的可信度就越高。在译码过程中有些路径被抛弃了,有些路径被保留了下来。被以为是幸存路径的,也可能会在后面的搜索过程中被抛弃掉。这样随着搜索的深度不断加深,最终正确的路径将会被保留下来,所有的幸存路径都将收敛于一条路径。

       QPSK调制方法十分简单,调制器的基本工作过程是:输入的数字码序列经过数据预处理单元完成信号的信道编码,生成两路信号。这个序列再经过多级内插把序列采样速率提高到后面的复数乘法器的工作频率上,以便进行载频调制。使用多级内插滤波器的原因是可以通过调整内插因子,使系统支持的调制符号速率能在一定的范围内变化。

      QPSK接收机由一对共输入地相关器组成。这两个相关器分别提供本地产生地相干参考信号1(t)和2(t)。相关器接收信号x(t),相关器输出地x1和x2被用来与门限值0进行比较。如果x1>0,则判决同相信道地输出为符号1;如果x1<0 ,则判决同相信道的输出为符号0;类似地,如果正交通道也是如此判决输出。最后同相信道和正交信道输出这两个二进制数据序列被复加器合并,重新得到原始的二进制序列。

 

QPSK信号的表达式如式所示:

       其中T_s表示四进制符号的间隔,θ_i (i=1,2,3,4)为正弦载波的相位,有四种可能性信息。若θ_i=(i-1)*π/2,则θ_i为0,π/2,π,3π/2,此时初始相位为0的QPSK信号的矢量图如图(a)所示。

 

QPSK是目前最常用的一种卫星数字信号调制方式。

        优点:频谱利用率高、传输速率快、抗干扰能力强、频谱特性好等。

        在前面我们介绍了BPSK,它是用两个相位(0° 和 180°)来表示 0、1,而QPSK,我们可以将其看作是两个独立的BPSK,它是用四个相位(45°、135°、225°、315° )来表示数字信号(00、01、11、10)。

2.仿真效果预览

matlab2022a仿真

 

 

从误码率仿真结果可知,当SNR大于10db之后,误码率可以快速下降到10-3以下。

3.MATLAB部分代码预览

......................................
for i=1:Frame
        Information=(sign(randn(1,Number_symble))+1)/2;%产生随机信号作为测试信源       
        Information=[Information 0 0 0] ;              %为了满足仿真需要补三个0使其长度=length
        
        JuanJi_Information = JuanJi_Encode(Information,Length);  %卷积编码
         
        QPSKCode = QPSK_encode(JuanJi_Information, Length);      %QPSK调制
        
        a = 1:-0.1:0.1;
        p = 10*log10(a);
        
        error = zeros(10,10);
 
        for k = 1:length(p)
            Noise_add = wgn(1,2*Length,p(k));              
            Receive_information = QPSKCode + Noise_add; 
            
              DQPSKCode = QPSK_Decode(Receive_information, Length);         
              Decoder = Viterbi(DQPSKCode, Length);    
              
              error(i,k) = sum(abs(Decoder-Information));
        end
end
 
%眼图仿真
eyediagram(Information,2)
eyediagram(JuanJi_Information,2);
eyediagram(QPSKCode,2);
eyediagram(Receive_information,2);
eyediagram(DQPSKCode,2);
eyediagram(Decoder,2);
 
Number_error = zeros(1,10);
for i = 1:10
    for j = 1:100
        Number_error(i) = Number_error(i) + error(j,i);
    end
end
x = 1:10;
plot(x,Number_error./Number_symble,'r-*');
xlabel('Eb/N0')
ylabel('Pe')
grid on  
01-24M

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

24节气—小雪海报、文案分享。雨凝成雪,万物冬藏。

24节气小雪将至。农谚&#xff1a;“小雪雪满天&#xff0c;来年必丰年。”就是指小雪的时候落雪&#xff0c;雨水充沛&#xff0c;还能冻死地里的病菌和害虫&#xff0c;来年雨水必定均匀&#xff0c;是丰收年。 下面是给大家整理的小雪节气文案及海报&#xff0c;希望大家喜欢…

400Gbps 网络面临的挑战

关于 TCP 与 100Gbps 场景的细说&#xff0c;参见&#xff1a;单流 TCP 100Gbps 难题的直观解释 400Gbps 网络将又是一个 “硬件准备好了&#xff0c;可软件没跟上” 的场景。 把一条 TCP Flow 看作一个操作系统进程&#xff0c;多条 Flow 共享 10Gbps 带宽和多进程被同一个 C…

消息队列RabbitMQ的常见面试题目

&#x1f468;‍&#x1f4bb;个人主页&#xff1a; 才疏学浅的木子 &#x1f647;‍♂️ 本人也在学习阶段如若发现问题&#xff0c;请告知非常感谢 &#x1f647;‍♂️ &#x1f4d2; 本文来自专栏&#xff1a; 消息队列 ❤️ 支持我&#xff1a;&#x1f44d;点赞 &#x1…

【数据结构】栈

1.啥是栈 2.栈的使用 3.栈的自定义实现 4.划分栈&#xff0c;虚拟机栈&#xff0c;栈帧概念 &#xff08;1&#xff09;首先咱们来介绍一下什么是栈 Stack就是栈&#xff1a;栈是一种元素先进后出的一种数据结构 你可以把它想象成羽毛球筒&#xff0c;这是最直观的了&#xf…

坑爹,线上同步近 3w 个用户导致链路阻塞引入发的线上问题,你经历过吗?

分享一个印象深刻的线上问题&#xff0c;希望能够给 xdm 带来一点思考 一个稀松平常的工作日&#xff0c;正准备下班的时候&#xff0c;不巧&#xff0c;突发线上紧急问题&#xff0c;心中一万个不情愿&#xff0c;可还是要硬着头皮去定位问题 简单的表象为微服务之间 gRPC通…

打造高安全数字基础设施:中国电子云服务关键行业的宣言

11月18日&#xff0c;主题为“至信铸云守正创新”的2022中国电子云峰会在北京举行。中国电子云在会上发布了其服务关键行业的价值主张、分布式云战略&#xff0c;实测了仓海CeaStor分布式存储的性能。中国电子党组书记、董事长曾毅&#xff0c;中国工程院院士沈昌祥&#xff0c…

制作电子签名

每天一个PS/PR小技巧&#xff08;原理实践&#xff09; 每天一个PS/PR小技巧&#xff08;原理实践&#xff09;_Dezeming的博客-CSDN博客PS是由Adobe Systems开发和发行的图像处理软件。本文的特色在于快速上手和制作一些生活中会常用的功能&#xff0c;并且解释这些功能的具体…

DJYGUI系列文章四:GK文本显示

目录 1 GK文本显示概述 1.1 ansi系 1.2 unicode系 1.3 DJYGUI文本显示 2 字符集说明 3 字符集API说明 3.1 ModuleInstall_Charset&#xff1a;字符编码模块初始化 ​​​​​​​3.2Charset_NlsInstallCharset&#xff1a;安装字符编码 ​​​​​​​3.3 Charset_NlsG…

1527_AURIX_TriCore内核架构开篇与架构概述

全部学习汇总&#xff1a; GreyZhang/g_tricore_architecture: some learning note about tricore architecture. (github.com) 看文档的时候&#xff0c;引用了内核架构的内容。这方面我没有看过&#xff0c;除了ARM也没有什么内核算是较为认真的看过。纵然是ARM&#xff0c;看…

锐捷MSTP实验配置

目录 Vlan基础配置 多生成树配置 查看生成树信息 MSTP其它特性配置 边缘端口 生成树保护特性 生成树时间特性 Vlan基础配置 SW1、SW2配置Vlan vlan range 10,20,40 int g0/0 switchport mode trunk switchport trunk allowed vlan add 10,2…

图卷积神经网络 | Python实现基于GCN-GRU图卷积门控循环单元网络模型

图卷积神经网络 | Python实现基于GCN-GRU图卷积门控循环单元网络模型 目录 图卷积神经网络 | Python实现基于GCN-GRU图卷积门控循环单元网络模型效果分析基本描述模型结构程序实现参考资料效果分析 基本描述 GCN-GRU 模型是用于动态网络数据中动态不确定意见预测的端到端可训练…

Linux多线程编程

文章目录1、线程基本知识2、线程控制3、线程同步与互斥<1>线程互斥<2>线程同步条件变量生产者消费者模型POSIX信号量读者写者问题<3>线程池<4>单例模式1、线程基本知识 线程概念 线程是在进程内部运行的一个执行分支(执行流)&#xff0c;属于进程的一部…

Vue2.0开发之——Vue基础用法-条件渲染指令(23)

一 概述 条件渲染指令—v-if和v-showv-elsev-else-if 二 条件渲染指令—v-if和v-show 2.1 条件渲染指令 条件渲染指令用来辅助开发者按需控制 DOM 的显示与隐藏。条件渲染指令有如下两个&#xff0c;分别是&#xff1a; v-ifv-show 2.2 示例 布局代码 <div id"a…

【考研复试】计算机专业考研复试英语常见问题五(兴趣爱好/实践经历篇)

相关链接&#xff1a; 【考研复试】计算机专业考研复试英语常见问题一&#xff08;家庭/家乡/学校篇&#xff09;【考研复试】计算机专业考研复试英语常见问题二&#xff08;研究方向/前沿技术/本科毕设篇&#xff09;【考研复试】计算机专业考研复试英语常见问题三&#xff0…

Redhat(10)-防火墙-文件管理-JINJA2模板-Cron-文件权限-NTP-autofs

1.防火墙 2.文件管理 3.JINJA2模板 4.Cron作业 5.文件权限 6.NTP 7.autofs 1.防火墙 网络过滤子系统-netfilter&#xff1a;修正、丢弃数据包。 firewalld是什么&#xff1f; 就是处理网卡来的数据包。 1.源地址被分配给特定区域&#xff0c;应用该区域的规则。 2.网卡…

PyQt5 QLineEdit

PyQt5 QLineEditQLineEdit常用方法及属性QLineEdit 实例1QLineEdit 实例2QLineEdit 实例3QLineEdit 综合示例QLineEdit常用方法及属性 QLineEdit 实例1 import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import *class MyLineEditWindo…

【VTK+有限元后处理】实时剖切视图

目的 实现后处理结果云图的平面剖切视图。 方法 通过使用vtkPlaneWidget控件交互&#xff0c;得到剖切平面&#xff0c;通过vtkClipDataSet完成对vtkUnstructuredGrid有限元结果数据的剖切操作。渲染管线如下图所示[1]^{[1]}[1]。 代码实现 首先&#xff0c;我们先写一个创…

【软考软件评测师】第二十八章 计算机网络(网络设备网络地址)

【软考软件评测师】第二十八章 计算机网络&#xff08;网络设备网络地址&#xff09; 第二十八章 计算机网络&#xff08;网络设备网络地址&#xff09;【软考软件评测师】第二十八章 计算机网络&#xff08;网络设备网络地址&#xff09;第一部分 知识点集锦1.IPv4地址1&#…

Maya 贴图链接检测重链打包插件tjh_lost_textures_finder 1.3.2 更新发布

经常遇到maya工程文件贴图丢失或是路径链接更改的问题&#xff0c;对于贴图师和渲染师来说&#xff0c;海量的贴图重连 贴图和查找丢失贴图都是繁重耗时的工作。自从tjh_lost_textures_finder插件诞生以来&#xff0c;就一直再做此项工作的优化工作。 V1.3.2最新版更新内容&am…

Python爬虫:scrapy从项目创建到部署可视化定时任务运行

目录前言第一节 基本功能1、使用 pyenv创建虚拟环境2、创建 scrapy项目3、创建爬虫第二节 部署爬虫4、启动 scrapyd5、使用 scrapyd-client 部署爬虫项目6、使用 spider-admin-pro管理爬虫第三节 部署优化7、使用 Gunicorn管理应用8、使用 supervisor管理进程9、使用 Nginx转发…