基于matlab的线性卷积演示系统

文章目录

  • 前言
  • 1. 卷积的简单介绍
    • 1.1 翻褶
    • 1.2 移位
    • 1.3 相乘
    • 1.4相加
    • 1.5 整体的运行效果展示
  • 2.App Designer的介绍
  • 3.具体的开发步骤
    • 3.1 声明成员变量
    • 3.2 设计基本布局
    • 3.3 编写回调函数
  • 4.运行展示
  • 结语

前言

本篇文章按照如下要求,完成线性卷积演示系统
(1)用matlab完成线性卷积的计算过程,并绘图;
(2)使用GUI/app design设计一个线性卷积的基本演示系统;要求两个卷积信号的参数可以自由给定;设计框图中直接包含“计算按钮”,直接计算卷积结果;
(3) 分析卷积计算结果。

1. 卷积的简单介绍

卷积包括四个步骤,翻褶移位相乘相加四个步骤,下面是对具体步骤的演示

1.1 翻褶

首先,我们定义了一个x=[1 2 3 4 5]的一个向量,通过fliplr()函数将序列进行翻褶得到 [5 4 3 2 1]

在这里插入图片描述
在实际中,我们需要对下标也进行翻褶,如图所示

stem(0:length(x)-1,x,"filled")
stem(-(length(x)-1):0,fliplr(x),"filled")

运行结果:
原序列:
在这里插入图片描述

翻褶后的序列:
在这里插入图片描述
当然也可以画在一个figure

1.2 移位

翻褶过后根据n值进行移位。
n<0,向左移位;n>0,向右移位
具体移位效果需要根据另一个序列的起始下标和翻褶后的下标共同来决定
这里制作效果展示,具体代码运行不做解释,因为本项目直接使用conv()函数求卷积结果
在这里插入图片描述

1.3 相乘

x(m)*h(n-m)

1.4相加

将每次的n值相乘的结果进行累加

1.5 整体的运行效果展示

这里只是为了更好的解释卷积过程
在这里插入图片描述

2.App Designer的介绍

App Designer 是 MATLAB 中用于创建图形用户界面(GUI)应用程序的一个集成开发环境(IDE),它提供了一种直观且高效的方式来设计、开发和部署具有交互功能的 MATLAB 应用程序。
本项目使用App Designer进行可视化,具体的使用方法不做介绍

3.具体的开发步骤

3.1 声明成员变量

min1,min2:表示序列的起始下标
max1, max2:表示序列的终止下标
y1, y2:表示两个参与卷积的序列

properties (Access = private)Property % Descriptionmin1,min2,max1,max2,y1,y2;end

3.2 设计基本布局

直接从组件库将需要的进行拖拽即可
在这里插入图片描述

3.3 编写回调函数

本项目的回调函数编写在下拉框中,即在下拉框中选择函数过后即可在相应坐标轴上显示,当然在此之前需要对参数赋初值,不过我们也实现了一定的交互性,会出现报错提示窗
在这里插入图片描述
回调函数:

        function xDropDownValueChanged(app, event)value = app.xDropDown.Value;a=app.aEditField.Value;b=app.bEditField.Value;x=-2:5;app.min1=-2;app.max1=5;% valueif isempty(a)||isempty(b)errordlg("请先输入参数!!!");return;endswitch valuecase "正弦型序列y=a*sin(b*x)"app.y1=a*sin(b*x);case "指数衰减函数y=a*exp(-b*t)"app.y1=a*exp(-b*x);case "无"errordlg("请选择函数","错误提示窗口");return;end stem(app.UIAxes,x,app.y1,"filled","r");end

此时,就能在app.UIAxes坐标中画出y1序列,起始坐标为-2:5
同理在另一个下拉文本框中编写回调函数

function xDropDown_2ValueChanged(app, event)value = app.xDropDown_2.Value;% value = app.xDropDown.Value;a=app.aEditField_2.Value;b=app.bEditField_2.Value;if isempty(a)||isempty(b)errordlg("请先输入参数!!!");return;endswitch valuecase "矩形门:a,b分别表示上下界"x=a:b;app.min2=a;app.max2=b;if a>berrordlg("a应当小于b","错误提示窗");return;endapp.y2=ones(b-a+1,1);case "高斯门:y=exp(-(x-a).^2/b)"x=0:1:7;app.min2=0;app.max2=7;app.y2 = exp(-(x - a).^2 / (b * b));case "无"errordlg("请选择函数","错误提示窗口");return;end stem(app.UIAxes_2,x,app.y2,"filled","b");end

