问题标签 [frequency-analysis]

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 投票
3 回答
4211 浏览

r - 如何从 .wav 文件中提取特定频率范围?

我对声音处理真的很陌生,所以也许我的问题是微不足道的。我想要做的是使用 R 从 wav 文件中提取特定的频率范围(比如说 150-400 Hz)。换句话说,我想创建另一个仅包含频率分量的波形文件(wave2)我指定(150 到 400 Hz,或其他)。

我在网上阅读了一些东西,发现这可以通过 FFT 分析来完成,问题就来了。

假设我有这个代码:

我们得到的情节是:

在此处输入图像描述

嗯,有两个高峰。如果我们想知道它们对应的频率,只需找到:

前两个值非常接近我用来创建声音的频率:

所以,现在问题来了:如果我想从我的声音中删除范围内的频率,例如,如何进行(1, 500)?以及如何仅选择(并保存)范围(1, 500)?我所关注的是,我的新声音(删除了频率)将变得近乎简单Sine(freq=880, duration=1)(我知道,不可能完全一样!)。那可能吗?

我很确定这fft(DATA, inverse = TRUE)就是我需要的。但我不确定,但我不知道如何进行。

0 投票
5 回答
4277 浏览

perl - 使用 Perl 计算消息中的字符频率

我正在编写一个 Perl 脚本来找出消息中字符出现的频率。这是我遵循的逻辑:

  • 使用 getc() 从消息中一次读取一个字符并将其存储到数组中。
  • 运行从索引 0 开始到此数组长度的 for 循环。
  • 此循环将读取数组的每个字符并将其分配给临时变量。
  • 运行另一个嵌套在上面的 for 循环,它将从被测试字符的索引运行到数组的长度。
  • 使用此字符和当前数组索引 char 之间的字符串比较,如果它们相等,则递增计数器。
  • 完成内部 For 循环后,我正在打印 char 的频率以进行调试。

问题:我不希望程序重新计算已经计算过的字符的频率。例如,如果字符“a”出现 3 次,那么对于第一次运行,它会计算正确的频率。但是,在下一次出现“a”时,由于循环从该索引运行到结束,因此频率为(实际频率 -1)。与第三次类似,频率为(实际频率 -2)。

为了解决这个问题。我使用了另一个临时数组,我会将已经评估频率的字符推送到该数组中。

然后在 for 循环的下一次运行中,在进入内部 for 循环之前,我将当前字符与评估字符数组进行比较并设置一个标志。基于该标志,内部 for 循环运行。

这对我不起作用。还是一样的结果。

这是我为完成上述任务而编写的代码:

0 投票
2 回答
6500 浏览

matlab - 如何在幅频响应上使用逆 FFT?

我正在尝试创建一个应用程序来计算图形均衡器 FIR 滤波器的系数。我在 Matlab 中做一些原型设计,但我遇到了一些问题。

我从以下 Matlab 代码开始:

但是当我对系数进行 fft() 时,我看到频率被拉伸了 2 倍,并且我的 AFR 数据的结尾丢失了:

所以我想,我用错了。我是否需要将我的 binamps 向量加倍并在第二部分创建一个镜像?如果是这种情况,那么仅仅是 Matlab 的 ifft 实现还是其他 C/C++ FFT 库(尤其是 Ooura FFT)需要镜像数据来进行逆 FFT?

还有什么我应该知道的以从 ifft 中获取 FIR 系数吗?

0 投票
1 回答
231 浏览

mysql - 检查帖子频率是否为垃圾邮件的好算法

我有一个人们可以发布文本的网站。每个帖子都存储在一个数据库中,其中包含发布者的 ip 和发布时间。如果我能确定海报是机器人、垃圾邮件发送者等,我希望能够显示一个recaptcha。

什么是一个好的算法来做到这一点?最简单的选择是分析预定时间段内的帖子数量,比如一分钟,是否大于选择的限制,比如 10。但是,这有一个缺陷是多个人从同一个 ip 后面发帖,甚至是创建随机频率间隔>该时间段的机器人,或发布少于该时间段限制的帖子。

显然没有“正确”的答案。然而,有些算法比其他算法更好,我只是想找到最好的算法。

0 投票
5 回答
747 浏览

c# - 是否可以根据字符串中字符的频率创建数组?

本质上,我发现了一段旧的 LINQ C# 代码,它计算了某个字符串中最常见的字母。但是,我正在使用频率分析来解决已被移位加密的解码文本,因此我希望它不仅返回最流行的字符,而且还返回按出现频率排序的字符数组。

这是我在这里找到的 LINQ 代码:

0 投票
2 回答
3720 浏览

sql-server - SQL - 确定列中最常出现的单词

有没有一种简单的方法可以使用 T-SQL 或 VBA 确定列/字段中最常出现的单词?

我正在为两个给定的记录集开发一个模糊匹配系统,并希望生成一个匹配字符串,其中最常出现的单词被删除。由于数据来自客户关系管理数据库,因此将删除“limited”、“ltd”、“plc”和“CORPORATION”等术语。

0 投票
1 回答
1723 浏览

java - 在 WAV 文件上使用 jTransforms 库?

我正在尝试使用 jTransforms 库对 WAV 文件进行频谱分析:官方网站

但是我在如何使用 jTransforms 将 WAV 文件转换为 FFT 可接受的输入时遇到问题,以及如何在 FFT 之后显示频谱?我搜索了谷歌,发现我需要以某种方式将 WAV 文件转换为double[]or Complex[],然后我应该如何解释输出?

抱歉,我对 FFT 很陌生,所以这个问题听起来可能非常愚蠢。非常感谢!

0 投票
2 回答
3945 浏览

c# - 在 C# 中使用频率分析解密文本。

我的任务是使用频率分析解密文本文件。这对我来说不是一个问题,但我绝对不知道下一步该做什么。到目前为止,我从文件中读取文本并计算每个字母的频率。如果有人能指出我根据频率交换字母的正确方向,那将不胜感激。

0 投票
1 回答
655 浏览

algorithm - 波信号处理(期)

在波信号中检测 1 个周期的最佳方法是什么?

有人有特定的算法来做到这一点吗?你知道你在哪里找到的吗?

我知道fft,但我不知道如何让它给我波浪周期(时间位置)。

分割信号周期!

我想要pascal,matlab ...

0 投票
2 回答
12312 浏览

math - Converting Real and Imaginary FFT output to Frequency and Amplitude

I'm designing a real time Audio Analyser to be embedded on a FPGA chip. The finished system will read in a live audio stream and output frequency and amplitude pairs for the X most prevalent frequencies.

I've managed to implement the FFT so far, but it's current output is just the real and imaginary parts for each window, and what I want to know is, how do I convert this into the frequency and amplitude pairs?

I've been doing some reading on the FFT, and I see how they can be turned into a magnitude and phase relationship but I need a format that someone without a knowledge of complex mathematics could read!

Thanks


Thanks for these quick responses!

The output from the FFT I'm getting at the moment is a continuous stream of real and imaginary pairs. I'm not sure whether to break these up into packets of the same size as my input packets (64 values), and treat them as an array, or deal with them individually.

The sample rate, I have no problem with. As I configured the FFT myself, I know that it's running off the global clock of 50MHz. As for the Array Index (if the output is an array of course...), I have no idea.

If we say that the output is a series of One-Dimensional arrays of 64 complex values:

1) How do I find the array index [i]?

2) Will each array return a single frequency part, or a number of them?

Thankyou so much for all your help! I'd be lost without it.