基于matlab实现的 BPSK调制AWGN通道未编码数据误码率程序

news2025/4/7 16:47:59

完整程序:

clear; close all; clc;

c=0;
rate=1;                                             %Code rate
N=10000000;                                         %Number of bits
for EbNoc=0:1:10                                    %Ratio of bit energy to noise power spectral density
c=c+1;
X=randi([0 1],1,N);                                 %Signal
MX=2*X-1;                                           %BPSK modulation
SNR=EbNoc+10*log10(rate)-10*log10(0.5);             %SNR equation
GX=awgn(MX,SNR,'measured');                         %Adding Gaussian noise
DX=GX>0;                                            %Detection
E=length(find(DX~=X));                              %Error
EbNo(c)=EbNoc;                                  
BER_Simulation(c)=E/N;                              %Simulation bit error rate
end
BER_Theoretical=berawgn(EbNo,'psk',2,'nondiff');    %Theoretical bit error rate
semilogy(EbNo,BER_Theoretical,'b-',EbNo,BER_Simulation,'r--');
grid on;
xlabel('Eb/No (dB)'); ylabel('误码率');
legend('理论','模拟');
 

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

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

相关文章

gRpc_go_dart-1.编写第一个服务

​ 通俗的讲下grpc 简化掉所有复杂的实现,它要求服务端和客户端之间按照protobuf的规范进行数据交换,所以服务端和客户端都不用关心彼此的代码实现,只关心按照protobuf的形式提供数据 为什么是go和dart 技术栈,已经是google的形状了 同时,go客户端和Flutter间本身通过http…

05-Flask-Flask查询路由方式

Flask查询路由方式 前言命令行方式代码实现返回所有路由 前言 本篇来学习下Flask中查询路由的方式 命令行方式 # window 用set linux 用 export set FLASK_APPtest_6_flask运行发方式# 打印所有路由 flask routes代码实现返回所有路由 # -*- coding: utf-8 -*- # Time …

优质医疗机构网站模板源码(含手机端)基于pbootcms开源项目

模板名称: 基于pbootcms的医疗机构网站模板(手机端优化) 模板介绍: 这是一个使用PbootCMS内核开发的医疗机构网站模板,专为医疗机构和医疗保健类企业设计。该模板具有简洁、简单和易于管理的页面风格,并附…

征战开发板从无到有(三)

接上一篇,翘首已盼的PCB板子做好了,管脚约束信息都在PCB板上体现出来了,很满意,会不会成为爆款呢,嘿嘿,来,先看看PCB裸板美图 由于征战开发板电路功能兼容小梅哥ACX720,大家可以直…

数据结构---链表(java)

目录 1. 链表 2. 创建Node 3. 增加 4. 获取元素 5. 删除 6. 遍历链表 7. 查找元素是否存在 8. 链栈的实现 9. 链队的实现 1. 链表 数据存放在"Node"结点中 优点:不用考虑扩容和缩容的问题,实现了动态存储数据 缺点:没有…

SQLAlchemy Oracle Database 23c Free 集成之旅

SQLAlchemy & Oracle Database 23c Free 集成之旅 1. SQLAlchemy 是什么2. Oracle Database 23c Free 是什么3. 运行 Oracle Database 23c Free4. 学习 SQLAlchemy 统一教程4-1. 安装依赖库4-2. 建立连接 - 引擎4-3. 使用事务和 DBAPI4-3-1. 获取连接4-3-2. 提交更改4-3-3.…

git git fetch 和 git fetch origin master 的区别

git fetch 第1步 先读取 .git/config 配置 [remote origin],若 fetch 并没有指定其中一个或多个远程仓库,就会处理所有的远程仓库 [remote “origin”]url gitgithub.com:kaku/testGit.gitfetch refs/heads/:refs/remotes/origin/第2步 git fetch 会…

Python 字符串的常用方法

视频版教程 Python3零基础7天入门实战视频教程 下标索引操作和前面的列表,元组用法一样。 虽然字符串不能被修改,但是返回一个操作过的新字符串,所以方法还不少。 我先学习下常用方法; 1,index(元素)方法&#xff0…

