- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的工作涉及振动,我试图从 FFT 幅度中获取以下信息:
我正在对一个简单的正弦波函数执行 FFT,考虑汉宁窗。请注意,正弦波函数的“全振幅”为 5,运行 FFT 下面的代码会得到 2.5 的振幅结果。因此,在这种情况下,我从 FFT 中获得峰值。峰峰值和 RMS 怎么样?
P.-S. - 我对带宽频率的 RMS 不感兴趣(即 parsevall 定理)。我对每个峰值的 RMS 感兴趣,这通常在振动软件中看到。
import numpy as np
import matplotlib.pyplot as plt
f_s = 100.0 # Hz sampling frequency
f = 1.0 # Hz
time = np.arange(0.0, 10.0, 1/f_s)
x = 5 * np.sin(2*np.pi*f*time)
N = len(time)
T = 1/f_s
# apply hann window and take the FFT
win = np.hanning(len(x))
FFT = np.fft.fft(win * x)
n = len(FFT)
yf = np.linspace(0.0,1.0/(2.0*T),N//2)
plt.figure(1)
plt.plot(yf,2.0/N * np.abs(FFT[0:N//2]))
plt.grid()
plt.figure(2)
plt.plot(time,x)
plt.xlabel('time')
plt.ylabel('Amplitude')
plt.grid()
plt.show()
最佳答案
您在频域中得到的峰值为 2.5,因为这是加窗信号的平均幅度,并且您没有补偿窗口权重。使用以下方法对频域结果进行归一化以考虑窗口后:
plt.plot(yf,2.0/win.sum() * np.abs(FFT[0:N//2]))
您应该得到 5 的振幅,就像在时域中一样。请注意,如果输入信号频率是 f_s/N 的精确倍数(在您的情况下为 0.1Hz),并且输入信号是纯音的基本假设,则此操作有效或由频率充分分离的音调组成是有效的。
峰峰值只是幅度的两倍,因此在您的示例中为 10。
对于 RMS 值,您可能对相应时域正弦音调分量的 RMS 值感兴趣(假设输入信号确实由其频率在频率上充分分离的正弦分量组成)。幅度为 A
的时域正弦曲线的 RMS 为 A/sqrt(2)
,因此您只需除以 sqrt(2)
> 从幅度值中获取相应的等效 RMS 值,因此示例中为 5/sqrt(2) ~ 3.53
。
关于python - FFT - 峰峰值、峰值、RMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52243955/
我正在编写一个 python 函数来返回 .wav 文件的响度。 RMS 似乎是最好的指标, Detect and record a sound with python 。audioop.rms()
J2ME中的记录管理系统是临时存储系统吗?应用程序关闭后它会消失吗? 最佳答案 RMS只是在 j2me 中使用的存储概念。它不是临时存储。当您删除应用程序或 RMS 时,它会永久存储。 一些 3rd
1.模拟器问题: 我第一次启动我的 midlet 应用程序是为了存储一些数据,然后我第二次重新启动它是为了读取存储的数据。它在前两种情况下运行良好,无一异常(exception)。 但是我第二次以相同
我正在尝试计算波形的 RMS 值,但遇到了一些问题。 我每 x 微秒采样一次,这是由中断触发的。样本存储在一个数组中,每次采集样本时,它会将最后一个值推送到数组中的下一个点并输入一个新值。当我采集样本
我有一个一维 float 组 root mean square值,每个值都使用相同的窗口长度计算。假设 RMS = {0, 0.01, 0.4, ... } 现在,可以表示为原始窗口范围的较大窗口的
我有一些音频数据(浮点数数组),我用它来绘制一个简单的 波形。 绘制时,波形不会在边缘达到最大值。 没问题 - 数据只需要标准化。我迭代一次以找到最大值,然后再次迭代将每个除以最大值。再次绘制,一切看
我正在使用 ffmpeg 将立体声音频文件转换为单声道。 ffmpeg -i $1 -ac 1 -ab 192k mono_$1 但是,转换后的 RMS 和峰值响度级别是不一样的。 Tests-iMa
我正在创建一个读/写 RMS 记录的 J2ME 应用程序。我能读能写 记录在 RMS 但现在的问题是我想通过接受一些值来删除记录 喜欢 accountNumber . RMS 记录的格式。 101,A
所以我在我的工作表中计算基本统计数据,它包括以下代码: xxx = Application.worksheetfunction。 平均 (等等等等等等 yyy = Application.worksh
有没有一种简单的直接方法来计算谷歌表格中的均方根/二次均值?我宁愿不必创建另一个包含第一个平方的数组来对平方求和。 最佳答案 无需您提供有关数据外观的任何进一步信息,您可以执行以下操作 假设你有这样的
rms 包中包含大量有用的统计函数。但是,我找不到从拟合对象中提取某些拟合统计数据的正确方法。考虑一个例子: library(pacman) p_load(rms, stringr, readr) #
我有一个代表图像的二维数组。我必须向图像添加 RMS 2 单位的背景高斯噪声。我不熟悉噪声的 RMS 测量以及如何添加它。您能否告诉我如何执行此操作? 最佳答案 按照我的理解,您想要在每个像素处添加遵
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
我正在测量交流电压并计算 ADC 的均方根值。 我有一个包含 128 个信号样本的数组。在计算平方数时出现错误。 unsigned long int calval=0; unsigned int lo
我无法从 rms 包中获得逻辑回归以使用 confint(),这是一个示例: library(rms) data(mtcars) dd <- datadist(mtcars) options(data
我有在 J2ME 中使用 RMS 存储值的代码。在模拟器上运行良好。所以,我的第一个问题是 当我重新启动模拟器时,所有存储的值都被删除。 存储的值显示在模拟器中,但没有显示在我正在测试我的应用程序的移
我正在尝试加载rms库,但我不断收到此错误消息: object 'plotp' not found whilst loading namespace 'rms' 我安装了具有依赖性的rms。感谢您的帮
一如既往:我很菜鸟,正如你从问题中可能看到的那样。 我正在 Xamarin.Android 中使用 Azure Wams,它似乎是一个很棒的工具。它大大登录Xamarin.Android中的用户。当我
我不确定我是否完全理解使用 Azure 保护策略和 Azure RMS 提供的工具可以保护哪些类型的数据。 特别是,我无法理解“非 native ”数据格式在多大程度上可以从通用保护中受益。 这真的适
所以我正在尝试测试一些分析某些 PCM 数据量的代码。我得到了一些奇怪的体积测量值,这些测量值与我从 audacity 获得的数据没有任何意义。看来我的测量结果到处都是。 我不确定我的错误是否在于我读
我是一名优秀的程序员,十分优秀!