数字基带信号(单极性归零、单极性不归零、双极性归零和双极性不归零)波形仿真设计(matlab)

2023-11-15

一、实验目的

        了解数字基带信号(单极性归零、单极性不归零、双极性归零和双极性不归零)波形的特点,掌握利用matlab产生数字基带信号的方法。

二、实验任务

        产生1000个随机信号序列,分别用单极性归零、单极性不归零、双极性归零和双极性不归零码编码,并求平均功率谱密度。利用matlab仿真软件编写程序,分别给出单极性归零、单极性不归零、双极性归零和双极性不归零波形以及它们对应的功率谱密度。

        简述程序设计思路,分别给出单极性归零、单极性不归零、双极性归零和双极性不归零波形以及它们对应的功率谱密度,并对仿真结果进行分析获得有效结论。

三、实验部分代码

        双极性归零码和双极性不归零码的波形和对应的功率谱代码如下:

clc,clear;
k=14;               %采样点数的设置
L= 32;              %每码元采样数的设置
N=2^k;
M=N/L;              %M为码元个数
dt=1/L;             %时域采样间隔
T=N*dt;             %时域截断区间
df=1.0/T;           %频域采样间隔
Bs=N*df/2;          %频域截断区间
t=linspace(-T/2,T/2,N);     %产生时域采样点
f=linspace(-Bs,Bs,N);       %产生频域采样点
EP1=zeros(size(f));
EP2=zeros(size(f));
EP3=zeros(size(f));

%随机产生1000列0、1信号序列,分别对其进行双极性归零编码和不归零编码,并且求各自的功率谱密度,求功率谱密度的均值
for x=1:1000                %取1000次样值
    k=round(rand(1,M));     %产生一个长度为M的随机序列a,0和1等概出现
    nrz=zeros(L,M);         %产生一个L行M列的nrz矩阵,初始化为全0矩阵
    rz=zeros(L,M);          %产生一个L行M列的rz矩阵,初始化为全0矩阵
    for i=1:M 
        if k(i)==1
            nrz(:,i)=1;     %使nrz矩阵第i列全部元素都为1
            rz(1:L/2,i)=1;  %使rz矩阵第i列前L/2个元素为1
        else
            nrz(:,i)=-1;    %使nrz矩阵第i列全部元素都为-1
            rz(1:L/2,i)=-1; %使rz矩阵第i列前L/2个元素为-1
        end
    end
    
    %分别重排nrz、rz矩阵为1行N列的矩阵
    nrz=reshape(nrz,1,N);
    rz=reshape(rz,1,N);
    %作傅里叶变换并算出功率谱密度
    NRZ=t2f(nrz,dt);
    P1=NRZ.*conj(NRZ)/T;
    RZ=t2f(rz,dt);
    P2=RZ.*conj(RZ)/T;
    %求功率谱密度的均值
    EP1=(EP1*(x-1)+P1)/x;
    EP2=(EP2*(x-1)+P2)/x;
end
figure(1)
subplot(2,2,1);plot(t,nrz)
axis([-5,5,min(nrz)-0.1,max(nrz)+0.1])
title('双极性不归零码','fontsize',12)
xlabel('t(ms)','fontsize',12)
ylabel('nrz(t)','fontsize',12)
grid on
subplot(2,2,2);plot(t,rz)
axis([-5,5,min(rz)-0.1,max(rz)+0.1])
title('双极性归零码','fontsize',12)
xlabel('t(ms)','fontsize',12)
ylabel('rz(t)','fontsize',12)
grid on
subplot(2,2,3);plot(f,EP1)
axis([-5,5,-0.1,1.2])
title('双极性不归零码功率谱密度图','fontsize',12)
xlabel('f(khz)','fontsize',12)
ylabel('P1(f)','fontsize',12)
grid on
subplot(2,2,4);plot(f,EP2)
axis([-5,5,-0.01,0.3])
title('双极性归零码功率谱密度图','fontsize',12)
xlabel('f(khz)','fontsize',12)
ylabel('P2(f)','fontsize',12)
grid on
%将时域信号作傅里叶变换到频域,x必须是二阶矩阵,dt是信号的时域分辨率
function X=t2f(x,dt)
X=fftshift(fft(x))*dt;
end

四、实验结果

图1 双极性二进制信号波形的MATLAB仿真结果

图2 单极性二进制信号波形的MATLAB仿真结果

        如需要完整代码和实验报告,自行付积分查看,连接如下:

