Matlab使用Simulink仿真实现AM和BPSK信号的解调及误码率对比

前言

本篇实现了基于AM和BPSK调制的通信系统,采用Bernoulli Binary Generator生成随机二元序列,码元速率为0.5秒/个。AM调制使用Sine Wave模块生成载波,频率40Hz,相位π/2。BPSK调制通过Switch模块切换相位0和π的载波。信号传输通过AWGN信道添加高斯白噪声。AM解调采用包络检波,使用低通滤波器提取调制信号包络;BPSK解调通过相干解调,信号与载波相乘并滤波去除高频分量。通过Error Rate Calculation模块分析解调信号误码率,验证系统性能。

调制原理

包络检波

包络检波是一种常见的幅度调制(AM)信号解调技术。其基本原理是通过检测信号的包络来恢复原始调制信息。具体步骤如下:

  1. 接收信号:接收的AM信号可以表示为 s(t) = [A+m(t)]cos(\omega _{c} t),其中 A 是载波幅度, m(t) 是调制信号,\omega _{c}是载波频率。
  2. 整流:对接收的AM信号进行整流,通常使用二极管进行半波整流或全波整流,将信号的负半周期翻转为正半周期。
  3. 滤波:使用低通滤波器去除载波频率成分,保留调制信号的包络。低通滤波器的截止频率应设置在比载波频率低得多的范围内,只允许通过调制信号的频率成分。
  4. 输出:滤波后的信号即为原始的调制信号 m(t),完成解调过程。

相干解调

相干解调,也称同步解调,是一种用于相位调制(PM)和频率调制(FM)信号的解调技术。其原理是使用与发送端载波同频率、同相位的本地载波进行混频,从而提取调制信号。具体步骤如下:

  1. 接收信号:接收的调制信号可以表示为s(t) = [A+m(t)]cos(\omega _{c} t+\phi (t))其中 A 是载波幅度, m(t) 是调制信号, \omega _{c}是载波频率, ϕ(t) 是相位变化。
  2. 本地载波:产生与发送端载波同频率、同相位的本地载波cos(\omega _{c} t)
  3. 混频:将接收信号与本地载波相乘,得到s(t)cos(\omega _{c} t) = [A+m(t)]cos(\omega _{c} t+\phi (t))cos(\omega _{c} t)。利用三角函数乘积公式展开并简化:s(t)cos(\omega _{c} t) = \frac{1}{2}[A+m(t)][cos(2\omega _{c} t+\phi (t))+cos(\phi (t))]其中包含一个直流分量和一个高频分量。
  4. 滤波:使用低通滤波器去除高频分量,只保留直流分量和低频分量,得到\frac{A+m(t)}{2}cos(\phi (t))
  5. 恢复信号:如果载波相位完全匹配(即 ϕ(t)=0),则输出为\frac{A+m(t)}{2},经过放大和偏移调整即可恢复原始调制信号 m(t)。

仿真要求

使用Bernoulli Binary Generator模块生成一个随机的二元序列(0/1序列)。假设码元速率为0.5秒/个,意味着每0.5秒产生一个0或1。对随机二元序列(0/1 序列)进行 AM 和 BPSK 调制,载波为sin波形;

利用高斯白噪声对信道进行模拟,传输调制后的AM和BPSK调制载波;对经过高斯白噪声的调制信号进行解调:AM 调制信号通过包络检 波方案进行解调;BPSK 调制信号通过相干解调方案进行解调;

载波频率为码元速率的 20 倍(即载波周期(时间)是码元周期(时间) 的 1/20)。即载波频率设置为40。

AM调制

载波生成使用 Sine Wave 模块,载波频率设置为40,相位设置为 pi / 2。采样时间均设置为1/1000。

时域信号波形,从上到下二元信号,载波信号,调制信号。 

频域波形:

BPSK调制

可利用 Transport Delay 模块对载波(Sin)进行延迟,确保在二元序列为 0 时,相位变成了 pi,但这里我直接使用sine wave产生移相后的波形,也就是第一个相位为0第二个为pi。

这里使用了开关电路,可利用 Switch 模块实现开关电路(即根据 0/1 信源,输出不同相位的调制信号)

时域信号波形,从上到下二元信号,原始载波信号,移相载波,调制信号。 

频域波形:

另外一种实现方法,使用MATLAB Function模块

函数如下所示

function out = BPSK(bit, no_shift, shift)
if bit == 1
    out = no_shift;
else
    out = shift;
end

实现效果也是一样的 

封装成子系统 

接下来,我们要将AM调制过程和BPSK调制过程进行封装,先删去不需要的部分,选择后创建子系统。

AM调制子系统

BPSK调制子系统 

