信号与系统—基本信号的产生

Python Numpy和Matplotlib实现

前言

通过Python的Numpy库和Scipy库可以用于产生基本的信号,如阶跃信号,
指数信号,脉冲信号等等。 本次实验版本Python=3.6.5, numpy=1.14.5, scipy=1.1.0,
matplotlib= 3.1.1

Numpy与Matplotlib中相关绘图API Reference就不多说了,相信大多数博客和官网文档中都写得很详细了。

导入 需要的 library 库

import numpy as np # 科学计算
import matplotlib.pyplot as plt # 画图
import scipy.signal as sg # 导入 scipy 的 signal 库 命名为 sg
import warnings
warnings.filterwarnings(“ignore”) # 去掉常规警告

阶跃信号

# 阶跃信号
t = np.linspace(-1, 1, 500, endpoint=False) # 产生-1~1的500个点
plt.plot(t, np.array(t>0, dtype=np.int))  # 取t为x轴的分布, t当中大于0的部分为y轴的分布 (即当x<0时y=0,当y>0时y=1)
plt.grid()
_ = plt.ylim(-0.5, 1.5)
plt.show()

连续指数信号

# 连续指数信号
# 产生随时间衰减的指数信号
t = np.linspace(0, 5, 5000, endpoint=False)# 定义时间序列
plt.plot(t, 2*np.exp(-1*t))# 绘制随时间衰减的指数信号图
plt.grid()
plt.show()

连续正弦信号

import numpy as np
import matplotlib
from matplotlib import pyplot as plt
t = np.linspace(0, 1, 500, endpoint=True)
A = 1
phi = np.pi / 6
f = 10
plt.plot(t, A*np.sin(t * 2 * np.pi * f + phi))
plt.title("Continuous sinusoidal signal",)
plt.grid()
plt.show()

连续矩形脉冲信号

利用Python产生高度为1、宽度为4、延时2秒、 关于t=0对称的矩形脉冲信号的矩形脉冲信号的Python程序如下:

# 连续矩形脉冲信号
def rect_wave(t, c, c0): # start = c0,  breadth = cif t >= (c+c0):r = 0.0elif t < c0:r = 0.0else:r = 1return rx = np.linspace(-4, 8, 1000)
y = np.array([rect_wave(t, 4.0, -2.0) for t in x])
_ = plt.ylim(-0.2, 1.2)
plt.plot(x, y)
plt.grid()
plt.show()

连续周期矩形波信号

# 连续周期矩形波信号
t = np.linspace(0, 1, 500, endpoint=False)
plt.plot(t,scipy.signal.square(2*np.pi*5*t)) # 2*pi*w*t
plt.ylim(-2, 2)
plt.grid()
plt.show()

连续抽样信号

#  连续抽样信号
t = np.linspace(-10, 10, 500, endpoint=False)
plt.plot(t, np.sinc(t))
plt.grid()
plt.show()

单位脉冲序列

# 单位脉冲序列
n = np.linspace(-4, 21, 25, endpoint=False)
x = np.append(np.zeros((1, 7)), np.ones((1, 1))) # 先产生7个0点,1个1点
x = np.append(x, np.zeros((1,17)))
plt.stem(n, x, use_line_collection=True)
plt.grid()
plt.show()

单位阶跃序列的产生

n = np.linspace(-4, 21, 25, endpoint=False) # 定义时间序列
x = np.append(np.zeros((1,7)), np.ones((1,18))) # 产生单位阶跃序列
plt.stem(n, x, use_line_collection=True) # 绘制单位阶跃序列信号图像
plt.grid() # 显示网格
plt.show()

指数序列

# 指数序列的产生
n = np.linspace(-4, 21, 25, endpoint=False) # 定义时间序列
x = 0.3*np.power(1/2, n) # 产生离散指数序列
plt.stem(n, x, use_line_collection=True) # 绘制离散指数序列信号图像
plt.grid() # 显示网格
plt.show() # 显示图像

正弦序列

# 正弦序列的产生
n = np.linspace(-50, 51, 101, endpoint=False) # 定义时间序列
omega = np.pi/10 # 频率
x = 0.3*np.sin(omega*n+ np.pi/5) #产生正弦序列
plt.stem(n, x, use_line_collection=True) # 绘制正弦序列信号图像
plt.grid() # 显示网格
plt.show() # 显示图像

离散周期矩形波序列

n = np.linspace(-10, 11, 21, endpoint=False) # 定义离散时间序列
rad = np.pi / 4 # 基波周期 N=8
plt.stem(n, sg.square(rad * n, 0.5)) # 绘制离散周期方波图像
plt.xticks(np.arange(-10, 10, step=5.0)) # 横坐标间隔
plt.grid() # 显示网格
plt.show() # 显示图像

