Matlab通信仿真系列——离散信号和系统

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
在这里插入图片描述
本节目录

一、离散信号
1、离散信号定义
2、抽样周期与抽样范围
3、信号相加、相乘、卷积和
二、离散时间系统
三、Matlab源码
(1)信号相加、相乘、卷积和源码
(2)离散时间系统源码

本节内容
一、离散信号
1、离散信号定义

通常一个信号x(t)可以用来表示连续时间信号(模拟信号),也可以用来表示离散时间信号(数字信号)。
离散信号x(t),t表示在时间轴上的离散点上的取值,可以表示为nTs,其中Ts表示相邻两个点之间的时间间隔,也就是所谓的抽样周期,n取整数。
x(nTs)=-N1,…,-1,0,1…,N2,其中N1,N2是n的取值范围,Ts归一化为1,则x(nTs)=x(n)。
在上述关系式中,由于x(n)仅是整数n的函数,故我们将x(n)称为离散时间序列。
2、抽样周期与抽样范围
从图中可以看出抽样周期越小,对应的采样点越多,采样精度也就越高。
初学者注意:
stem(t1,x1)是以t1的数据为横坐标,x1的数据为纵坐标。

matlab代码示例:
一个正弦函数sin2t,
分别以0.01s和0.1s的抽样周期,
在π和2π范围抽样。

在这里插入图片描述
在这里插入图片描述

3、信号相加、相乘、卷积和
卷积和是求离散线性移不变系统输出响应的主要方法。
x(n)和h(n)的卷积和定义公式:
在这里插入图片描述
当序列n=0时,序列h(-m)是序列h(m)的时序取反的结果,时序取反使得h(m)以纵轴为中心翻转180°,相乘后求和的计算称为卷积和。
一般情况下,当x(n)及h(n)的离散序列长度分别为N1、N2时,卷积y(n)的长度则为N1+N2-1。
在这里插入图片描述
使用卷积和函数conv(x,y)可以求解两个序列的卷积和

matlab代码示例:
信号x1(n)=sin(2π×0.1n)
信号x2(n)=exp(-0.1n)
信号x3(n)=exp(-0.2n)
其中0≤n≤40
求x1(n)+x2(n);x1(n)×x2(n);x2(n)*x3(n)

在这里插入图片描述
在这里插入图片描述

对于卷积和的理解,从y4=conv(x2,x4),可以看出来将x2关于y轴对称翻转,然后不断右移,与x4=1/2的交点构成面积为卷积和。
二、离散时间系统
一个离散时间系统,抽象看作一种变换或者一种映射,把输入序列x(n)变换为输出序列y(n),即y(n)=T[x(n)].
在这里插入图片描述

matlab代码示例:
一个离散时间系统输入和输出关系为
y(n)=0.5y(n-1)+x(n)
不同输入激励x1和x2下的输出响应

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从上图Y可以看出来,卷积和的序列为1,3,7,7,7,7,6,4
有两种方式计算有限序列的卷积和,结果相比一致。
在这里插入图片描述

三、Matlab源码
(1)信号相加、相乘、卷积和源码

clear all;
n=0:40;             %离散序列的抽样范围
x1=sin(2*pi*0.1*n);
x2=exp(-0.1*n);
x3=exp(-0.2*n);
x4=1/2;
y1=x1+x2;           
y2=x1.*x2;          %x1与x2相乘,“.*”表示点乘
y3=conv(x2,x3);     %x2与x3卷积和
y4=conv(x2,x4);     %x2与x4卷积和
subplot(8,1,1);
stem(x1);
title('x1');
subplot(8,1,2);
stem(x2);
title('x2');
subplot(8,1,3);
stem(y1);
title('y1=x1+x2');
subplot(8,1,4);
stem(y2);
title('y2=x1.*x2');

subplot(8,1,5);
stem(x2);
title('x2');
subplot(8,1,6);
stem(x3);
title('x3');
subplot(8,1,7);
stem(y3);
title('y3=conv(x2,x3)');
subplot(8,1,8);
stem(y4);
title('y4=conv(x2,x4)');

(2)离散时间系统源码

