Python 中的梯形波

2024-02-28

如何用Python生成梯形波?

我研究了 SciPy 和 NumPy 等模块,但没有成功。是否有像 scipy.signal.gaussian 这样的模块返回代表高斯函数波的值数组?

我使用梯形内核生成了这个Astropy https://en.wikipedia.org/wiki/Astropy, 梯形1DKernel(30,斜率=1.0)。我想在 Python 中实现这个而不使用 Astropy。


虽然宽度和斜率足以定义三角信号,但梯形信号需要第三个参数:幅度。

使用这三个参数,您可以轻松调整scipy.signal.sawtooth函数通过截断和偏移三角形函数得到梯形形状。

from scipy import signal
import matplotlib.pyplot as plt
import numpy as np


def trapzoid_signal(t, width=2., slope=1., amp=1., offs=0):
    a = slope*width*signal.sawtooth(2*np.pi*t/width, width=0.5)/4.
    a[a>amp/2.] = amp/2.
    a[a<-amp/2.] = -amp/2.
    return a + amp/2. + offs

t = np.linspace(0, 6, 501)
plt.plot(t,trapzoid_signal(t, width=2, slope=2, amp=1.), label="width=2, slope=2, amp=1")
plt.plot(t,trapzoid_signal(t, width=4, slope=1, amp=0.6), label="width=4, slope=1, amp=0.6")

plt.legend( loc=(0.25,1.015))
plt.show()

请注意,您可能还想根据用例定义一个阶段。

为了定义单个脉冲,您可能需要稍微修改一下函数并提供一个范围超过的数组[0,width].

from scipy import signal
import matplotlib.pyplot as plt
import numpy as np

def trapzoid_signal(t, width=2., slope=1., amp=1., offs=0):
    a = slope*width*signal.sawtooth(2*np.pi*t/width, width=0.5)/4.
    a += slope*width/4.
    a[a>amp] = amp
    return a + offs

for w,s,a in zip([2,5], [2,1], [1,0.6]):
    t = np.linspace(0, w, 501)
    l = "width={}, slope={}, amp={}".format(w,s,a)
    plt.plot(t,trapzoid_signal(t, width=w, slope=s, amp=a), label=l)

plt.legend( loc="upper right")
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的梯形波 的相关文章