在这里我们除了将调制信号作为输出之外,还要将原始的二元信号输出作为我们误码率的判断,BPSK因为要使用相干解调,所以还要把载波输出。

信号传输

这里直接将调制信号通过高斯白噪声信道,可以用 AWGN channel 这个模块,用SNR模式

AM和BPSK解调 

AM解调----包络检波

根据包络检波的原理,解调时仅需要对信号进行上/下包络的提取,然后对信号进行低通滤波获得有用消息信号,取绝对值模块,你可利用 abs 模块对调制 AM 波形进行取绝对值,提取上包络; 或者,直接使用 Saturation 模块输出上/下包络的波形,上下限就设置为inf和0就可以了。

滤波器模块,你可利用 Analog Filter Design 设计 besself 低通滤波器,选择低通滤波器。

BPSK解调----相干解调

相干解调时仅需要将信号与调制过程中的载波信号相乘,然后滤除高频分量即可。滤波器模块可以用上面一样的。

抽样判决

通过对信号的解调,观察信号可以发现解调信号波形与消息信号类似,但却不是标准的二元信号,需对信号进行抽样,设定阈值,判断输出标准的二元信号,可通过 switch 模块的功能实现抽样判决。

AM解调信号如下所示:

可以看到阈值大概是在3.5左右,所以am的抽样判决可以这样设置:

同理

bpsk的解调信号如下所示:

阈值在0,我们可以这样设计:

错误率分析 

对解调信号和消息信号进行对比,分析两种调制方式的误码率。可直接 通过 Error Rate Calculation 模块将消息信号和解调进行进行码元周期的抽样对比,输出错误率;

在这里我们对 Receiver delay 和 communication delay 参数均不作改变,仅将输出类型变为端口输出(Output data 设置为 Port),然后用文本显示器(Display 模块),用于显示 Error Rate Calculation 模块的输出。

参考设计

这里的原始二元信号与我们的解调信号有部分对不上,误码率很高大约在50%以上,后面经过时延之后就都能达到1%的误码率了。你可以通过记录信号,用数据查看器去看看二者直接的时间差距。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

乡村振兴的多元化产业发展:推动农村一二三产业融合发展,培育乡村新业态,打造多元化发展的美丽乡村

一、引言 乡村振兴是我国当前及未来一段时间内的重大战略任务,旨在促进农村经济的全面发展,提高农民的生活水平,实现城乡融合发展。在乡村振兴的进程中,推动农村一二三产业融合发展,培育乡村新业态,是打造…

绿色转型,节能攻坚

随着人口增长和经济发展,资源短缺和环境污染问题愈发严重,绿色转型和节能已成为我们共同的责任。为了推动环保事业的发展,阜阳善于善行志愿者团队,参与了本年度以“绿色转型,节能攻坚”为主题的全国节能宣传周活动。这…

echart盒子没有跟着当前div大小变化而自适应

一、问题描述 当echarts图表在一个盒子里的时候,盒子大小变化了,但是图表没有跟着自适应,比如这样,盒子变大了,但是图表没变化 二、解决方法 在盒子大小更改的同时,调用图表的resize方法,记…

海思Hi3519DV500方案1200万无人机吊舱套板

海思Hi3519DV500方案1200万无人机吊舱套板 Hi3519DV500 是一颗面向行业市场推出的超高清智能网络摄像头SoC。该芯片最高 支持四路sensor 输入,支持最高4K30fps 的ISP 图像处理能力,支持2F WDR、 多级降噪、六轴防抖、全景拼接、多光谱融合等多种传统图像…

FL Studio21永久免费破解中文版下载,让我这个音乐制作爱好者如获至宝!

FL Studio21永久免费破解中文版下载,让我这个音乐制作爱好者如获至宝!🎶 这款软件功能强大,操作简单易上手。我可以轻松地创作出各种风格的音乐作品。无论是流行、摇滚还是电子音乐,都能轻松驾驭。🎧 使用F…

Java 基础语法

Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象&#xff…

vue3中实现点击ctrl+enter换行,enter发送

效果 TS部分&#xff1a; <script lang"ts" setup> import { Promotion } from element-plus/icons-vue import { ref } from vue;const question ref() const keyDownCode ref(0)// 键盘按下事件处理函数 const keyDownEnter (e: any) > {console.log(…

AI魔法相机:实时3D重建与场景魔法化

一、产品概述 AI魔法相机是一款创新的硬件产品,它结合了AI技术和3D重建扫描技术,能够实时捕捉并重建3D场景和物理世界。用户只需通过简单的点击操作,即可捕捉现实物体或环境,并将其无缝融合到任何场景中,创造出全新的想象现实。 二、核心功能 实时捕捉:一键式操作,迅速…

CV每日论文--2024.6.6