clear all;
N=100;
x1=zeros(1,N);
x1(1)=1;
x2=zeros(1,N);
x2(1:41)=exp(-0.1*(0:40));
y1(1)=x1(1);
y2(1)=x2(1);
for n=2:N
    y1(n)=0.5*y1(n-1)+x1(n);
    y2(n)=0.5*y2(n-1)+x2(n);
end
figure;
subplot(4,1,1);
stem(x1);
title('x1');
subplot(4,1,2);
stem(x2);
title('x2');
subplot(4,1,3);
stem(y1);
title('y1');
subplot(4,1,3);
stem(y2);
title('y2');
figure;
x3=ones(1,6);
b=[1,2,4]
y3=conv(x3,b);
subplot(3,1,1);
stem(x3);
title('x3');
subplot(3,1,2);
stem(b);
title('b');
subplot(3,1,3);
stem(y3);
title('y3');

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

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

相关文章

pairplot

Python可视化 | Seaborn5分钟入门(七)——pairplot - 知乎 (zhihu.com) Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,不需…

喜报|AIRLOOK荣获“创客北京2023”创新创业大赛企业组三等奖

“创客北京2023”创新创业总决赛圆满落幕,埃洛克航空科技(北京)有限公司,(以下统称AIRLOOK)首次参赛即从几千家企业中脱颖而出,荣获大赛企业组三等奖。 自2016年开始,“创客北京”大…

U-Boot 之九 详解 Pinctrl 子系统、命令、初始化流程、使用方法

嵌入式芯片中,引脚复用是一个非常常见的功能,U-Boot 提供一个类似 Linux Kernel 的 Pinctrl 子系统来处理引脚复用功能。正好最近用到了这部分功能,需要移植 Pinctrl 驱动,特此记录一下学习过程。 架构 U-Boot 提供一个类似 Linux Kernel 的 Pinctrl 子系统,用来统一各芯…

内测分发平台如何保护用户隐私?

大家好,我是咕噜-凯撒,在软件开发的早期阶段,内测是一个至关重要的步骤。通过内测,开发者可以在产品正式上市前发现并修复bug,获取用户反馈优化用户体验。但是内测过程中往往会处理大量用户的敏感信息,尤其…

文献速递:非专业任务医生在审查X光片时受益于正确的可解释人工智能建议

非专业任务医生在审查X光片时受益于正确的可解释人工智能建议 01****文献速递介绍 本文主要探讨了人工智能(AI)在放射学中的应用,特别是在胸部X光片的诊断中AI临床决策支持系统(AI-CDSS)的作用。研究发现&#xff0c…

Java核心知识点整理大全10-笔记

往期快速传送门: Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客文章浏览阅读9w次,点赞7次,收藏7次。Java核心知识点整理大全https://blog.csdn.net/lzy302810/article/details/132202699?spm1001.2014.3001.5501 Java核心知识点整理…

多模态——使用stable-video-diffusion将图片生成视频

多模态——使用stable-video-diffusion将图片生成视频 0. 内容简介1. 运行环境2. 模型下载3. 代码梳理3.1 修改yaml文件中的svd路径3.2 修改DeepFloyDataFiltering的vit路径3.3 修改open_clip的clip路径3.4 代码总体结构 4. 资源消耗5. 效果预览 0. 内容简介 近期,…

[Latex] Riemann 问题中的激波,接触间断,膨胀波的 Tikz 绘图

