问题标签 [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 回答
294 浏览

matlab - 为什么从这个 Matlab 命令中冲浪?

代码

我进入了 OSX 10.10.3 Yosemite 的 R2014b

在此处输入图像描述

但旋转显示单元格不应该是黑色的

在此处输入图像描述

为什么输出是黑色的?我想知道这是否是硬件问题。

0 投票
1 回答
9202 浏览

python - Python中的时间频谱图

我有一些以 256Hz 采样的 64 通道脑电图数据,我正在尝试对每个通道进行时频分析并绘制频谱图。

数据存储在 NumPy 3d 数组中,其中一个维度的长度为 256,每个元素包含所有采样时间点的微伏读数(每个数据通道的总长度为 1 秒)。

需要明确的是:我的 3D 阵列是 64 256 913(电极 * 电压 * 试验)。试验只是一次试验的一次试验。所以我想做的是从一次试验中取出一个电极,以及整个一维电压矢量,然后创建一个时频频谱图。例如,我想从 data[0,:,0] 创建一个频谱图。

对于每个电极,我想要一个图,其中 y 轴是频率,x 轴是时间,颜色/强度是功率

我试过在 python 中使用它:

这给了我一些看起来像这样的东西:

在此处输入图像描述

马上,这对我来说看起来不正确,因为轴范围不正确

此外,当我对所有 EEG 通道运行相同的代码时,我的所有数据都会得到完全相同的图(即使我已经验证每个通道的数据都不同)

我对信号处理还很陌生,在我的数据布局方式或我的功能使用方式上是否有什么地方出错了?

0 投票
2 回答
923 浏览

signals - 如何增加 FFT 窄带中的点数以进行 1/3 倍频程分析

我正在计算压力时间信号的声压级。每秒的样本数为 9831。(dt = 0.0001017 秒)对于一个简单的示例案例,总共收集了 749 个样本。

我在这个例子中使用了 512 个 FFT 点,所以频率从 19.2 Hz 到 4877 Hz,dF = 19.2 Hz。

我想计算 1/3 倍频程的 SPL(声压级)。

所以我采用 10 频带倍频程频率范围 1Hz、1.25Hz、1.6Hz、2Hz、2.5Hz、3.15Hz、4Hz、5Hz、6.3Hz、8Hz,这是 10 的倍数(即接下来是 10Hz、12.5赫兹,16赫兹.....直到5000赫兹)

请注意,这是 1/3 倍频程频带的中心频率。

每个频段都有较低和较高的频率(“fl”和“fu”),如下所示。“频率”是根据采样率计算的,因此它以 19.2 递增。“i”代表fft点号,注意点1为0Hz。“j”表示 fft 波段数,随着频率的增加,波段内的点数会增加。

因此,这导致我在较低倍频程频带内的 rms 计算给出了不好的结果,因为它在频带内没有足够的点(通常为 1 或 2),随着频率的增加,平均更好(例如在频带“j”= 25 四个点用于 rms 计算)。

有没有什么办法可以通过将频率范围分成两个(低频段和高频段)并应用不同的 fft 采样大小以包括尽可能多的低频段频率(通常从 100Hz 到 600Hz)内的点来改进 rms 计算。

我还计划使用 Hann 窗函数来减少泄漏,我应该在 FFT 之前还是在 FFT 之后应用。

欢迎您提出建议。

0 投票
1 回答
133 浏览

matlab - 在通道中划分信号

我在时域中有一个信号(从 -100 到 1100 ps 的 6000 个样本)。我必须将其转换为频域并将其分成100个通道,并找到每个通道的中心频率。

我不擅长“MATLAB”,所以如何做到这一点,将不胜感激。

0 投票
1 回答
252 浏览

matlab - MATLAB 中的 TF 绘图

我想划分 5 个低频的 EEG 数据。在这里,我使用 EMD 来获得它。我想问的是我们如何创建一条线来分隔每个频率,如下图所示。例如,delta 是 0-4 Hz,theta 是 4-8 Hx,alpha 是 8-12 Hz,依此类推。

这张图是从 EMD 获得的 TF Plot

在此处输入图像描述

0 投票
1 回答
125 浏览

audio - fscanf (filepointer, "%d\n%lg\n", sig_length, sample_rate); 如何解释它?

我有一个从互联网之前存在的科学音频文件类型的音频格式转换(称为 TFD v1)一个未压缩的简单的简单原始样本值数组...在此页面上的 get_signal() 函数中,我不知道如何样本值已格式化,为什么我需要采样率从数组中读取 256 个点?

0 投票
0 回答
162 浏览

fft - 如何确定时间序列数据中的低谷?

我正在从制造过程机器接收时间序列数据/事件流。我需要能够计算一个周期的开始,并根据数据的低谷来确定这个事件。推荐的方法是什么?

谢谢

编辑:我附上了数据图的图像。基本上我有一个持续的数据流,我需要能够有效地识别低谷,以便确定下一个周期的开始/上一个周期的结束。我唯一可以保证不知道的是周期的周期——它会有所不同。

我唯一可以保证知道的是初始数据点值——它可以是循环中的任何地方。

目前 - 我有点想我必须在一段时间内做一些事情,保持跟踪到目前为止看到的最低温度。

在此处输入图像描述

0 投票
1 回答
1052 浏览

matlab - 小波:如何从频率确定尺度?

在下面的代码示例中,我希望打印输出的行至少大致匹配。但他们没有。

我正在尝试在 Matlab 中使用连续小波变换,并且我想在输入信号中以不同频率执行变换,但我正在努力寻找一种可靠的方法来估计相应的尺度

在那个代码示例中,我scal2freq用来估计这些尺度(知道它是对合的,即scal2frq(scal2frq(x,'morl',dt),'morl',dt) == x所有的数值精度都达到了x, dt),但是我希望返回的频率估计值cwtft是相似的。如您所见,它们不是。

有谁知道如何cwtft估计这些频率,以及我是否可以使用反向估计来预测所需的比例?

0 投票
0 回答
165 浏览

matlab - 创建人工信号

我尝试在 Signal Processing StackExchange 上发布此内容,但收效甚微,因为它的人口稀少。由于我使用的是 MATLAB,我希望这里的人也能提供帮助。

我正在尝试设计一个具有两个“组件”的样本信号。我希望信号看起来像左上图,右侧显示了两个组件。时间频谱显示在左下角。

信号和频谱

诚然,我对信号的了解并没有达到标准,但即使经过几个小时尝试摆弄啁啾、正弦函数和正弦函数的组合,我也无法准确地重现我的想法。以下代码与我尝试实现的目标略有相似:

这给出了以下信号:

我的尝试

这很好,但仍然不能令人满意。所以今天我尝试了一种更彻底的方法来理解啁啾和 sinc/gauspuls 函数是如何运作的,我对此有点悬念,但对背景没有太多了解。

据我了解,高斯脉冲的频率恒定,幅度减小。啁啾具有连续频率,可以指定为 t0 和 t1 的频率,并在两者之间进行插值。现在我不明白的是为什么这在频谱图中似乎没有很好地显示出来。

假设我创建了以下形式的啁啾:

我认为频谱图会显示一个填充 0.5Hz 到 2Hz 之间频谱的脊,但频谱图给了我一个高达 500Hz 以上的 y 轴分辨率:

样本啁啾

有人可以向我解释如何为这样的信号获得更清晰的频谱图吗?

此外,我如何在我发布在顶部的频谱图中可视化上部 Ridhe 的这种“逐渐减少”效果?

0 投票
0 回答
907 浏览

arduino-uno - MPU 6050 SD 写入频率 Arduino 不是恒定的,如何有恒定的写入频率?

我是菜鸟,我来自土木工程师,我提前道歉。

我有一个连接到我的 Arduino Uno 的 MPU6050,我将数据写入 SD。我可以以 20 毫秒的采样率写作。

为什么我有这个默认频率?

这是代码的一部分

为什么记录时间不是恒定的,但有时是 40 毫秒(见图)? 在此处输入图像描述

对我来说很重要,因为我的目标是有一个恒定频率来应用 FFT 来研究噪声并确定最佳低通滤波器。

如何修改频率?我想在我的代码上放一个delay() 。