1、Dealing with All-stage Missing Modality: Towards A Universal Model with Robust Reconstruction and Personalization 中文标题&#xff1a;处理全阶段缺失模态&#xff1a;迈向具有鲁棒重建和个性化的通用模型 简介&#xff1a;这篇论文提出了一种具有模态重建和模型个…

QT漂亮QSS样式模仿流行VUE Element UI ,QSS漂亮大方美观样式 QSS样式 QTableWidget 漂亮样式QSS 快速开发QSS漂亮界面

在现代应用程序开发中&#xff0c;用户界面&#xff08;UI&#xff09;的设计与用户体验&#xff08;UX&#xff09;占据了至关重要的位置。Vue.js框架因其灵活性和丰富的生态系统而广受欢迎&#xff0c;其中Element UI作为一套为Vue设计的桌面端组件库&#xff0c;以其清晰的视…

红海云入选《2024中国数据智能产业图谱1.0》

近日&#xff0c;国内知名大数据产业创新服务媒体数据猿携手上海大数据联盟重磅发布了《2024中国数据智能产业图谱1.0》。红海云凭借在人力资源数字化应用领域的卓越产品创新与服务&#xff0c;成功入选图谱「 企业应用-人力资源」板块。 《2024中国数据智能产业图谱1.0》由数…

视频直播点播EasyDSS平台授权时,出现授权时间即将到期的提示是什么原因?

视频直播点播EasyDSS平台具备灵活的视频能力&#xff0c;包括直播、点播、转码、管理、录像、检索、时移回看等&#xff0c;平台支持音视频采集、视频推拉流、播放H.265编码视频、存储、分发等能力服务&#xff0c;可应用在无人机推流、在线直播、虚拟直播、远程培训等场景中。…

快递一键查询,只需快递单号,轻松掌握全程物流信息,让您的包裹追踪无忧!

在快节奏的现代生活中&#xff0c;快递已经成为我们生活中不可或缺的一部分。无论是网购的宝贝、亲朋好友寄来的礼物&#xff0c;还是工作中的紧急文件&#xff0c;快递都承载着我们的期待和需要。然而&#xff0c;面对众多的快递公司和复杂的查询流程&#xff0c;如何快速、准…

css图片适配,不随屏幕的大小变化

.carimg {width: 100%;height: 100%;max-width: 100%;max-height: 100%;object-fit: cover; } <img class"carimg" :src"item.imageUrl" alt"" /> 效果&#xff1a; 全屏时 屏幕变小时

【Three.js】知识梳理三:Three.js几何体Geometry

1.什么是几何体Geometry&#xff1f; 在 Three.js 中&#xff0c;几何体&#xff08;Geometry&#xff09;是一个数据结构&#xff0c;包含了用于描述三维物体的基本信息&#xff0c;如顶点&#xff08;vertices&#xff09;、面&#xff08;faces&#xff09;和它们的关联属性…

关于会议论文/CPCI/ISTP会议论文

关于会议论文 会议论文是公开发表的学术论文&#xff0c;一般正式的国际学术会议都会公开征稿&#xff0c;并要求录用的论文在会议上进行宣读、交流&#xff0c;然后集结出版&#xff0c;这就是我们常说的会议论文集&#xff0c;而这些发表的论文也可用于硕博毕业、项目结题、…

1 c++多线程创建和传参

什么是进程&#xff1f; 系统资源分配的最小单位。 什么是线程&#xff1f; 操作系统调度的最小单位&#xff0c;即程序执行的最小单位。 为什么需要多线程&#xff1f; &#xff08;1&#xff09;加快程序执行速度和响应速度, 使得程序充分利用CPU资源。 &#xff08;2&…

Python中columns()函数

1. columns的概念 在数据分析和处理中,columns是指数据表中的列,也称为字段。每一列代表了特定类型的数据,在一个数据表中,每一行代表了一个数据实例,而每一列则代表了一个特定的特征或属性。 可以直接定义和更改列标题,也可以直接读取某列的数据,或者对某列进行运算。…

Java:双色球案例

文章目录 题目最终代码及运行结果过程中出现的问题判断选取的小球数字是否满足条件获奖多少没输出其他问题 学到的东西 题目 最终代码及运行结果 package com.zhang; /* 双色球案例: 投注号码由6个红球和1个蓝球号码组成。红色球号码从1——33中选择&#xff0c;蓝色球号码从1…

不定时更新 解决无法访问GitHub github.com 打不开 访问加速

1 修改hosts Windows 10为例,‪文件C:\Windows\System32\drivers\etc\hosts 管理员打开记事本来修改 文件-打开-“C:\Windows\System32\drivers\etc\hosts” 20.205.243.168 api.github.com 185.199.108.154 github.githubassets.com 185.199.108.133 raw.githubusercontent.…