第三篇------Virtual I/O Device (VIRTIO) Version 1.1

上一篇文章链接https://blog.csdn.net/Phoenix_zxk/article/details/132921821 接下来续上 5.9.4 支持的加密服务 以下加密服务已定义: /* CIPHER 服务:用于加密解密操作 */ #define VIRTIO_CRYPTO_SERVICE_CIPHER 0 /* HASH 服务:用于哈…

【微信小程序】网络请求

环境&#xff1a;微信小程序开发工具 测试api&#xff08;随机获取猫咪靓照&#xff09;:https://api.thecatapi.com/v1/images/search?limit2 示例&#xff1a; 完整代码 request.wxml <button bind:tap"requestBtn" type"primary">网络请求&l…

基于SSM+Vue的校园活动管理平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【python之经验模态分解EMD实现】PyEMD库的安装和导入EMD, Visualisation问题解决方法[完整可运行]

现有的导入问题 目前网上的办法&#xff0c;直接导入&#xff1a;from PyEMD import EMD, Visualisation 是有问题的 可能会出现 在 ‘init.py | init.py’ 中找不到引用 ‘Visualisation’ 的报错。 原因似乎是现在导入的命令改了&#xff0c;这是一个坑&#xff0c;解决的…

数组相关面试题

1、原地移除数组中所有的元素val&#xff0c;要求时间复杂度为O(N),空间复杂度为O(1)。 OJ链接&#xff1a;27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 分析&#xff1a; 法1&#xff1a;挪到数据&#xff0c;思路如顺序表的头删&#xff0c;将后面的数据向前挪动将…

What does rail-to-rail mean (Rail-to-Rail Op amp) ?

What does rail-to-rail mean (Rail-to-Rail Op amp) ?

网络安全进阶学习第十九课——CTF之密码学

文章目录 一、密码学简介二、密码设计的根本目标三、古典密码1、摩斯密码CTF-题目展示 2、换位密码1&#xff09;栅栏密码2&#xff09;凯撒密码3&#xff09;曲路密码4&#xff09;列移位密码 3、替换密码1&#xff09;移位密码2&#xff09;简单替换密码3&#xff09;埃特巴什…

10 Ubuntu下配置STMCubeMX与CLion IDE联合环境搭建(不包含下载CLion的教程)

序言 果然作为一名测控系的学生&#xff0c;纯搞视觉多少还是有点与专业脱节&#xff0c;决定入坑嵌入式。选择STM32进行入门&#xff0c;并且使用CubeMX加CLion作为我的第一个真正意义上的嵌入式开发环境&#xff08;大一的时候玩过一段时间&#xff0c;但是没什么技术&#…

java创建excel文件和解析excel文件

创建excel文件 package com.bjpowernode.crm.poi;import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.HorizontalAlignment;import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.…

用于3D模具和模型制作:数控机床进行加工软件DeskProto【常用CAM(计算机辅助制造)软件】

DeskProto是一款用于计算机数控&#xff08;CNC&#xff09;机床的三维模型加工的软件&#xff0c;它的技术原理和操作方法涵盖了以下方面&#xff1a; 技术原理&#xff1a; DeskProto的技术原理基于计算机辅助设计&#xff08;CAD&#xff09;和计算机数控&#xff08;CNC&…

Day43:VUEX

1. 基本介绍 这里介绍的VueX是匹配Vue3的V4版本&#xff0c;它绝大多数功能使用都和之前基本保持一致。 1.1 官方定义 先一起看一下官网对于VueX的定义&#xff1a; Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态&…

Mybatis入门与数据库连接池以及lombok插件

我们做为后端程序开发人员&#xff0c;通常会使用Java程序来完成对数据库的操作。Java程序操作数据库&#xff0c;现在主流的方式是&#xff1a;Mybatis。 什么是MyBatis? MyBatis是一款优秀的 持久层 框架&#xff0c;用于简化JDBC的开发。 MyBatis本是 Apache的一个开源项…