Latex 代码 \begin{figure}\begin{subfigure}[b]{0.32\textwidth}\centering\resizebox{\linewidth}{!}{\begin{tikzpicture}\coordinate (o) at (0,0);\coordinate (Si) at (2.5,2.5);\coordinate (x) at (1,0);\draw[->] (0,0) -- (3,0) node[right] {$x$};\draw[->] …

Java对象逃逸

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览三、相关知识3.1 逃逸…

FreeRTOS深入教程(信号量源码分析)

文章目录 前言一.创建信号量二.释放信号量三.获取信号量成功获取获取不成功 总结 前言 本篇文章将为大家讲解信号量,源码分析。 在 FreeRTOS 中,信号量的实现基于队列。这种设计的思想是利用队列的特性来实现信号量,因为信号量可以被视为只…

路由VRRP配置例子

拓朴如下: 主要配置如下: [R1] interface GigabitEthernet0/0/0ip address 10.1.1.1 255.255.255.0 vrrp vrid 1 virtual-ip 10.1.1.254vrrp vrid 1 priority 200vrrp vrid 1 preempt-mode timer delay 20 # interface GigabitEthernet0/0/1ip address …

分布式事务总结

文章目录 一、分布式事务基础什么是事务?本地事物分布式事务分布式事务的场景 二、分布式事务解决方案全局事务可靠消息服务TCC 事务 三、Seata 分布式事务解决方案3.1 Seata-At模式3.2 秒杀项目集成 Seata启动 Seata-Server项目集成seata配置AT模式代码实现 3.3 Se…

【自主探索】基于 frontier_exploration 的单个机器人自主探索建图

文章目录 一、概述1、功能2、要求 二、使用方法1、用于运行演示2、用于开发人员2.1. 探索无/地图数据2.2. 使用 /map 数据进行探索 三、提供的组件1、explore_client1.1. 调用的操作1.2. 订阅主题1.3. 发布主题 2、explore_server2.1. 提供的操作2.2. 调用的操作2.3. 调用的服务…

AMESim与MATLAB联合仿真demo

本文是AMESim与MATLAB联合仿真的demo,记录一下如何进行联合仿真。 AMESim与MATLAB联合仿真可以大幅度提高工作效率。 author:xiao黄 缓慢而坚定的生长 csdn:https://blog.csdn.net/Python_Matlab?typeblog主页传送门 博主的联合仿真环境如下&#xff…

闲人闲谈PS之四十七——PS顾问能力评价参考标准

惯例闲话:逝者如斯夫,一晃2023年进入年尾,初步盘点下今年做的事情,还真不少,PLM项目、接口开发、扫码系统、数字彩虹图、专利申请…闲人发现,不经意间,SAP从自己的主营业务中占据的比重已经越来…

【21年扬大真题】编写程序,去除掉字符串中所有的星号。

【21年扬大真题】 编写程序&#xff0c;去除掉字符串中所有的星号。 int main() {int i 0;int j 0;char arr[30] {0};char brr[30] {0};printf("请输入一个字符串:");gets(arr);for (i 0;i < 30;i){if (arr[i] ! *) {brr[j] arr[i];j;}}int tmp j;for (i …

Nginx模块开发之http handler实现流量统计(2)

文章目录 一、概述二、Nginx handler模块开发2.1、代码实现2.2、编写config文件2.3、编译模块到Nginx源码中2.4、修改conf文件2.5、执行效果 总结 一、概述 上一篇【Nginx模块开发之http handler实现流量统计&#xff08;1&#xff09;】使用数组在单进程实现了IP的流量统计&a…

【ArcGIS Pro微课1000例】0036:栅格影像裁剪与提取(矢量范围裁剪dem高程数据)

本实验讲解在ArcGIS Pro中进行栅格影像裁剪与提取(矢量范围裁剪dem高程数据)的方法。DEM、DOM、DSM等栅格数据方法也可以实现。 文章目录 一、加载实验数据二、裁剪工具的使用1. 裁剪栅格2. 按掩膜提取一、加载实验数据 加载配套实验数据包中的0036.rar中的dem数据和矢量裁剪…

网工内推 | 美的、得力集团,包吃包住,IE认证优先,14薪

01 美的 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1.负责IT网络设备、IDC机房的日常维护巡检、监控和管理&#xff1b; 2.负责路由、交换、防火墙、无线控制器、AP等网络设备的开通、调整、优化升级&#xff1b; 3.负责公司OT、IT网络规划&#xff0c;项目实施以…

N-134基于java实现捕鱼达人游戏

开发工具eclipse,jdk1.8 文档截图&#xff1a; package com.qd.fish;import java.awt.Graphics; import java.io.File; import java.util.ArrayList; import java.util.List;import javax.imageio.ImageIO;public class Fishes {//定义一个集合来管理鱼List<Fish> fish…