从 np.fft 计算幅度

2024-01-09

我似乎使用 np.fft.fft 计算原始波的不正确振幅。

显示了 fft 的图,您可以看到显示的幅度约为 3 和 1.5,但如果您查看代码,我将使用幅度 7 和 3 来生成信号。该图应该有两个尖峰,在 x=13 处达到 y=3,在 x=15 处达到 y=7

我需要做什么才能在图表中看到正确的幅度(3 和 7)?

我可以通过实验看到我需要将振幅乘以 2.3 左右的常数,但如何准确计算这个数字呢?

import numpy as np
import matplotlib.pyplot as plt

t0 = 0
t1 = 20
n_samples = 1000

xs = np.linspace(t0, t1, n_samples)
# Generate signal with amplitudes 7 and 3
ys = 7*np.sin(15 * 2 * np.pi * xs) + 3*np.sin(13 * 2 * np.pi * xs)

np_fft = np.fft.fft(ys)
amplitudes = 1/n_samples * np.abs(np_fft) #This gives wrong results

frequencies = np.fft.fftfreq(n_samples) * n_samples * 1/(t1-t0)

plt.plot(frequencies[:len(frequencies)//2], amplitudes[:len(np_fft)//2])
plt.show()

我认为你错误地计算了幅度。你应该改变

amplitudes = 1 / n_samples * np.abs(np_fft)

to

 amplitudes = 2 / n_samples * np.abs(np_fft)

result:

import numpy as np
import matplotlib.pyplot as plt

t0 = 0
t1 = 1
n_samples = 10000

xs = np.linspace(t0, t1, n_samples)
ys = 7 * np.sin(15 * 2 * np.pi * xs) + 3 * np.sin(13 * 2 * np.pi * xs)

plt.subplot(2, 1, 1)
plt.plot(xs, ys)

np_fft = np.fft.fft(ys)
amplitudes = 2 / n_samples * np.abs(np_fft) 
frequencies = np.fft.fftfreq(n_samples) * n_samples * 1 / (t1 - t0)

plt.subplot(2, 1, 2)
plt.semilogx(frequencies[:len(frequencies) // 2], amplitudes[:len(np_fft) // 2])

plt.show()

的峰值amplitudes不完全是7 and 2但如果你增加n_samples他们会变得更加准确。

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

从 np.fft 计算幅度 的相关文章

  • Tensorflow 可变图像输入大小(自动编码器、放大......)

    Edit WARNING不建议使用不同图像大小的图像 因为张量需要具有相同的大小才能实现并行化 我一直在寻找解决方案 了解如何使用不同大小的图像作为神经网络的输入 Numpy 第一个想法是使用numpy 然而 由于每个图像的大小不同 我无法
  • python - 是否可以扩展 xml-rpc 可以序列化的事物集?

    我看到几个问题询问如何发送numpy ndarray通过 xml rpc 调用 这不能开箱即用 因为正如 xml rpc 中所述docs https docs python org 2 library xmlrpclib html 有一组固
  • 在python中将文本文件解析为列表

    我对 Python 完全陌生 我正在尝试读取包含单词和数字组合的 txt 文件 我可以很好地读取 txt 文件 但我正在努力将字符串转换为我可以使用的格式 import matplotlib pyplot as plt import num
  • 如何从 PyCharm 项目中获取我的“exe”[重复]

    这个问题在这里已经有答案了 通过 PyCharm 在 Python 上编写一些项目 我想从中获取一个exe文件 我尝试过 另存为 gt XXX exe 但是 当我尝试执行它时出现错误 此类操作系统不支持该文件 附注 我有win7 x64 它
  • Python BeautifulSoup XML 解析

    我编写了一个简单的脚本来使用 BeautifulSoup 模块解析 XML 聊天日志 标准 soup prettify 工作正常 只是聊天日志中有很多绒毛 您可以在下面看到我正在使用的脚本代码和一些 XML 输入文件 Code import
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • 无法打开 Python。错误 0xc000007b

    我最近一直在学习 Python 3 我在我的上网本 32 位 Windows 7 上创建简单的小程序没有任何问题 当我将它安装在我的上网本上时 我没有遇到任何问题 但现在我已经开始使用它了 我想将它安装在我的台式机上 并且我有一个 我的桌面
  • 创建一个类似于 Tkinter 的表

    我希望创建类似于 Tkinter 中的表格的东西 但它不一定是这样的 例如 我想创建标题 Name1 Name2 Value 并在每个标题下面有几个空白行 然后 我希望稍后用我计算的值或名称的字符串值填充这些行 因此是标签 对于 Name2
  • 如何使用Python的super()来更新父值?

    我对继承很陌生 之前所有关于继承和 Python 的 super 函数的讨论都有点超出我的理解 我当前使用以下代码来更新父对象的值 usr bin env python test py class Master object mydata
  • conda-env list / conda info --envs 如何查找环境?

    我一直在尝试 anaconda miniconda 因为我的用户使用随 miniconda 安装的结构生物学程序 并且作者都没有 A 考虑到可能存在其他 miniconda 应用程序 B 他们的程序将在多用户环境中使用 因此 使用 Arch
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 如何通过字符串匹配加速 pandas 行过滤?

    我经常需要过滤 pandas 数据框df by df df col name string value 并且我想加快行选择操作 有没有快速的方法可以做到这一点 例如 In 1 df mul df 3000 2000 3 reset inde
  • 为什么我们应该在 def __init__(self, n) -> None: 中使用 -> ?

    我们为什么要使用 gt in def init self n gt None 我读了以下摘录来自 PEP 484 https www python org dev peps pep 0484 the meaning of annotatio
  • 检查字符串是否只有字母和空格 - Python

    试图让 python 返回一个字符串仅包含字母和空格 string input Enter a string if all x isalpha and x isspace for x in string print Only alphabe
  • 如何将列表字典写入字符串而不是 CSV 文件?

    This 堆栈溢出问题 https stackoverflow com questions 37997085 how to write a dictionary of lists to a csv file将列表字典写入 CSV 文件的答案
  • 在 Python 模块中使用 InstaLoader

    我正在尝试使用 Instaloader 下载与主题标签相关的照片以进行图像分析 我在GitHub存储库中找到了一个全面的方法 如何在终端中执行它 但是 我需要将脚本集成到Python笔记本中 这是脚本 instaloader no vide
  • 来自 django 教程 was_published_recently.admin_order_field = 'pub_date'

    From Django 教程 https www jetbrains com help pycharm 2017 1 creating and running your first django project html d28041e21
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t

随机推荐

  • Telegram 机器人:如何通过 ID(而不是用户名)提及用户

    我正在创建一个电报机器人并使用sendMessage发送消息的方法 很容易提及用户使用 username 但是当用户没有用户名时如何提及用户呢 如果使用电报应用程序 网络 我们可以通过以下方式提及用户 integer id name 而 t
  • C# 中四舍五入到小数点后两位

    如何将两位小数相乘并将结果四舍五入到小数点后两位 例如 如果方程为 41 75 x 0 1 则结果将为 4 175 如果我在 C 中使用小数执行此操作 它将自动四舍五入到 4 18 我想四舍五入到 4 17 我尝试使用 Math Floor
  • 打开像 Whatsapp 这样的对话框时显示动画?

    我想打开用户信息的对话框并显示动画 就像 Whatsapp 所做的那样 任何想法 先感谢您 看看这个开源库FabDialogMorph https github com hujiaweibujidao FabDialogMorph Here
  • 将 Json 映射到 Angular 对象

    我有以下 JSON 数据 columns table black list name id datatype uuid table black list name emailid datatype varchar table black l
  • SQL 帮助:使用嵌套 SELECT 计算单个查询中的行数

    我正在寻找一种更好的方法来执行以下查询 我有一个看起来像这样的表 game id home team id away team id 1 100 200 2 200 300 3 200 400 4 300 100 5 100 400 我想编
  • 在 AWS ECS 上的 Docker 映像中运行 CloudWatch Agent 失败

    对于这个问题 我对 Docker 和 AWS 还比较陌生 目标是创建一个使用基本 Laravel 应用程序运行 Apache 和 PHP 的单个 AWS ECS 实例 我想运行 CloudWatch 代理将所有日志发送到 CloudWatc
  • 在 Ajax 查询中使用预输入时出现 ember-select-2 问题

    我在用着余烬 选择 2 https istefo github io ember select 2 examples作为 ember 应用程序中的预输入 问题是我可以从服务器获取数据 但数据没有显示在下拉列表中 任何帮助将不胜感激 提前致谢
  • R 中 Stata 的 xtlogit (fe, re) 等效项?

    Stata 允许通过以下方式指定逻辑回归的固定效应和随机效应xtlogit http www stata com manuals13 xtxtlogit pdf fe and xtlogit http www stata com manua
  • 如何在 Atom 中替换换行符?

    在 Atom 中 如果我在搜索和替换工具上激活正则表达式模式 它可以找到换行符 n 但是当我尝试替换它们时 它们仍然存在 有没有办法替换 Atom 中的换行符字符串 看起来 Atom 匹配换行符为 r n但仅替换时表现不一致 n什么也没有
  • Visual Studio 生成的 Dockerfile 不适用于手动 docker 构建

    我想对现有的 NET core 5 应用程序进行 dockerize 并使用容器工具生成 Dockerfile 当我使用 Visual Studio 2022 进行调试时 它可以工作 但是当我使用命令手动运行它时docker build t
  • 如何用Python同时记录鼠标和键盘的移动?

    我想创建一个函数来记录鼠标和键盘事件 直到按下特定的键 然后一起重播它们 我认为这可以通过keyboard and mouse模块 在之前的一个问题中 我问过如何记录按下按键之前的鼠标移动 https stackoverflow com q
  • 带有透明居中箭头的边框

    我正在尝试用 a 来设计 div 的样式具有向下箭头的底部边框 div 中将包含图像 并且不应有上边框 右边框或左边框 向下箭头的填充应该与 div 相同或透明 我已经能够使用下面的代码让它大部分工作 hero position relat
  • 无法在节点和运行时之间转换参数“tx”:解码字段调用时出错

    当我想使用基于基板的链中内置的方法以及自定义类型时 我收到以下错误 2020 04 13 21 03 01 RPC CORE submitAndWatchExtrinsic extrinsic Extrinsic ExtrinsicStat
  • 图 - 具有顶点权重的最短路径

    这是一个消费税 在某些图问题中 顶点可以有权重而不是 或者除了边的权重之外 设 Cv 为顶点的成本 v 和 C x y 边 x y 的成本 这个问题大家关心 寻找图 G 中顶点 a 和 b 之间最便宜的路径 路径的成本是边和顶点的成本之和
  • 使用 ImageDataGenerator 时的 Keras 分割训练测试集

    我有一个目录 其中包含图像的子文件夹 根据标签 我想在 Keras 中使用 ImageDataGenerator 时将这些数据拆分为训练集和测试集 虽然 keras 中的 model fit 有用于指定分割的参数validation spl
  • 一级缓存和二级缓存有什么区别?

    我知道l1和l2缓存是多级缓存中的级别 我想知道每一级缓存放置在哪里 以及允许的最大缓存级别是多少 这两者都取决于CPU 有些CPU根本没有高速缓存 有些CPU在芯片上有L1高速缓存 而L2高速缓存在同一芯片上的单独芯片上 甚至在单独的芯片
  • 如何将图像文件保存在 Postgres 数据库上?

    出于学习目的 我正在使用 Python Flask 创建一个网站 我想从数据库中恢复图像并将其显示在屏幕上 但一步一步来 我首先不知道如何将图像保存在我的数据库中 我的搜索只显示我必须使用bytea输入我的数据库 然后我得到我的图像并以某种
  • 尝试比较两个 csv 文件并将差异写入输出

    我正在开发一个脚本 它获取 2 个 csv 文件之间的差异 并生成一个新的 csv 文件作为具有差异的输出 但前提是两个输入文件之间的相同 2 行 指行号 包含不同的数据 例如文件 1 中的第 3 行有 mike 篮球运动员 文件 2 中的
  • 如何在 Log 中模拟方法 e

    这里 Utils java 是我要测试的类 以下是在 UtilsTest 类中调用的方法 即使我嘲笑 Log e 方法 如下所示 Before public void setUp when Log e any String class an
  • 从 np.fft 计算幅度

    我似乎使用 np fft fft 计算原始波的不正确振幅 显示了 fft 的图 您可以看到显示的幅度约为 3 和 1 5 但如果您查看代码 我将使用幅度 7 和 3 来生成信号 该图应该有两个尖峰 在 x 13 处达到 y 3 在 x 15