问题标签 [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 投票
4 回答
963 浏览

c# - 无限循环消耗 100% CPU

我陷入了需要生成一些赫兹的定义频率的情况。我已经尝试过多媒体计时器和互联网上所有其他可用的东西,但到目前为止,带有一些 if-else 条件的无限循环给了我最好的结果。但是这种方法的问题是它几乎消耗了所有的cpu,没有空间让其他应用程序正常工作。

我需要一种算法,它可以生成一些 Hz 到 KHz 的频率。

我正在使用带有 C# 的 windows 平台。

0 投票
1 回答
11432 浏览

matlab - 如何将频域转换为时域

我创建了一个 3 个三个不同频率的信号并过滤掉我不想要的信号。但是当我在matlab中使用ifft时,它显示了一个错误的图。如何将我的频域频谱转换回我的3秒时域图?下面我的代码如下:

0 投票
2 回答
2884 浏览

python - Python中的滤波器设计和频率提取

我正在做一个项目,以在 Python 中查找多分量音频信号的瞬时频率。我目前正在使用一个 Butterworth 带通滤波器结合scipy.signal.lfilter来提取我想要的频率区域。然后我使用解析信号(来自scipy.signal.hilbert)来获得瞬时相位,可以将其展开以给出频率。

作为信号处理的新手,我有两个主要问题:

  1. 我已经读过,在许多应用程序中,最好使用scipy.signal.filtfiltover scipy.signal.lfilter。当然,当我应用filtfilt到我的数据时,我会得到一个看起来更平滑的瞬时频率信号。我想知道两者之间的主要区别,记住我想得到一个尽可能接近“真实”瞬时频率的输出。

  2. 瞬时频率数据是非平稳的,这意味着在某些情况下,我必须使用更宽的带通滤波器来捕获所有我想要的数据。这似乎在我的信号中引入了额外的噪声和偶尔的不稳定性。有没有办法处理这些问题,例如设计更好的过滤器?

编辑

作为对 flebool 的回应,下面是我正在查看的数据的一些图像。首先,比较filtfiltfilt<code>filt</code> 和 <code>filtfilt</code> 的比较 上述两个信号都应用了相同的巴特沃斯滤波器(尽管滤波器功能不同),然后提取瞬时频率(这是绘制的,作为时间的函数)。filtfilt似乎移动和平滑数据。这些信号之一是否更接近“真实”信号?

请注意,此图仅显示特定信号的子集。

二、增加巴特沃斯滤波器大小的效果: 加宽过滤器 这是针对与图 1 相同的数据子集。图例分别显示了滤波器的下限和上限(红色轨迹是filt图 1 中数据的版本) .

虽然这里可能不清楚为什么我会使用更大的通带,但在某些情况下,数据可能位于例如 600 和 800Hz 之间的不同点。正是在这里,我需要更广泛的过滤器设计。您可以看到随着滤波器变宽,额外的噪声进入迹线;我想知道是否有办法优化/改进我的过滤器设计。

0 投票
1 回答
591 浏览

matlab - 如何在 3D 矩阵上使用 FFT 和 IFFT 确定时间维度上的频率

目前,我正在从事一项任务,以从在 Matlab 中播放的电影文件中获取几帧。在参数 X、Y 和时间中创建了一个 3D 矩阵。但我被要求通过使用 FFT 和 IFFT 及时确定频率。

我的问题是如何通过在 3D 矩阵上使用 FFT 和 IFFT 来绘制图形以确定时间维度上的频率?如果有人能提供部分matlab代码将不胜感激。

0 投票
2 回答
1488 浏览

matlab - 在 Matlab 中将 Wigner-Ville 分布中的值缩放到实际范围

我使用Time-Frequency Toolbox中的函数 tfrwv.m 运行

我明白了

在此处输入图像描述

频率应在 [0,180] Hz 和时间 [0,2.5s] 内。

您如何将时间和频率缩放到实际值?

手册说

我跑

我得到

我认为这里的问题是初始化时间和频率的窗口。我试图通过编辑参数的值来操纵这两个轴。

由 Matlab 的默认频谱图函数完成的相同数据但具有正确标签轴的相应频谱图,在此处讨论:

在此处输入图像描述

0 投票
2 回答
3648 浏览

matlab - 在 Matlab 中创建长度为 64 且重叠率为 60% 的汉明窗

我试图在这里给出长度为 64 的 Wigner-Ville Distribution Hamming Window 与 60% 的重叠。我可以通过以下方式创建长度为 64 的汉明窗

以下是有关该问题的一些理论建议。该窗口似乎是三个汉明波的某种卷积,卷积概率为 60%。

重叠似乎是三个函数的某种卷积。我尝试三个窗口及其重叠

我尝试两个窗口及其重叠

这两个结果似乎都没有给我任何更好的 Wigner-Ville 分布结果。许多云峰仍然可见。所以关键似乎在时间上分开了窗口,因为窗口函数的当前结果只返回与hamming(64)窗口完全相同的图片。

考虑 60% 的重叠

尺寸为hamming(64)64x1 双倍,而conv(hamming(64), hamming(64))127x1 双倍。制作一个 60% 几率的概率算法并不简单,因为我们不能线性地迭代这两个函数。

如何创建具有 60% 重叠的汉明窗?

0 投票
4 回答
2583 浏览

matlab - 在 Matlab 中对 Wigner-Ville 分布应用窗函数

我们在这里考虑如何创建重叠 64 的 Hamming-64 窗口。它是由

现在,我们正在考虑如何将此窗口函数应用于时频工具箱中的 Auger 等人的 Wigner-Ville 分布函数的结果变量。函数tfrwv.m没有窗口函数的任何参数。

所以我们有这些变量

是相关问题的一个答案,但并不完全相同。有人说将窗口函数应用于结果

逐点相乘

h的尺寸为101x1 双倍,而TF的尺寸为5001x1 双倍。因此,如果逐点相乘,似乎需要对窗口向量进行外推。

这里还有一个解释

大约在第二个代码块进行到一半时,我将窗口函数应用于缓冲信号。这实际上是窗口函数与每个缓冲的时间序列数据块的向量乘法。我只是使用偷偷摸摸的对角矩阵技巧来有效地做到这一点。

如何对变量B、TF应用窗口函数?

0 投票
7 回答
398 浏览

image - 使所有峰在 Matlab 中清晰可见

我终于用lennon310解决了我的问题。我在时频图片中有数千个细峰的图片。我不能在一张照片中看到所有相同的时间。根据我的时间窗口的物理宽度,一些窗口出现,一些可见。

我绘制的数据图片imagesc

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

所有图片都来自相同的数据点T、F、B

如何在 Matlab 中一次绘制所有峰值?

0 投票
1 回答
98 浏览

matlab - Matlab中一张图片中的两张时频图片

我有两个在域和范围中具有相同空格的图形:

在此处输入图像描述

在此处输入图像描述

我按照这里的手册subimage

但我没有图片。可能,我应该使用该命令infuse。我仍然不明白我应该如何将不同的 Y 值和时频表示传递给命令。

似乎该命令不是为三个参数设计的。

如何在 Matlab 中用两个时频图制作一张图片?

0 投票
3 回答
181 浏览

python - 检查函数是否在 x 时间内没有被调用

我在任何地方都没有找到这种问题,所以我要在这里问。

如何检查我编写的某些特定函数是否在 x 时间内没有被调用?