m基于MATLAB数字调制解调仿真,包括ASK,FSK,DPSK及MDPSK,对比误码率

news2025/8/10 9:19:40

目录

1.算法概述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法概述

       振幅键控(也称幅移键控),记做ASK,或称其为开关键控(通断键控),记做OOK 。二进制数字振幅键控通常记做2ASK。

         对于振幅键控这样的线性调制来说,在二进制里,2ASK是利用代表数字信息“0”或“1”的基带矩形脉冲去键控一个连续的载波,使载波时断时续的输出,有载波输出时表示发送“1”,无载波输出时表示发送“0”。根据线性调制的原理,一个二进制的振幅调制信号可以表示完成一个单极性矩形脉冲序列与一个正弦型载波的乘积。

       在二进制频移键控(2FSK)中,当传送“1”码时对应于载波频率,传送“0”码时对应于载波频率。 2FSK信号波形可看作两个2ASK信号波形的合成,下图是相位连续的2FSK信号波形。


————————————————

       2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图4-4所示。

        在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。

2.仿真效果预览

matlab2022a仿真

 

 

3.MATLAB部分代码预览


i=10;
j=5000;
t=linspace(0,5,j);
fc=10;
fm=i/5;
B=2*fc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号
a=round(rand(1,i));%随机序列
figure(2)
plot(rand(1,i))
st=t;
for n=1:10
    if a(n)<1;
        for m=j/i*(n-1)+1:j/i*n
            st(m)=0;
        end
    else
        for m=j/i*(n-1)+1:j/i*n
            st(m)=1;
        end
    end
end
figure(1);
subplot(421);
plot(t,st);
axis([0,5,-1,2]);
title('基带信号');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波
s1=cos(2*pi*fc*t);
subplot(422);
plot(s1);
title('载波信号');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制
e_2ask=st.*s1;
subplot(423);
plot(t,e_2ask);
title('已调信号');
noise =rand(1,j);
e_2ask=e_2ask+noise;%加入噪声
subplot(424);
plot(t,e_2ask);
title('加入噪声的信号');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调
at=e_2ask.*cos(2*pi*fc*t);
at=at-mean(at);
subplot(425);
plot(t,at);
title('相乘后信号');
[f,af] = T2F(t,at);%通过低通滤波器
[t,at] = lpf(f,af,2*fm);
subplot(426);
plot(t,at);
title('解调后波形');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决
for m=0:i-1;
if at(1,m*500+250)+0.5<0.5;
    for j=m*500+1:(m+1)*500;
        at(1,j)=0;
    end
else
    for j=m*500+1:(m+1)*500;
        at(1,j)=1;
    end
end
end
subplot(427);
plot(t,at);
axis([0,5,-1,2]);
01-016m  

4.完整MATLAB程序

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

V

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

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

相关文章

Spring Cloud(十一):Spring Cloud Security Oauth2

OAuth2 登录历程 basic 用户名&#xff1a;密码session cookietokenjwt 登录流程分析&#xff1a; https://www.processon.com/view/link/60a32e7a079129157118740f 微信开发平台文档&#xff1a; https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Logi…

(2)paddle---简单线性回归和波士顿房价预测

1、参考地址 &#xff08;1&#xff09;blibli网站地址 251-03_PaddlePaddle求解线性模型_dec_哔哩哔哩_bilibili &#xff08;2&#xff09;波士顿数据集介绍参考了 机器学习:波士顿房价数据集_mjiansun的博客-CSDN博客 2、简单线性回归 &#xff08;1&#xff09;测试一…

上海亚商投顾:沪指失守3100点 教育板块逆势大涨

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪大小指数今日走势分化&#xff0c;沪指震荡调整&#xff0c;尾盘再度失守3100点&#xff0c;创业板指盘中涨超1%&am…

定制activemq_RPM包,注册系统服务并开机自启

rpmbuild命令用于创建软件的二进制包和源代码包。 1.准备环境 系统&#xff1a;Centos7 安装所需编译环境&#xff1a; # yum install epel-release -y # yum install rpmdevtools rpm-build gcc make tcl jemalloc -y 2.提前编译安装redis&#xff0c;此处以activemq-5…

nodejs学习week01

说明&#xff1a;学习nodejs之气那应该掌握html&#xff0c;css&#xff0c;JavaScript等前端基础技术 目录 一、什么是nodejs 二、nodejs的内部模块 1.fs文件系统模块 2.path路径模块 3.http服务器模块 三、module.exports对象 四、时间格式化 1.使用JavaScript的方…

Python自动化运维之一(Python入门)

Python简介 python是吉多范罗苏姆发明的一种面向对象的脚本语言&#xff0c;可能有些人不知道面向对象和脚本具体是什么意思&#xff0c;但是对于一个初学者来说&#xff0c;现在并不需要明白。大家都知道&#xff0c;当下全栈工程师的概念很火&#xff0c;而Python是一种全栈的…

docker-compose模板文件、命令的使用

docker-compose官网 一、docker-compose的命令 1、up(启动) 格式为 docker-compose up [options] [SERVICE…] 该命令十分强大&#xff0c;它将尝试自动完成包括构建镜像&#xff0c;&#xff08;重新&#xff09;创建服务&#xff0c;启动服务&#xff0c;并关联服务相关容器…

