【通信原理(含matlab程序)】实验五:二进制数字调制与解调

news2025/4/5 10:56:13

💥💥💞💞欢迎来到本博客❤️❤️💥💥
本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~

📋📋📋本文目录如下:🎁🎁🎁

  • 一、实验目的
  • 二、实验内容
  • 三、实验原理
  • 四、实验程序
  • 五、实验结果与分析
  • 六、问题讨论
    • 通信原理全套实验报告
      • 【连载】通信原理----全套Matlab仿真实验报告

一、实验目的

1、理解基本的二进制数字调制的原理;
2、理解ook、2FSK、2PSK信号时域波形和频谱的主要特点;
3、掌握上述matlab程序实现。

二、实验内容

用matlab产生独立等概的二进制信源,
1、画出OOK信号波形和功率谱;
2、画出2PSK信号波形和功率谱;
3、画出2FSK信号波形和功率谱

三、实验原理

1、二进制数字调制
数字调制:把数字基带信号变为数字带通信号的过程,有振幅调制,频移调制,相移调制三种。数字调制奇数有两种方法:①利用模拟调制的方法去是实现数式调制。②通过开关键控载波,称为键控法。
在这里插入图片描述
1.时域波形和频谱的主要特点
①OOK
在2ASK中,载波的幅度只有两种变化状态,分别对应二进制信息“0”或“1”。二进制振幅键控的表达式为:s(t) = A(t)cos(w0+θ) 0<t≤T,式中,w0=2πf0为载波的角频率;A(t)是随基带调制信号变化的时变振幅,即在这里插入图片描述

其波形如下:在这里插入图片描述
②2FSK
二进制频移键控信号码元的“1”和“0”分别用两个不同频率的正弦波形来传送,而其振幅和初始相位不变。
故其表达式为在这里插入图片描述
在这里插入图片描述
③2PSK
2PSK:载波的两种相位(0和π)去对应基带信号的“0”与“1”两种码元。因此二元数字调相就是让载波在两种相位间切换,故称相移键控。
二进制移相键控信号的典型时间波形如下图所示。
在这里插入图片描述

四、实验程序

clear all; 
close all;
clc;
M=10;                     %产生码元数    
L=100;                    %每码元复制L次
Ts=1;                 %每个码元的宽度,即码元的持续时间
Rb=1/Ts;                  %码元速率1
dt=Ts/L;                  %采样间隔
fs = 1/dt
TotalT=M*Ts;              %总时间
t=0:dt:TotalT-dt;         %时间
%% 产生单极性波形
wave=randi([0,1],1,M);    %产生二进制随机码,M为码元个数
fz=ones(1,L);             %定义复制的次数L,L为每码元的采样点数
x1=wave(fz,:);            %复制的第1行复制L次
%% 产生OOK
dnrz=reshape(x1,1,L*M);   %产生单极性不归零矩形脉冲波形
fc=2*Rb;                 %载波频率是基带信号的二倍。        
zb=sin(2*pi*fc*t);
ask2=dnrz.*zb;            %2ASK的模拟调制
%% 产生2FSK
kf=0.3;
sfm=modulate(dnrz,fc,fs,'fm',kf);
%% 产生2PSK
m1=[];
c1=[];
b1=[];
for i=1:M
      t1=(i-1)*Ts:dt:i*Ts-dt; 
        if wave(i)==0;
            m=ones(1,L);
            b=zeros(1,L);
        else wave(i)==1;
            m=-ones(1,L);
            b=ones(1,L);
        end
%通过循环方式对输入信号的进行赋值实现调制目的
        c=sin(2*pi*fc*t1);
        m1=[m1 m];
        c1=[c1 c];
        b1=[b1,b];