此时,就能在app.UIAxes_2坐标中画出y2序列,起始坐标为0:7(选择高斯门函数),起始坐标为a:b(选择门函数)

卷积结果(编写在计算按钮的回调函数中):

function ButtonPushed(app, event)% app.y1% app.y2if isempty(app.y1) || isempty(app.y2)errordlg("请选择合适的函数!");return;endh=conv(app.y1,app.y2);n=app.min1+app.min2:1:app.max1+app.max2;stem(app.UIAxes_3,n,h,"filled");msgbox("绘制完成","help");end

4.运行展示

展示了运行的结果,以及一定的交互性在这里插入图片描述

结语

本篇博客中的代码资源已上传至个人资源中,有需要自行获取,也可以关注私聊我获取。同时本篇博客可能内容有些内容理解有些错误,欢迎批评指正!!!

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

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

相关文章

如何在Linux命令行中使用GhatGPT

2、验明正身&#xff0c;证明我的所在地是国内 3、第一次提问 4、第二次提问 5、问他一首古诗 6、话不多说&#xff0c;现在来展示他的安装过程 7、输入GitHub的网址 https://github.com/aandrew-me/tgpt 8、详情页向下翻 9、到终端输入 下列命令&#xff0c;等待安装&#x…

java并发编程-volatile的作用

文章目录 volatile的作用1.改变线程间的变量可见性2.禁止指令重排序 参考的学习视频 volatile的作用 1.改变线程间的变量可见性 每个线程都有一个专用的工作集内存&#xff0c;下图里面粉色的表示专用工作集内存&#xff0c;黄色的是共享内存工作区&#xff0c;如果加入了vol…

linux中级(防火墙firewalld)

一。firewalld与iptables区别1.firewalld可以动态修改单条规则&#xff0c;不需要像iptables那样&#xff0c;修改规则后必须全部刷新才可生效。firewalld默认动作是拒绝&#xff0c;则每个服务都需要去设置才能放行&#xff0c;而iptables里默认是每个服务是允许&#xff0c;需…

C#/.NET/.NET Core学习路线集合,学习不迷路!

前言 C#、.NET、.NET Core、WPF、WinForm、Unity等相关技术的学习、工作路线集合&#xff08;持续更新&#xff09;&#xff01;&#xff01;&#xff01; 全面的C#/.NET/.NET Core学习、工作、面试指南&#xff1a;https://github.com/YSGStudyHards/DotNetGuide C#/.NET/.N…

Linux 实例:无法通过 SSH 方式登录

现象描述 使用 SSH 登录 Linux 实例 时&#xff0c;提示无法连接或者连接失败&#xff0c;导致无法正常登录 Linux 实例。 现象描述 处理措施 SSH 登录报错 User root not allowed because not listed in AllowUsers 排查 SSH 登录报错 User root not allowed because not …

后端Java学习:springboot之文件上传(阿里云OSS存储)

一、什么是阿里云存储&#xff1f; 阿里云对象存储OSS&#xff08;Object Storage Service&#xff09;&#xff0c;是一款海量、安全、低成本、高可靠的云存储服务。使用OSS&#xff0c;您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种文件。 二、阿里云…

当下的力量:拥抱自我与持续学习的旅程

许多人被无尽的选择与信息所淹没&#xff0c;常常感到迷茫与焦虑。然而&#xff0c;真正的力量来自于对当下的专注&#xff0c;以及对自我的深刻理解与不断提升。如何在喧嚣中找到内心的宁静&#xff1f;如何在复杂的世界中坚持学习与成长&#xff1f;这不仅是一个时代的问题&a…

【android12】【AHandler】【3.AHandler原理篇AHandler类方法全解】

AHandler系列 【android12】【AHandler】【1.AHandler异步无回复消息原理篇】-CSDN博客 【android12】【AHandler】【2.AHandler异步回复消息原理篇】-CSDN博客 其他系列 本人系列文章-CSDN博客 1.简介 前面两篇我们主要介绍了有回复和无回复的消息的使用方法和源码解析&a…

GPRS是什么?

‌GPRS&#xff08;General Packet Radio Service&#xff09;‌是一种基于GSM&#xff08;Global System for Mobile Communications&#xff09;系统的无线分组交换技术&#xff0c;提供端到端的广域无线IP连接。与传统的GSM系统不同&#xff0c;GPRS采用分组交换技术&#x…

