matlab学习001-简单的矩阵输入及绘制信号曲线

news2024/11/26 15:46:35

目录

1,熟悉简单的矩阵输入

1.1,创建矩阵

1.2,在命令行调用文件中的变量

1.3,ones函数

1.4,who和whos的使用

2,绘制信号曲线 

2.1,实指数信号 

2.2,频率为50Hz的周期方波信号

2.3,信号卷积 *

2.4,产生从-4π到4π的Sa(t)函数

2.5,阶跃信号u(t)

2.6,g(t)=u(t)-u(t-1)

2.7,冲激信号δ(t)

1)stem函数

2.8,u(n-3)

2.9  冲击序列δ(n)


1,熟悉简单的矩阵输入

1.1,创建矩阵

在命令窗口输入矩阵A=[123;456;789]或A=[1,2,3;4,5,6;7,8,9]观察输出结果。

  

观察结果,可知:

经观察可以发现,在创建矩阵的时候如果不在每列数字中间加上逗号或者是空格,那么每一列都会很紧凑的挨在一起。如果不想要使用逗号的话,可以直接使用空格键,让每列分开。

用回车代替矩阵里面的分号,观察输出结果。

观察结果,可知:

输出依旧能够实现矩阵的样式,且更加方便,不用写分号。唯一不足就是定义矩阵的时候占用的行过多,不利于观察。我还是比较喜欢使用分号来分开每一行。

1.2,在命令行调用文件中的变量

选择Filenew菜单中的M-file,输入B=[9,8,7;6,5,4;3,2,1]

保存为B1.m文件,退出编辑环境。此时在命令窗口中使用B1命令就

可调出B矩阵。

需要注意的是,变量名和脚本名不能同名,不然就会无法识别。

如果B1.m文件不在project工程目录下,就会有如下结果:

这个时候可以直接使用window自带的拖拽功能,直接将文件拖拽到project目录下即可。

1.3,ones函数

输入x=ones(3,4),观察输出结果。

观察结果:

Ones有1的意思,在创建矩阵时,会用1来填充矩阵的所有行和列。

1.4,who和whos的使用

输入who和whos观察结果,了解其作用。

 观察结果并了解到其作用:

who只是简单的列出了同一个工程下所有文件的变量名。

whos相比于who列出的信息更详细,如:该变量的名字,大小,类型和所占的字节。

2,绘制信号曲线 

2.1,实指数信号 