随机推荐

  • 如何使用具有多个输入参数的 HttpGet 属性? (并大摇大摆地工作)

    它与下面的代码配合得很好 我只有一个参数 但如何处理两个输入参数 如果我只使用 HttpGet 则不会发送任何参数 尽管它在 Swagger 之外工作正常 帮助 HttpGet Consumes application json HttpG
  • 使用 angular2 进行服务器端渲染是什么?

    我知道 angular2 用于服务器端渲染 所以我想了解更多 我对这种现象有以下疑问 1 什么是服务端渲染 2 它解决什么问题 3 它的应用有哪些 4 为什么使用服务端渲染 5 支持服务端渲染的技术有哪些 6 在Angular2中 服务器端
  • 如何在 git 上恢复旧提交中的特定文件

    我想我的问题很接近这个one https stackoverflow com questions 20971306 hg how do i revert a single file several commits back 但我正在使用 g
  • 使用 SQL Developer 或 Toad 等 IDE 工具的 Oracle 并行查询行为

    一段时间以来 我一直在努力抽出时间来写这个问题并尽可能地解释这个问题 所以请提前原谅我的长文 我的环境 Oracle Database 12 2 在 Red Hat 7 R A C 2 个节点 上运行 每个节点 16CPU 和 64GB R
  • 在一个 SELECT 语句中设置两个标量变量?

    我想做这个 Declare a int Declare b int SET a b SELECT StartNum EndNum FROM Users Where UserId 1223 PRINT a PRINT b 但这是无效的语法 如
  • 如何在 Gatsby URL 中添加发布日期?

    All the Gatsby 入门演示 https github com gatsbyjs gatsby gatsby starters有一条像这样的路径 gatsby starter blog hi folks 我该如何设置 2015 0
  • Cron 作业 + Twitter

    从 12 30 开始 一直到 1 30 2 30 等 我的应用程序每小时都会发布一条静态推文 我目前正在使用 themattharris 的 twitter API 我也有一个 cron 工作 30 php q home1 USER NAM
  • PyQt5 和 datetime.datetime.strptime 之间的冲突

    所以我正在编写一个工具 可以使用基于 python 3 52 和 Qt5 的图形用户界面从文件中读取时间 最少的操作 datetime datetime strptime Tue a 在隔离环境中工作 输出 1900 01 01 00 00
  • 在 php 5.5 中使用什么来代替 apc 用户数据缓存?

    PHP 5 5 默认包含 zend opcache 这基本上意味着几乎没有人会使用 APC 但是用什么来代替 APC 的用户数据缓存部分 apc store apc fetch 类似 呢 我真正喜欢使用 APC 用户数据缓存的一个用例是静态
  • 如何在vba中另存为.txt

    我希望让我的宏将我创建的新工作表保存为 txt 文件 这是我到目前为止的代码 Sub Move Move Macro Keyboard Shortcut Ctrl m Sheets Sheet1 Select Range A1 Select
  • 绘制完成后清除CGPath路径

    我已经在 iOS 中编写了一个在 TouchMoved 方法中绘图的程序 CGContextAddPath UIGraphicsGetCurrentContext path CGPathMoveToPoint path NULL lastP
  • OpenCV - Java:inRange 函数

    我有我的形象mRgba当我这样做时 Core inRange mRgba B1 B2 mRgba 我得到了我期望的结果 我的所有 RGBA 图像的阈值都在 B1 和 B2 之间 现在我想这样做 Mat roi mRgba submat re
  • Pytorch:获取最终层的正确尺寸

    Pytorch 新手来了 我正在尝试微调 VGG16 模型来预测 3 个不同的类别 我的部分工作涉及将 FC 层转换为 CONV 层 但是 我的预测值不会落在 0 到 2 3 个类别 之间 有人可以向我指出有关如何计算最后一层的正确尺寸的好
  • pyder 中的 Python 调试器在第 2 行停止

    当我尝试调试代码时 调试器在第 2 行停止并且不响应任何命令 例如转到下一行 我正在使用 python 3 9 7 This is what the console looks like If I try to stop the debug
  • 无法加载共享库“libgdiplus” - Docker [带有 Aspose API 的 .NET 应用程序]

    当我创建用于部署的 docker 文件时 应用程序通常在开发环境中工作 但它失败了libgdiplus issue Docker文件 FROM mcr microsoft com dotnet core aspnet 3 0 AS base
  • 具有并排输入字段的 HTML 表单

    我有一个基本上是垂直的 html 表单 但我真的不知道如何在同一行上创建两个文本字段 例如 下面的表格我希望名字和姓氏在同一行 而不是一个在另一个下面
  • 将 UIButton 锚定到 UITableViewController 视图的底部

    我有以下要求 当一个UITableViewController显示的视图中 行数是可变的 在行下方 应显示一个按钮 当行数较小时 按钮应固定在视图的底部 当行数较多时 删除按钮应紧接在最后一行之后放置 换句话说 And not 到目前为止
  • CSS,位置:绝对,滚动条

    假设有一个页面 div div LEFT div div RIGHT div div 为什么水平滚动条只考虑右溢出 换句话说 为什么 LEFT 不触发滚动条 而 RIGHT 却触发呢 除了body gt overflow hidden 对于
  • 获得平均系数和 adj。使用 lapply 来自多个合并回归的 R^2

    我使用循环函数执行了多个池回归 并将回归输出存储在列表中 myregression 我现在想做的是对我的所有回归 即 myregression 列表 有效地执行 lmtest 包中的 coeftest 函数 以调整标准误差和 t 统计量 最
  • Python 中的梯形波

    如何用Python生成梯形波 我研究了 SciPy 和 NumPy 等模块 但没有成功 是否有像 scipy signal gaussian 这样的模块返回代表高斯函数波的值数组 我使用梯形内核生成了这个Astropy https en w