end
psk=c1.*m1;
%% 绘制OOK 2PSK 2FSK波形
figure(1);
subplot(411)
plot(t,dnrz)
title('单极性不归零矩形脉冲')
axis([0,TotalT,-0.1,1.1])
subplot(412)
plot(t,ask2);
title('OOK已调信号波形')
axis([0,TotalT,-1.1,1.1]);
subplot(413)
plot(t,sfm);
title('2FSK已调信号波形')
axis([0,TotalT,-1.1,1.1]);
subplot(414)
plot(t,psk)
title('2PSK已调信号波形')
axis([0,TotalT,-1.1,1.1]);
%% 频谱
T=t(end);%时间
df=1/T;%频率
N=length(ask2);%采样长度
f=(-N/2:N/2-1)*df;%采样频率
sf1=fftshift(abs(fft(ask2)));%2ASK信号采用快速傅里叶变换并移到矩阵中心
sf2=fftshift(abs(fft(sfm)));%2ASK信号采用快速傅里叶变换并移到矩阵中心
sf3=fftshift(abs(fft(psk)));%2ASK信号采用快速傅里叶变换并移到矩阵中心
%% 画出频谱图
figure(2);
subplot(311)
plot(f,sf1)%画出调制信号频谱
title("OOK频谱")
subplot(312)
plot(f,sf2)%画出调制信号频谱
title("2FSK频谱")
subplot(313)
plot(f,sf3)%画出调制信号频谱
title("2PSK频谱")

五、实验结果与分析

1.OOK、2FSK和2PSK信号波形仿真结果:
在这里插入图片描述
2.OOK、2FSK和2PSK信号频谱仿真结果:
在这里插入图片描述

六、问题讨论

1.总结本实验的主要收获。
①对OOK,2PSK和2FSK的产生方法模拟调制法和键控法有了更深的理解和认识。
②对OOK,2PSK和2FSK的仿真频谱图进行分析,更深的理解了它们的频谱成分。
③掌握利用matlab进行傅里叶变换求信号频谱,对matlab编程更加的熟练。
2.对实验内容提出自己的想法和建议。
在此实验的基础上,我们可以进一步观察当基带信号在传输过程中存在噪声时,调制产生信号的波形,以及在接收端实现信号的解调,对仿真结果进行分析。

通信原理全套实验报告

【连载】通信原理----全套Matlab仿真实验报告

https://blog.csdn.net/amimax/article/details/128776213?spm=1001.2014.3001.5501

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

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

相关文章

Arduino的45种传感器测试(初级)

前言 说是Arduino的传感器,实际只要明白接口通信方式,其他开发板也可以使用。这一篇的测试是对一些开关和led等的测试,只使用了3.3v / 5v电源和万用表就可完成。 震动开关 实物图和原理图如下 原理:中心有一个金属线的空心黑…

Java多线程-Thread的Object类介绍【wait】【notify】【sleep】

Thread和Object类详解 方法概览 Thread wait、notify、notifyAll方法详解 作用 阻塞阶段 使用了wait方法之后,线程就会进入阻塞阶段,只有发生以下四种情况中的其中一个,线程才会被唤醒 另一个线程调用了这个线程的notify方法&#xff0…

Python数据可视化之直方图和密度图

Python数据可视化之直方图和密度图 提示:前言 Python数据可视化之直方图和密度图 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录Python数据可视化之直方图和密度图前言一、导入包二、选择数据集三、直…

k8s之平滑升级

写在前面 通过POD 应用就有了存在的形式,通过deployment 保证了POD在一定的数量,通过service 可以实现一定数量的POD以负载均衡的方式对外提供服务。但,如果是程序开发了新功能,需要上线,该怎么办呢?对此k…

jvm相关,jvm内存模型,java程序运行流程及jvm各个分区的作用、对象的组成(针对hotspot虚拟机)--学习笔记

java程序运行时的运行模型 在jdk1.8之前的元空间,称为永久代并将元空间挪到了堆直接使用本地内存,不再占用堆空间 jvm内存结构划分 堆(方法区)和元空间是线程共有的,其他部分是线程私有的 每创建一个线程都会创建一个…

MYSQL中常见的知识问题(二)