FAQ是什么?该如何编辑FAQ?

“FAQ”这个关键词可能很多人都见过&#xff0c;但是如果不是行业内的人&#xff0c;大概还不知道它的含义&#xff0c;所以本文将介绍 FAQ和 FAQ文档的编写。 “FAQ”是中文意思&#xff0c;意思是“常见问题解答”或“帮助中心”。研究显示&#xff0c;客户服务支持每天要花…

第四章. Pandas进阶—数据分组统计

第四章. Pandas进阶 4.3 数据分组统计 1.分组统计函数(groupby函数) 1).功能&#xff1a; 根据给定的条件将数据拆分成组每个组否可以独立应用函数&#xff08;sum&#xff0c;mean&#xff0c;min&#xff09;将结果合并到一个数据结构中 2).语法&#xff1a; DataFrame.gro…

5G无线技术基础自学系列 | 物理上行共享信道

素材来源&#xff1a;《5G无线网络优化实践》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 NR PUSCH支持两种波形&#xff08;参阅TS…

Python入门自学进阶-Web框架——26、DjangoAdmin项目应用-数据记录操作

对于每个表显示的数据&#xff0c;点击其中一条&#xff0c;进入这条数据的修改页面&#xff0c;显示此条数据的具体内容&#xff0c;并提供修改、删除等功能。主要是ModelForm的应用。 一、记录数据修改 首先是路由项的添加&#xff0c;点击一条记录后&#xff0c;进入相应的…

MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作

什么是MaxEnt模型&#xff1f; MaxEnt模型的原理是什么&#xff1f;有哪些用途&#xff1f; MaxEnt运行需要哪些输入文件&#xff1f;注意那些事项&#xff1f; 融合R语言的MaxEnt模型的优势&#xff1f; 常用数据检索与R语言自动化下载及可视化方法 常用数据下载网站&…

第一章《初学者问题大集合》第7节:编写第一个Java程序

下载并安装好IDEA之后&#xff0c;就可以编写Java程序啦&#xff01;前文曾经讲过&#xff0c;Java程序最初的存在形式是Java源文件&#xff0c;经过编译之后又会产生字节码文件。当今时代&#xff0c;软件项目的规模越来越大&#xff0c;因此软件项目中会有多个Java源文件和字…

Android Gradle - AGP(Android Gradle Plugin)更新失败,你遇到了吗?

因为项目中有Java和Kt&#xff0c;同时也是组件化项目&#xff0c;所以配置方面一直存在一些问题&#xff08;项目可正常运行&#xff0c;只是影响开发效率&#xff09;&#xff0c;此处仅记录我在AndroidStudio中更新AGP&#xff08;Android Gradle Plugin,即Android 官方开发…

jmeter 使用

下载安装 去官网下载binary文件https://jmeter.apache.org/download_jmeter.cgi 解压后&#xff0c;进入解压目录的 /bin/ &#xff0c;通过 sh jmeter 命令来启动 Jmeter。 使用jmeter GUI创建test plan 创建线程组流程&#xff1a;测试计划–>右键–>添加–>线程…

threeJS与模型交互

效果预览 该场景是模拟两个楼层&#xff0c;当鼠标放到不同的楼层上时改变其透明度 blender中的模型如下图&#xff1a; 首先导入模型 import { FBXLoader } from three/examples/jsm/loaders/FBXLoader.js addfbx () {const loader new FBXLoader()loader.load(/models/…

算法:最长递增子序列

一、题目描述 给定一个长度为N的数组a0,a1,a2…,an-1&#xff0c;找出一个最长的单调递增子序列&#xff08;注&#xff1a;递增的意思是对于任意的i<j&#xff0c;都满足ai<aj&#xff0c;此外子序列的意思是不要求连续&#xff0c;顺序不乱即可&#xff09;。例如&…

K8s自动化集群环境搭建

文章目录一、环境规划1.1 集群类型1.2 安装方式二、环境搭建1、主机安装2、主机名分配3、时钟同步4. 禁用firewalld、selinux、postfix5. 禁用swap分区6. 开启IP转发&#xff0c;和修改内核信息7. 配置IPVS功能8. ssh免密认证三、安装docker1、更换阿里云镜像仓库2、安装docker…

【前端】HTTP —— HTTP 协议中的细节(超详细!!)

JavaEE传送门JavaEE 【前端】JavaScript —— JS的基本语法之数组, 函数… 【前端】JavaScript —— WebAPI 目录HTTP 协议抓包工具 fiddler协议格式RequestResponseHTTP 协议中的细节认识 URLURL 基本格式URL encode/ decode认识 "方法" methodGETPOSTGET 和 POST…

感叹之余随手记—他山之石,可以攻玉

如上是开源webRTC项目的一个OC代码文件&#xff0c;注意到文件名是mm后缀了吗&#xff1f; 是的&#xff0c;它是一个OC特性之OC跟C/C代码混编&#xff0c;上面的代码就C runtime跟OC runtime的string对象的互相转化。 开源成就了很多人很多事&#xff01; 开源提升了我们的工作…