数字基带信号(单极性归零、单极性不归零、双极性归零和双极性不归零)波形仿真设计(matlab仿真)资源-CSDN文库

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字基带信号(单极性归零、单极性不归零、双极性归零和双极性不归零)波形仿真设计(matlab) 的相关文章

  • MATLAB 链表

    有哪些可能的方法来实现链表MATLAB http en wikipedia org wiki MATLAB 注意 我问这个问题是为了教学价值 而不是实用价值 我意识到 如果您实际上在 MATLAB 中滚动自己的链表 那么您可能做错了什么 然
  • 将 Matlab MEX 文件中的函数直接嵌入到 Python 中

    我正在使用专有的 Matlab MEX 文件在 Matlab 中导入一些仿真结果 当然没有可用的源代码 Matlab 的接口实际上非常简单 因为只有一个函数 返回一个 Matlab 结构体 我想知道是否有任何方法可以直接从Python调用M
  • 使用 varargin (...) 时如何显示不同的函数用法?

    当您输入 Matlab 函数名称并打开大括号时 例如sum 在命令窗口中 将打开一个工具提示 显示此函数的所有可能用法 当我编写自己的接受函数时varargin 工具提示仅显示一个选项 而不是varargin puts e g myfunc
  • 如何建立数据流挖掘的滑动窗口模型?

    我们遇到的情况是 流 来自传感器的数据或服务器上的点击流数据 采用滑动窗口算法 我们必须将最后 例如 500 个数据样本存储在内存中 然后 这些样本用于创建直方图 聚合并捕获有关输入数据流中异常的信息 请告诉我如何制作这样的滑动窗 如果您询
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • 白色像素簇提取

    我正在研究指纹毛孔提取项目 并陷入毛孔 白色像素簇 提取的最后阶段 我有两个输出图像 我们可以从中获取毛孔 但不知道该怎么做 这两个图像的尺寸不同 image1 的尺寸为 240 320 image2 的尺寸为 230 310 这是我的图像
  • 估算缺失数据,同时强制相关系数保持不变

    考虑以下 excel 数据集 m r 2 0 3 3 0 8 4 0 1 3 2 1 5 2 2 3 1 9 2 5 1 2 3 0 2 0 2 6 我的目标是使用以下条件填充缺失值 将上述两列之间的成对相关性表示为 R 大约 0 68 将
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa
  • 如何获取MATLAB句柄对象的ID?

    当我尝试使用时出现问题MATLAB 句柄对象 http www mathworks com help techdoc ref handle html作为关键值MATLAB 容器 Map http www mathworks com help
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 从筛查乳腺 X 光检查数字数据库 (DDSM) 获取数据

    我正在尝试以可读格式获取 DDSM 数据集 有谁有 DDSM heathusf 程序的工作版本 可以在 Linux 或 Windows 上正常运行吗 我知道 DDSM 的 jpeg 程序有一个适用于 linux 的工作版本 位于http w
  • Matlab颜色检测

    我试图一致地检测同一场景的图像之间的某种颜色 这个想法是根据颜色配置文件识别一组对象 因此 例如 如果给我一个带有绿色球的场景 并且我选择绿色作为我的调色板的一部分 我想要一个具有反映它检测到球的矩阵的函数 任何人都可以为这个项目推荐一些
  • 在 matlab 代码中使用 dll 文件

    我需要使用 Matlab 中由 dll 文件定义的函数 我有一个例子 那个家伙将 dll 转换为 mexw32 文件 但我知道我是如何做到这一点的 我尝试使用加载库但它没有创建任何文件 我怎样才能做到这一点 loadlibrary http
  • 在 MATLAB 中模拟 C++ 模板

    我试图找出创建 C 模板或 Java 通用对象的替代方案的最佳方法 出于多种不同的原因 我过去曾多次想这样做 但现在我想做的是为几个相关的类创建 saveobj 和 loadobj 函数 我的想法是 我想要一组通用的例程来创建默认结构 然后
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a