%f(t)=3e-t;
%(t>0(取适当的△t)
dt=0.01;
t=0:dt:5;
y=3*exp(-t);
plot(t,y);

 产生3-e^(-t)的信号

%f(t)=3-e-t;
%(t>0(取适当的△t)
dt=0.01;
t=0:dt:5;
y=3-exp(-t);   % exp表示以常数e为底的指数函数
plot(t,y);

2.2,频率为50Hz的周期方波信号

dt=0.001;    % 采样间隔为0.001s
t=0:dt:1;
y=square(2*pi*50*t);
plot(t,y);
axis([0,0.1,-1.1,1.1]);
title('·½²方波');
xlabel('时间/s');
ylabel('幅度/db');
axis manual;

axis - 设置坐标轴范围和纵横比。此 MATLAB 函数 指定当前坐标区的范围。以包含 4 个、6 个或 8 个元素的向量形式指定范围。

2.3,信号卷积 *

%f(t)=e^(-t)  % 实指数信号
%sin(2лt)(0<t<3)
dt=0.01;
t=0:dt:5;
y=exp(-t).*sin(2*pi*t);  % exp表示以常数e为底的指数函数
plot(t,y);

2.4,产生从-4π到4π的Sa(t)函数

%f(t)=sa(t); 样本函数
%(t>0(取适当的△t)
dt=0.001;
t=-4*pi:dt:4*pi;
y=sin(t)./t;
plot(t,y);

2.5,阶跃信号u(t)

t=-1:0.01:3;
f=heaviside(t);
plot(t,f);
axis([-1 3 -0.1 1.2]);

在Matlab中,heaviside函数用于计算阶跃函数。这个函数以0为分界点,当函数的自变量小于0时返回0,当自变量等于0时返回0.5,当自变量大于0时返回1。例如,heaviside(2)返回1,heaviside(-3)返回0, heaviside(0)返回0.5。 

2.6,g(t)=u(t)-u(t-1)

依旧可以使用heaviside函数来生成u(t-1),如下👇 

t=0:0.01:3;
f1=heaviside(t);  % u(t)
f2=heaviside(t-1);% u(t-1)
g=f1-f2;          % u(t)-u(t-1)
plot(t,g);
axis([0 3 -2 2]);

 如果想要绘制u(t-2)的信号,可以用heaviside(t-2)。

2.7,冲激信号δ(t)

t = (-1:0.0001:1);  % 中间的0.0001是采样间隔,也可以理解为采样周期,采样周期越小,采样频率就会越大,得到的图像就越是我们想要的结果
impulse = t==0;     % 冲击信号只有在t=0时才有取值,其它部分值为0
plot(t,impulse);

1)stem函数

stem函数主要用于绘制离散序列,而plot用于绘制连续信号。如下,我先用stem函数来绘制离散的正弦信号,👇 

x=0:0.1:2*pi;
y=sin(x);
stem(y,"filled");

 对应的效果如下图:

 如果我用plot函数来代替stem函数,得到的就是下图:

2.8,u(n-3)

绘制u(x-3)延迟阶跃信号有两种方法,一种是使用heaviside函数,另外一种就是使用表达式,如下,都可以得到图中的信号图👇

t=0:0.001:6;
y=heaviside(t-3);  % 使用heaviside函数绘制阶跃信号
%y=(t>3);  % 阶跃信号只有在指定初始位置之后才有值,之前的值为0
plot(t,y);

如果觉得y轴太“矮”,想要自定义高度,也可以,我就需要使用到之前的axis坐标轴函数来设置x和y相应的坐标,如下👇

t=0:0.01:6;
%y=heaviside(t-3);  % 使用heaviside函数绘制阶跃信号
y=(t>=3);  % 阶跃信号只有在指定初始位置之后才有值,之前的值为0
plot(t,y);
axis([-1 6 0 2]);

如果想要离散的时间序列,可以将plot函数替换成stem函数,如下👇

n=0:0.001:6;
y=heaviside(n-3);  % 使用heaviside函数绘制阶跃信号
%y=(n>3);  % 阶跃信号只有在指定初始位置之后才有值,之前的值为0
%plot(n,y);
stem(n,y);  % 绘制离散序列

因为在对连续时间信号进行抽样时,我使用的是按照采样周期0.001来进行采样,所以,就会显示出有无数多个单位冲击序列组成的单位阶跃序列,如果放大蓝色区域就可以看到冲击序列,如下图👇

如果不想要那么密集的显示,可以将采样周期删除掉,如下图👇

2.9  冲击序列δ(n)

n=-1:3;
y=(n==0);
stem(n,y);

有问题请在评论区留言或者是私信我,一天8h在线。

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

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

相关文章

win11系统和ubuntu双系统首次连接网线上网流程

硬件准备 首先需要将网线连接到电脑&#xff0c;另一头可以连接交换机或者路由器 上网前需要拨号上网&#xff0c;如果是连的路由器&#xff0c;那么一台路由器上拨号一次就行了。 如果是连的交换机需要拨号上网 这里踩的第一个坑是刚开始电脑连的是交换机1又连的交换机2&…

Cali Linux上的PoshC2安装和使用

一、安装PoshC2 curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install-for-Docker.sh | sudo bash二、创建工程 posh-project -n test三、修改配置文件 posh-config将图中的baidu.com改为自己要攻击的域名或者IP地址 四、执行 posh-server 显示没…

苍穹外卖10(Spring Task定时任务,WebSocket双向通信,订单状态定时处理,来电提醒,客户催单)

目录 一、Spring Task 1. 介绍 2. 入门 1 使用步骤 2 使用示例 3. 详解 1 Scheduled注解 2 cron表达式 1 cron表达式6个域 2 各个域的取值说明 4. 小结 二、订单状态定时处理 1. 需求分析 1 问题分析 2 功能需求 2. 代码开发 1 修改引导类加EnableScheduling …

stm32GPO的相关操作

GPIO的使用 1.GPIO八种工作模式1.1 上拉输入1.2 下拉输入1.3 浮空输入1.4 模拟输入1.5 推挽输出1.6 开漏输出1.7 复用推挽输出1.8 复用开漏输出 2.相关寄存器2.1 寄存器配置IO 3.相关库函数 1.GPIO八种工作模式 保护二极管的作用&#xff1a;用来保护IO&#xff0c;一般情况IO的…

图书馆自助借书机怎么借书

图书馆自助借书机借书流程如下&#xff1a; 1. 找到图书馆自助借书机&#xff0c;在机器上选择借书功能。 2. 输入自己的借书卡号或者身份证号码&#xff0c;如果是第一次借书&#xff0c;可能需要进行注册。 3. 输入图书的条形码号码&#xff0c;可以通过扫描条形码或者手动输…

Verilog语法——按位取反“~“和位宽扩展的优先级

前言 先说结论&#xff0c;如下图所示&#xff0c;在Verilog中“~ ”按位取反的优先级是最高的&#xff0c;但是在等式计算时&#xff0c;有时候会遇到位宽扩展&#xff0c;此时需要注意的是位宽扩展的优先级高于“~”。 验证 仿真代码&#xff0c;下面代码验证的是“~”按位取…

2024年上半年WSK-PETS5报名及考试时间公布

4月1日&#xff0c;中国教育考试网发布了2024年上半年全国外语水平考试WSK&#xff08;PETS5&#xff09;的报名及考试通知&#xff0c;为方便关注者&#xff0c;知识人网小编特做全文转载。 国家公派留学人员全国外语水平考试&#xff08;WSK-PETS5&#xff09;成绩作为国家留…

蓝桥杯刷题 深度优先搜索-[NewOJ P1158]N皇后(C++)

题目描述 n皇后问题&#xff1a;n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 上面布局用序列2 4 6 1 3 5表示&#xff0c;第i个数字表示第i行皇后放的列号。 按照这种格式输出前3个解&#xff0c;并统计总解数。 输入格式 输入一个正整数n&a…

memcached集群

一、介绍 memcache本身没有像redis所具备的数据持久化功能&#xff0c;但是可以通过做集群同步的方式&#xff0c;让各memcache服务器的数据进行同步&#xff0c;从而实现数据的一致性&#xff0c;即保证各memcache的数据是一样的&#xff0c;即使有任何一台memcache发生故障&…

CTK插件框架学习-服务工厂(06)

CTK插件框架学习-信号槽(05)https://mp.csdn.net/mp_blog/creation/editor/137240105 一、服务工厂定义 注册插件时使用服务工厂注册&#xff0c;使用getService根据调用者插件资源文件内容获取在服务工厂内的对应实现在服务工厂中可以知道是哪个插件正在调用服务工厂懒汉模式…

Java数组详解

​TOC 第一章、数组的概念介绍 1.1&#xff09;数组的概念 ①数组就是用来储存数据的容器,可以存储同一种类型的数据&#xff0c;是同一种数据类型的集合。实现对这些数据的统一管理。如果数组中存储的是基本类型数据&#xff0c;我就不能往里面存引用类型数据。数组中存储的…

Java-Tomcat

一、web补充技术 ①&#xff1a;B/S架构 主流的方式&#xff0c;只要有浏览器即可。编程方式直接基于socket即可 ②&#xff1a;javascript 简称js&#xff0c;早期只是实现在客户端的浏览器的动态效果&#xff0c;但服务端不会解释运行&#xff0c;所以本质上是静态资源。 …

峥嵘九载,逐云而上:青果乔迁新址,乘风破浪再起新篇

4月1日&#xff0c;近百名员工和诸多合作伙伴齐聚&#xff0c;共同见证了青果九周年庆典暨乔迁仪式这一里程碑式的时刻。 新起点&#xff0c;新征程&#xff0c;再启航&#xff01; 以新为序&#xff0c;共赴新征程 在典礼上&#xff0c;青果创始人和高管分别发表了致辞&#…

python实现OCR:pytesseract和pyddleocr(附代码)

文章目录 背景pytesseractpaddleocr百度apipaddleocr 背景 OCR是光学字符识别&#xff08;Optical Character Recognition&#xff09;的缩写&#xff0c;通过扫描等光学输入方式和文字识别将图片中的文字提取出来&#xff0c;非常适用于提取网络截图或扫描pdf等文件里的文本。…

2014最新AI智能系统ChatGPT网站源码+Midjourney绘画网站源码+搭建部署教程文档

一、文章前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持…

关于OpenFeign的返回类型包装问题

在一天夜里。我在使用feign的调用时&#xff0c;突然出现了一点点问题。 就是对于feign类型的包装问题。产生了疑问。 在后来&#xff0c;也就是今天。在网上取取经。看到了一个答案。说&#xff1a;feign的调用会有一个编码器和解码器。 使用feign的解码器。他的原理也很简…

c++有趣代码(游戏)(续集)

19.忍者三(参考:c++高级游戏集游戏_c++游戏库-CSDN博客) #include<bits/stdc++.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<time.h> #define Nor if(B[b].x<5) B[b].x=5; #define Out1 Bx1-

【JavaEE框架技术】spring-1

目录 一、使用maven管理spring项目 1.1搭建开发环境 1.1.1修改settings.xml文件 1.1.2把该文件拷入.m2目录 1.1.3打开ecplise&#xff0c;建立maven项目 1.1.4向pom.xml文件中添加spring的坐标&#xff1a; 1.4.1.1代码含义 1.4.1.2代码说明 1.2创建spring配置文件 二…

7.1.4 Selenium 爬取京东商品信息实战

目录 1、实战内容 2、思路 3、分析 url 4、开始操作 1、得到 Cookies 2、访问页面&#xff0c;得到 response 3、解析页面 4、存入 MySQL 5、1-3步总代码 1、实战内容 爬取京东笔记本电脑商品的信息(如&#xff1a;价格、商品名、评论数量)&#xff0c;存入 MySQL 中…

RAG基础知识及应用

简单介绍下RAG的基础知识和RAG开源应用 “茴香豆" 一. RAG 基础知识 1. RAG工作原理 RAG是将向量数据库和大模型问答能力的有效结合&#xff0c;从而达到让大模型的知识能力增加的目的。首先将知识源存储在向量数据库中&#xff0c;当提出问题时&#xff0c;去向量数据库…