问题标签 [time-frequency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8353 浏览

python - 使用 Scipy.signal (Python) 进行连续小波变换:cwt() 函数中的参数“宽度”是什么?(时频)

我搜索以绘制具有离散时间信号的时频信号(采样步长 = 0.001 秒)。我使用 Python 和库 Scipy.signal。我使用函数 cwt(data, wavelet, widths),它返回一个矩阵,用复 morlet 小波(或 gabor 小波)进行连续小波变换。不幸的是,没有很多关于这种用法的文档。我发现的最好的是: -适用于 Matlab(我试图找到相同的尺度时间结果),但我自然无法使用相同的函数, -解释了什么是连续小波变换,没有小波参数的详细信息.

第一步:获取比例转换信号。毫无疑问,我直接将数组“宽度”与可能的不同比例的数组相关联。因为,如果不是比例,我不明白什么是参数宽度。也许,你会告诉我“这是你当前小波的宽度”!但是,即使是现在,我也不确定链接宽度与比例的关系......在 Scipy 的 Morlet 文档中,链接似乎可能是:“s: Scaling factor, windowed from -s*2*pi to +s*2 *pi",所以,我认为宽度 = 4*pi*scale(宽度=窗口的宽度)。但是当我绘制小波时,更多的比例增加,更多的小波的视觉宽度减小......

我的第二个问题是找到并绘制频率等价物。在文献中,我找到了这个公式:Fa = Fc / (s*delta),其中 Fa 是最终频率,Fc 是小波的中心频率,以 Hz 为单位,s 是尺度,delta 是采样周期。因此,对于比例(如果我找到与宽度的链接)和增量(= 0.001 秒)来说没问题,但是小波的中心频率更复杂。在 scipy 文档中,我发现:“这个小波 [morlet 小波] 的基频 (Hz) 由 f = 2*s*w*r / M 给出,其中 r 是采样率 [s 在这里是缩放因子,窗口化从 -s*2*pi 到 +s*2*pi。默认为 1;w 宽度;和 M 小波的长度]。我认为是中心频率,是吗?

谢谢

这是我为 cwt() 重新编写的代码:

0 投票
1 回答
6729 浏览

python - 更改 Pandas Dataframe 中的时间频率

我有一个如下所示的 Pandas DataFrame。

我想将其频率更改为定期1 minute间隔。但得到以下错误:

现在,我明白为什么会这样了。由于我的时间粒度很高(以毫秒为单位)但不规则,我每分钟甚至每秒都会获得多个读数。因此,我尝试将这些毫秒读数与分钟相结合,并消除重复项,如下所示。

如您所见,它不起作用..有人可以帮忙吗?我想要实现的是获得一个返回的函数,A or B as of DateTime并且 DateTime 将以 1Min 为增量。

0 投票
1 回答
1014 浏览

matlab - 如何在 MATLAB 中使用 ifft 函数和实验数据

我试图在一些实验数据上使用 MATLAB 中的 ifft 函数,但我没有得到预期的结果。

我有对数正弦扫描激励的频率数据,因此我知道幅度 [g's]、频率 [Hz] 和相位(这是 0,因为该点是一个引导点)。

我试图将它直接提供给 ifft 函数,但结果是我得到了一个复数(我期待一个真实的结果,因为它是一个时间信号)。我认为问题可能是信号不对称,因此我以这种方式计算了对称部分(在“for”循环中)

我将它添加到幅度矢量的末尾。

这样,新的幅度向量是对称的,但现在我也将该向量的维度加倍,这意味着我也必须将频率向量的维度加倍。

无论如何,我将新的幅度矢量输入到 ifft,但我仍然没有得到对数正弦扫描,尽管这次输出如预期的那样是真实的。

为了计算绘图的时间 [s],我使用了以下公式:

我究竟做错了什么?先感谢您

0 投票
1 回答
4987 浏览

python - python中的时间/频率颜色图

在本机 Python 3.X 库或 scipy/numpy/matplolib 库中是否有一个函数或其短集可以帮助我绘制类似于这个的图(?):

在此处输入图像描述

什么是实现此类目标的有效方法?先感谢您。

0 投票
1 回答
2007 浏览

fft - 短时傅里叶变换的缺点

我在一篇关于短时傅里叶变换的缺点的文档中读过以下句子,他说:

缺点是一旦您为时间窗口选择了特定大小,该窗口对于所有频率都是相同的

那么频率与窗口大小之间的关系是什么。如果我们在信号的一部分中有高频分量,如果窗口的大小不够小/大,怎么无法检测到这个频率?

此外,他谈到了小波变换:

小波分析允许使用需要更精确低频信息的较长时间间隔和需要高频信息的较短区域

我觉得答案与nyquest rate有某种关系

0 投票
1 回答
801 浏览

matlab - 在matlab中计算S变换及其平方值

让我们考虑以下代码取自

http://www.mathworks.com/matlabcentral/fileexchange/45848-stockwell-transform--s-transform-/content/stran.m

计算 S 变换,这是我的代码

并考虑跟随啁啾信号

我需要确认我在做正确的事情

?

图片在这里 在此处输入图像描述

0 投票
0 回答
36 浏览

matlab - Matlab-从文本文件中获取频率的最大值或第二最大值

我有一个这样的文本文件:

第一列是时间值,第二列和第三列是点 1 和 2 的频率值。我需要在点 1 处获得频率幅度的最大值和第二个最大值,因为可能有一些不好的幅度值点 1 的频率。然后,我需要在黑框中导出范围的值。我该怎么做。 例子 这是我的代码:

但是,最大值并不总是正确的值,有时它是一个损坏的值。所以我需要频率幅度的第二个最大值。提前致谢。

0 投票
1 回答
1052 浏览

time-frequency - Beckhoff TwinCAT3.1 中的频率计算

我正在尝试确定脉冲输入的频率,即泵的转速反馈。我试图创建两个计时器,每个计时器为一秒,并且每次出现上升沿时计数。根据一秒钟内上升沿的数量,我可以计算出频率。遗憾的是我找不到功能或功能块。任何关于生成函数的帮助都会很棒!

我还附上了我尝试使用但似乎不起作用的代码 - 我认为一些新鲜的眼睛可能能够发现我错过的东西。

0 投票
1 回答
246 浏览

fpga - Xlinx FPGA 上的 Dirac Delta 卷积

我正在尝试在 Xilinx Virtex 7 上将 16 位输入数据流与 Dirac Delta 进行卷积。

更具体地说,我不想将我的输入流乘以时域中的余弦,而是将其与频域中的以下表达式进行卷积:F(f) = 0.5 * (delta(f - f0) + delta(f + f0))

有人知道如何实现吗?事实上,解决我的问题的唯一可能有趣的 Xilinx IP 内核是 FIR 编译器,但我不知道如何将我的函数 F(f) 表示为该 IP 内核的“系数”输入。

编辑:在数学上,由于目标卷积只涉及狄拉克三角洲,可能存在一种更短的方法来避免卷积,只需在点 f0 处评估输入函数。但我不知道如何实现它也不..

先感谢您

0 投票
2 回答
186 浏览

python - Python - 聚合窗口中最接近时间的金融交易

假设我收集(在列表中)在特定时间段内(比如上午 11 点后的前 5 分钟)发生的所有交易,用于 n 个股票(为简单起见,我将 n=2 并稍后调整)。假设我们有坚定的 AAA 和坚定的 BBB(如果有帮助,liststocks=['AAA', 'BBB'])。该列表看起来像:

即,股票 AAA 的 2 笔交易和股票 BBB 的 3 笔交易。选择每只股票的最后一笔交易会导致缺乏同步性问题。这个想法是选择每只股票的最后一笔交易并找到最早的交易(['AAA', '2011-01-03', '11:04:20', 21.55])。然后选择时间尽可能接近'11:04:20'的所有其他股票的交易,这将导致我们选择['BBB', '2011-01-03','11:04:19', 32.01 ]。输出应该是一个列表,如:

非常感谢!