随机推荐

  • const char*和char *const

    1 const char const在指针前 修饰常量 指向常量的指针 指针指向可以改 指针指向的值不可以改 char ch 5 list const char pStr ch pStr w error pStr hi 提示 虽然不能用pS
  • 步进电机基础(5.1)-步进电机的驱动与控制-恒压驱动、恒流驱动

    步进电机基础 5 1 步进电机的驱动与控制 恒压驱动 前言 基本信息 前言说明 步进电机的驱动与控制 5 1 恒电压驱动 1 使用外加电阻的驱动 2 无外加电阻的驱动 3 电压驱动 5 2 恒电流驱动 前言 基本信息 名称 描述说明 教材名
  • 图像质量评估——论文精读系列

    Madhusudana P C Birkbeck N Wang Y et al Image quality assessment using contrastive learning J IEEE Transactions on Image
  • Java线程:线程状态的转换

    本文转载至 http lavasoft blog 51cto com 62575 99153 一 线程状态类型 1 新建状态 New 新创建了一个线程对象 2 就绪状态 Runnable 线程对象创建后 其他线程调用了该对象的start 方
  • Java等调用python深度学习训练的模型(待完成)

    1 参考博客园 java web应用调用python深度学习训练的模型 2 参考CSDN Java调用Python的训练模型 3 参考博客园 使用java调用python训练出的pmml模型 4 参考简书 java调用python方法 5
  • sum 加 Group By 的使用

    1 A 表 有server id 为1的两条数据 2 B表有server id 为1的数据也有两条 原本Sql是这样 乍一看没啥问题 但是group by 没生效 SELECT a server id sum b score as scor
  • AXI总线之DDR控制器的实现

    由于FPGA的内部RAM资源实在有限 同时又不得不面临大数据量缓存的问题 因此 将DDR进行共享成了最为直接有效的解决方案 设计目标 PL端有多个需要大量数据缓存的通道 让每个通道都将DDR作为外部缓存 FIFO 注意 总的突发在1Gbps
  • 8_请求体-字段

    8 请求体 字段 与使用 Query Path 和 Body 在路径操作函数中声明额外的校验和元数据的方式相同 你可以使用 Pydantic 的 Field 在 Pydantic 模型内部为属性字段声明校验和元数据 1 导入Field fr
  • sql server数据库只有mdf文件,没有ldf,如何加载

    使用sql命令加载 USE master GO CREATE DATABASE northwind ON FILENAME N D db NWind mdf 修改这里的路径 FOR ATTACH REBUILD LOG GO
  • Mysql查询数据库容量大小

    记录一下 好东西 防止忘了 select table schema as 数据库 table name as 表名 table rows as 记录数 truncate data length 1024 1024 2 as 数据容量 MB
  • 常见的几种手机传感器

    传感器Sensor就是手机里那些可以被测量并且能按照一定的规律转换成可用输出信号的器件或装置 一般这类传感器都是由敏感元件以及转换元件组成 手机上的那些能够通过芯片来感应的元器件 如反应距离值 光线值 温度值 亮度值和压力值等 那手机常见的
  • 2-2. 然后是几点(15)

    有时候人们用四位数字表示一个时间 比如1106表示11点零6分 现在 你的程序要根据起始时间和流逝的时间计算出终止时间 读入两个数字 第一个数字以这样的四位数字表示当前时间 第二个数字表示分钟数 计算当前时间经过那么多分钟后是几点 结果也表
  • java中异常总结-值得一看

    本文要点 1 Throwable把错误进一步划分为 java lang Exception 和 java lang Error java lang Error 用来处理系统错误 2 所有继承自RuntimeException的异常都被称为非
  • vue3+pinia的使用,刷新后不丢数据

    前言 好用的状态管理器 vue3中出来的pinia 相比较vuex来说 更加轻便 使用也更方便 官方文档 点我 github地址 点我 pinia与vuex相比较优点 pinia 是轻量级状态管理工具 大小只有1KB pinia 模块化设计
  • 深入理解Spring的事务传播行为

    前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为 事务传播行为是Spring框架独有的事务增强特性 它不属于的事务实际提供方数据库行为 这是Spring为我们提供的强大的工具箱 使用事务传播行
  • JAVA练习(3)

    模拟双色球生成案例 需求 体彩中有一项是双色球 要求在1 33号共33个红色球里选出6个 1 16号共16个蓝色球中选出一个作为中奖号码 请实现这个需求 分析 1 定义两个方法来输出红色球和蓝色球 2 需要从33个红色球中选出6个 所以不能
  • element ui 弹出组件的遮罩层以及多层遮罩解决办法

    做项目中遇到几次弹出框遮罩层的问题 有嵌套的 弹出框 还有单页面中tabs标签页的弹出框 今天就说一下tabs中的弹出框遮罩层的问题 这个页面有五个tabs页签 每一个都有弹出框组件 也就是说每一个都有遮罩层 很有趣的问题 我在第五个tab
  • 神经网络学习小记录71——Tensorflow2 使用Google Colab进行深度学习

    神经网络学习小记录71 Tensorflow2 使用Google Colab进行深度学习 注意事项 学习前言 什么是Google Colab Colab官网 利用Colab进行训练 一 数据集与预训练权重的上传 1 数据集的上传 2 预训练
  • 相机的运动

    using UnityEngine using System Collections using System Collections Generic using DG Tweening using UnityEngine EventSys
  • 数字基带信号(单极性归零、单极性不归零、双极性归零和双极性不归零)波形仿真设计(matlab)

    一 实验目的 了解数字基带信号 单极性归零 单极性不归零 双极性归零和双极性不归零 波形的特点 掌握利用matlab产生数字基带信号的方法 二 实验任务 产生1000个随机信号序列 分别用单极性归零 单极性不归零 双极性归零和双极性不归零码