【信号与系统-可视化】基本信号的产生( Python Numpy和Matplotlib实现)相关推荐

  1. 信号与系统——傅里叶变换☞一维信号

    信号与系统--傅里叶变换☞一维信号 0. 引言 1. 广义傅里叶级数 1.1 矢量的正交分解 1.1.1 二维空间的矢量正交分解 1.1.2 n维空间的矢量正交分解 1.2 信号的正交分解 2. 周期 ...

  2. 信号与系统matlab pdf,信号与系统及MATLAB实现.pdf

    <信号与系统>实验指导书 <信号与系统及MATLAB 实现> 实验指导书 信息工程学院实验中心 2009 年3 月 1 <信号与系统>实验指导书 前 言 长期以来, ...

  3. 信号与系统 计算机,《信号与系统》计算机练习——利用MATLAB

    译者的话 前言 第1章 信号与系统 1.1 表示信号的基本MATLAB函数 1.2 离散时间正弦信号 1.3 离散时间信号时间变量的变换 1.4 离散时间系统性质 1.5 实现一阶差分方程 1.6 连 ...

  4. 信号与系统 chapter9 关于信号与系统中微分方程的求解

    微分方程的求解 许多同学之所以觉得信号与系统难的原因之一就在于它的数学推导,特别是对于一些高等数学基础比较薄弱的同学来说,且不说后面的求解傅里叶变换部分,目前的LTI连续系统微分方程的求解,已经是的有 ...

  5. 信号与系统 chapter1 常见信号及其变换

    什么是信号? 它的定义及其宽泛,但在我们电子通信工程中,我们可以把它看成一种波形:在数学上,我们可以把它看成一个函数.说到函数,函数又分为离散与连续,信号也是一样,分为离散信号与连续信号.连续信号如一 ...

  6. 领悟《信号与系统》之 信号与系统概论

    信号与系统概论 一.信号与系统基本概念 0. 信息是什么? 1. 信号是什么? 2. 系统是什么? 3. 信号与系统学的什么? 二.常见的信号与系统实例 三.信号与系统分析的意义 在<信号与系统 ...

  7. 领悟《信号与系统》之 信号与系统的描述-上节

    信号与系统的描述-上节 一.信号分类 1. 一维信号和多维信号 2. 确定信号和随机信号 3. 连续时间信号和离散时间信号 4. 周期信号和非周期信号 5. 能量信号和功率信号 二.常见工程信号 1. ...

  8. 领悟《信号与系统》之 信号与系统的描述-下节

    信号与系统的描述-下节 一.信号的基本运算 1. 信号的基本运算 1. 加法 .减法 2. 乘法.除法 3. 微分 .差分 4.积分.迭分 2. 关于时间(自变量)的运算 1. 位移 2. 反折 3. ...

  9. 信号与系统——阶跃信号与冲激信号

    我们在学习阶跃信号与冲激信号之前,我们首先要知道什么是奇异信号? 什么是奇异信号? 解释:函数本身有不连续点(跳变点)或其导数与积分有不连续点的一类函数统称为奇异信号或奇异函数.而我们下面所要介绍的单 ...

  10. 信号与系统实验:信号抽样

    已知一个连续时间信号f(t)=sinc⁡(t)f(t)=sinc⁡(t)f(t)=sinc⁡(t),取最高有限带宽频率fm=1Hzf_m=1Hzfm​=1Hz (1)分别显示原连续信号波形和 fs=f ...

最新文章

  1. 【播放器SDK】Android如何实现固定竖屏播放视频
  2. python小项目推荐项目-推荐 10 个有趣的 Python 项目
  3. mysql中b树索引_Mongo和Mysql中的B树索引
  4. 中有冒号 文件路径_用Matlab脚本文件实现Excel文件的合并
  5. MySQL回闪_MySQL进行BINLOG回闪
  6. Vue.js仿QQ音乐(移动端)
  7. python opencv用法中文教程
  8. 马斯克如何通过生小孩统治世界?
  9. Python注释的写作笔记
  10. python离线安装flask_离线环境下安装flask
  11. 决策树(二)--C4.5
  12. 深入理解javascript内部原理(2): 变量对象(Variable object)
  13. php社工源码,社工库源码搜集
  14. 产品经理学习一(定义、分类、成员配合、调研、3D文档、竞品分析、SWOT分析)
  15. 支持向量机原理与高斯核函数
  16. 喧喧发布 2.5.3 版本,主要提升系统稳定性,优化交互体验
  17. SQL语句如何精准查找某一时间段的数据
  18. Ubuntu无法修改挂载硬盘
  19. MT6735 8.1 Secure Boot 签名
  20. 「 右键管家」使用指南

热门文章

  1. Lingo基础语法笔记
  2. python入门基础语法答案_第一阶段:Python开发基础 Python基础语法入门  day03 课后作业...
  3. setuna快捷键_Setuna 办公截图神器
  4. Java 将Excel转为XML
  5. 【离散数学】数理逻辑 第一章 命题逻辑(2) 命题公式及其符号化、命题公式的赋值
  6. 电源大师课笔记 3.3
  7. 聚宽 get_price 多个股票数据_上证指数(000001)股票历史数据,下载上证指数(000001历史数据_股票股市历史数据下载股票数据网...
  8. 《惢客创业日记》2019.05.20(周一)向技术大牛请教(二)
  9. 关于IDM下载器免费注册这件事
  10. 白话阿里巴巴Java开发手册高级篇