flutter 专题二 Flutter状态管理之Riverpod 0.8.4

一 、flutter 有哪些状态管理方式 Flutter的状态管理方式有很多&#xff0c;Redux、 Bloc、 MobX、Provider等等。单单一个Provider&#xff0c;我也见到了各种组合&#xff0c;例如ChangeNotifier Provider / StateNotifier Provider&#xff08; freezed&#xff09;。各…

海风里的青春:海滨学院班级回忆录开发

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

ts:用加减乘除方法配合展示类的继承(extends)

ts&#xff1a;用加减乘除方法配合展示类的继承&#xff08;extends&#xff09; 1 主要内容说明2 例子2.1 基类的创建2.1.1 源码1 &#xff08;基类的创建&#xff09;2.1.2 源码1运行效果 2.2 继承基类的参数和方法2.2.1 源码2&#xff08;继承基类的参数和方法&#xff09;2…

Minio 之 内网项目托管Unity Android包体

什么是 MinIO&#xff1f; MinIO 是一个开源的对象存储服务器&#xff0c;旨在提供高性能、高可用性和高扩展性的存储解决方案。它兼容 Amazon S3 API&#xff0c;适用于各种场景&#xff0c;如数据备份、数据归档、大数据分析和机器学习等。 主要特点 兼容性&#xff1a; Mi…

Java中的容器及其区别

|Collection |  ├List |  │-├LinkedList |  │-├ArrayList |  │-└Vector |  │ └Stack |  ├Set |  │├HashSet |  │├TreeSet |  │└LinkedSet | |Map   ├Hashtable   ├HashMap   └WeakHashMap 1、Java中的容器 Java容器类…

论文阅读- --DeepI2P:通过深度分类进行图像到点云配准

目前存在的问题&#xff1a; 单模态配准具有局限性&#xff0c;多模态研究很少跨模态图像到点云配准问题是求解相机坐标系与点云之间的旋转矩阵R ∈ SO(3)和平移向量t ∈ R3。 这个问题很困难&#xff0c;因为由于缺乏点到像素的对应关系&#xff0c;无法使用 ICP、PnP 和捆绑调…

大厂面试真题-如果使用guava limiter实现实例级别的缓存

Guava库中的RateLimiter和Cache是两个不同的组件&#xff0c;分别用于控制访问频率和实现缓存功能。RateLimiter用于流量控制&#xff0c;确保系统在处理请求时不会超过指定的速率&#xff0c;而Cache则用于存储数据以加快访问速度。 由于RateLimiter本身并不直接支持实现缓存…

Air780E如何发送SMS?一文详解!

今天一起来学习使用合宙低功耗4G模组Air780E发送SMS短消息&#xff1a; 一、SMS简介 SMS&#xff08;短消息服务&#xff0c;ShortMessageService&#xff09;功能主要用于在蜂窝网络中传输短消息。 在4G网络中&#xff0c;短信可以在数据传输的同时进行&#xff0c;不会因数…

【TC3xx芯片】TC3xx芯片PFlash的ECC校验问题补充

目录 前言 正文 1.PFlash的ECC监控l 1.1. PFlash的监控使能 1.2. PFlash的故障注入 2.DFlash的ECC监控 2.1. DF0 ECC Read Register 2.2. DF0 ECC Status Register 2.3. DF0 ECC Control Register 2.4. DF0 ECC Write Register 2.5. DF0 User Mode Control 3.总结 …

Centos 7系统一键安装宝塔教程

服务器推荐青鸟云服务器&#xff0c;2H2G低至16元/月 官网地址&#xff1a; 所有产品_香港轻量云 2核 2G-A型_青鸟云 推荐Finalshell软件连接至服务器&#xff0c;下载地址&#xff1a; https://dl.hostbuf.com/finalshell3/finalshell_windows_x64.exe 下载完成后连接服务…

知识吾爱纯净版小程序系统 leibiao SQL注入漏洞复现(XVE-2024-30663)

0x01 产品简介 知识吾爱纯净版小程序系统是一款基于微信小程序平台开发的知识付费应用,旨在帮助用户快速建立自己的知识付费平台,实现支付变现和流量主收益。它提供了简洁明了的用户界面和良好的用户体验,同时注重用户隐私保护,确保用户信息的安全存储和传输。 0x02 漏洞…