1、B树和B树的区别,MYSQL为啥使用B树。 1.1、B树 目的:为了存储设备或者磁盘设计的一种平衡查找树。 定义(M阶B树):a、树中的每个节点最多有m个孩子。 b、除了根节点和叶子节点外,其他节点最少含有m/2(取上…

08-网络管理-iptables基础(四表五链、禁止ping、防火墙规则添加/删除、自建链使用、SNAT\DNAT模式、FTP服务器防火墙规则)待发布

文章目录1. 概述1.1 四表1.2 五链1.3 四表五链的关系1.4 使用流程2. 语法和操作1.1 语法1.2 常用操作命令1.3 基本匹配条件1.4 基本动作1.5 常用命令示例- 设置默认值- 禁止80端口访问- 查看防火墙规则- 保存规则- 允许ssh- 禁止ping- 删除规则- 清除规则(不包括默认…

HR软件如何识别保留优秀员工

在企业信息化的时代,越来越多的年轻员工开始追求他们的激情,辞掉那些乏味的工作,而选择加入重视员工生活质量的企业。他们不再追随那些以牺牲员工福利为代价追求利润的公司。 员工认可度有助于加强组织中的团队合作关系,反过来&a…

木马程序(病毒)

木马的由来 "特洛伊木马"(trojan horse)简称"木马",据说这个名称来源于希腊神话《木马屠城记》。古希腊有大军围攻特洛伊城,久久无法攻下。于是有人献计制造一只高二丈的大木马,假装作战马神&…

实用技巧盘点:Python和Excel交互的常用操作

大家好,在以前,商业分析对应的英文单词是Business Analysis,大家用的分析工具是Excel,后来数据量大了,Excel应付不过来了(Excel最大支持行数为1048576行),人们开始转向python和R这样…

【通信原理(含matlab程序)】实验六:模拟信号的数字化

💥💥💞💞欢迎来到本博客❤️❤️💥💥 本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~ &#x…

一文理解JVM虚拟机

一. JVM内存区域的划分 1.1 java虚拟机运行时数据区 java虚拟机运行时数据区分布图: JVM栈(Java Virtual Machine Stacks): Java中一个线程就会相应有一个线程栈与之对应,因为不同的线程执行逻辑有所不同&#xff…

【JavaGuide面试总结】Java IO篇

【JavaGuide面试总结】Java IO篇1.有哪些常见的 IO 模型?2.Java 中 3 种常见 IO 模型BIO (Blocking I/O)NIO (Non-blocking/New I/O)AIO (Asynchronous I/O)1.有哪些常见的 IO 模型? UNIX 系统下, IO 模型一共有 5 种: 同步阻塞 I/O、同步非阻塞 I/O、…

浏览器兼容性 问题产生原因 厂商前缀 滚动条 css hack 渐近增强 和 优雅降级 caniuse

目录浏览器兼容性问题产生原因厂商前缀滚动条css hack渐近增强 和 优雅降级caniuse浏览器兼容性 问题产生原因 市场竞争标准版本的变化 厂商前缀 比如:box-sizing, 谷歌旧版本浏览器中使用-webkit-box-sizing:border-box 市场竞争,标准没有…

Java多线程案例之线程池

前言:在讲解线程池的概念之前,我们先来谈谈线程和进程,我们知道线程诞生的目的其实是因为进程太过重量了,导致系统在 销毁/创建 进程时比较低效(具体指 内存资源的申请和释放)。 而线程,其实做…

14岁初中生将免去四考,保送清华本硕博连读,乡亲们敲锣打鼓祝贺

导语: 很多学生在很小的时候,都曾有豪言壮语:“将来一定要考上清华北大”。可是真正接受教育,开始学习之后,学生们才能发现,原来学习这么难。不要说真的走进清华北大,即使是进入“985”大学&am…

C++ 智能指针(一) auto_ptr

文章目录前言 - 什么是智能指针?std::auto_ptrauto_ptr的使用常用成员方法:1. get()方法2. release()方法3. reset()方法4. operator()5. operator*() & operator->()auto_ptr的局限性前言 - 什么是智能指针? 在全文开始之前&#xf…

Redis事务的概述、设计与实现

1 Redis事务概述事务提供了一种“将多个命令打包, 然后一次性、按顺序地执行”的机制, 并且事务在执行的期间不会主动中断 —— 服务器在执行完事务中的所有命令之后, 才会继续处理其他客户端的其他命令。以下是一个事务的例子, 它…

mysql-事务以及锁原理讲解(二)

1、前言 众所周知,事务和锁是mysql中非常重要功能,同时也是面试的重点和难点。本文会详细介绍事务和锁的相关概念及其实现原理,相信大家看完之后,一定会对事务和锁有更加深入的理解。 2、什么是事务 在维基百科中,对事…

7 处理多维特征的输入

文章目录课程前提知识问题引入模型改进修改神经层的增加学习能力与超参数课本代码课程来源: 链接课程文本来源借鉴: 链接以及(强烈推荐)Birandaの课程前提知识 BCELoss - Binary CrossEntropyLoss BCELoss 是CrossEntropyLoss的一个特例&am…