网站首页 > 技术文章 正文
01绘制波形
一、如何绘制波形?
在第一次作业中,有一道习题绘制给定信号数学表达式对应的波形。可以手工绘制,也可以通过计算机来绘制。下面介绍一下,使用Python 语言绘制波形的方法。
二、波形绘制要求
通常情况下,波形可以形象的展示信号的特点。为了准确的传达信号的信息,在绘制波形的时候需要尽可能准确详细地标识出信号波形的图形和参数。首先,为了准确表达信号的特征,选择适当的坐标系。通常情况下,对于时域信号可以选择直角坐标系。对于坐标的变量名称、单位书写清楚。当然,如果信号没有物理量刚,信号的单位可以省略。表明信号幅度以及对应的信号函数名称。标识出波形关键位置的幅度,比如信号波形的极值、 与坐标轴的交点、周期信号的周期等等。尽可能准确绘制出信号随着时间对应的波形变化曲线。使用包络线对于信号整体幅度的变化趋势进行绘制,在具备条件的情况下,需要标识出包络线的变化函数。这里只是介绍了绘制信号波形的一般要求。对于特定信号,根据需求添加更多的说明。
三、绘制连续信号
下面介绍一下绘制连续信号波形的Python程序。第一小题,绘制一个单边指数衰减信号。这里给出了对应的绘制方法。主要使用 matplotlib 中的 plot 函数。前面两个参数给出了信号的自变量和因变量对应的数组。后面是绘制信号波形的宽度。可以在一张图上绘制多条曲线,这个字符串给出了绘制信号曲线的种类,比如这里就是使用红色的点线来绘制信号的波形。使用 xlabel 、ylabel 声明信号的横坐标和纵坐标的名称。使用 axis函数设定绘制坐标系中的上下左右的极限数值。最后,调用 show 函数,显示绘制信号的波形。前面,利用符号函数来声明信号的表达式。最后,通过符号函数中的 subs 函数,将符号函数转换成具体的函数数值。当然,这部分,也可以直接使用numpy
中的数组来生成信号波形数据。
这里显示绘制指数衰减震荡的波形。在图中,绘制了信号本身的波形,还有上下两个包络线。图中的坐标轴、 横坐标和纵坐标的名称等,都是在matplotlib 函数绘制的图像上,通过绘图软件增加的标识。因为直接使用 matplotlib 函数绘制出这些标识语句比较麻烦。
四、绘制离散信号
对于离散时间信号,通常情况下,使用这种火柴棒 的形式来绘制序列的波形。即能够标识出信号的离散性,同时也可以通过实心圆点来表示信号的幅度,对于幅度的变化也能够比较明显的显示出来。下面给出了绘制这种火柴棒对应的Python语句。利用其中的 stem 函数绘制出离散序列的波形。使用 setp 函数,设定实心圆点的尺寸,使得显示出来的离散序列的波形更加的清晰明了。其他的绘制语句,基本上与 plot
函数是相同的,比如设定坐标轴的名称,设定坐标系的范围等等。在这个系统中,为了表明序列是来自对震荡信号的采样,其中使用火柴棒绘制了序列的数值,能够看到这是一个周期序列。同时,使用红色虚线绘制了sine函数的波形。
五、绘制冲激信号
在信号与系统分析中,还有一种冲击信号,使用这种箭头来表示,信号的强度可以与箭头的高度成正比,也可以在箭头旁边使用带有括号的数字表示冲击信号的强度。在 Python语言中,可以使用arrow
函数来绘制这种冲击信号。前面两个参数给出了冲击箭头的起始点,后面两个分别表示箭头在x和y方向上的变化,注明箭头长度包括有箭头本身。后面两个参数表明了箭头的宽度和长度。除此之外,其他部分都和前面绘制连续信号相同。利用这种方法,可以绘制出信号中的冲击信号。
※ 总结 ※
使用计算机辅助绘图,可以让绘制信号波形变得更加轻松,容易。使得我们对于信号本身有了更加直观的认识。比起手工绘制,这样就节省了大量操作时间,而且还不容易出错。因此,掌握好计算机信号绘图的方法,对于学习信号与系统分析非常重要。
参考资料
[1]
信号与系统分析2025(春季)作业参考答案 - 第一次作业: https://blog.csdn.net/zhuoqingjoking97298/article/details/145914184?sharetype=blogdetail&sharerId=145914184&sharerefer=PC&sharesource=zhuoqingjoking97298&spm=1011.2480.3001.8118
[2]
信号与系统2025(春季)作业要求及参考答案汇总: https://zhuoqing.blog.csdn.net/article/details/145879368
猜你喜欢
- 2025-07-23 Flask中使用Blinker实现信号传递(flask传数据给前端)
- 2025-07-23 基于时频聚类与噪声估计的地震信号自适应去噪算法(Python)
- 2025-07-23 每天学点Python知识:常量(python常量类型)
- 2025-07-23 同事开玩笑说:你这个python程序要是外流出去了,可能会有危险
- 2025-07-23 Python多进程数据传输慢?试试这两种通信方式
- 2025-07-23 信号的自相关(信号的自相关互相关有何应用)
- 2025-07-23 强大的 Python 信号库:blinker 入门教程
- 2025-07-23 请介绍一下Python中的信号和信号处理函数。
- 2025-07-23 Python信号处理实战:使用signal模块响应系统事件
- 283℃Python短文,Python中的嵌套条件语句(六)
- 280℃python笔记:for循环嵌套。end=""的作用,图形打印
- 279℃PythonNet:实现Python与.Net代码相互调用!
- 275℃Python实现字符串小写转大写并写入文件
- 273℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 134℃原来2025是完美的平方年,一起探索六种平方的算吧
- 119℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 111℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)