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

java - 如何使用 lucene 的 shingleanalyzerwrapper + standardanalyzer + indexreader?

我希望你能帮助我解决这个问题。我打算做什么:给定一个正确的文本,我想计算没有停用词的每个词干化标记 ngram 的频率(换句话说,停用词已经被删除)。

这是这种情况:我正在使用 ShingleAnalyzerWrapper + StandardAnalyzer 使用 IndexWriter 索引一些文本,并且当我向 IndexWriter 添加文档时(如下所示: indexwriter.addDocument(doc, analyzer); 其中分析器再次是 ShingleAnalyzerWrapper + StandardAnalyzer )。

但问题是:当我得到术语频率和术语时,停用词似乎被下划线取代。

这是输入:
String text = "to i want to to i want to linked";
String text2 = "super by hard easy";

这是输出:
term: |freq:6
term:
_|freq:2
term:_ hard|freq:1
term:_ i|freq:2
term:_ link|freq:1
term:easy|freq:1
term :hard|freq:1
term:hard easy|freq:1
term:i|freq:2
term:i want|freq:2
term:link|freq:1
term:super|freq:1
term:super _|freq: 1
学期:想要|频率:2
学期:想要 _|频率:2

如果有什么不清楚的地方,请问我,这样我会尽量让自己更清楚

谢谢您的帮助

0 投票
2 回答
2136 浏览

iphone - 将 AudioQueueBufferRef 数据传递给 FFT 函数!

我正在尝试通过 iphone 上的麦克风计算给定声音过程的频率。

我已经阅读了有关 FFT 的所有帖子(包括所有苹果代码示例,例如 aurioTouch、SpeakHere),但没有解决这个问题。

我正在使用 AudioQueue,但是如何从 AudioQueue 回调函数 (MyInputBufferHandler) inBuffer->mAudioData 传递原始数据“AudioQueueBufferRef”。到实际 FFT "DSPSplitComplex" 数据类型,所以我可以计算它。所有这些都使用 Accelerate 框架。

FFT 函数。

我还没有找到关于如何做到这一点的任何地方。请帮忙!

0 投票
4 回答
5088 浏览

c++ - 为初学者实现实时频谱

我想开发一个应用程序,它将音频(.wav)作为输入并显示其实时同步频谱。从我所看到的主题来看,这需要波的傅立叶变换。有人可以建议我应该从哪里开始吗?可能的参考资料和书籍。我想了解实时频谱实现的细节,而不是我非常熟悉的 GUI 的开发(在 C# 和 C++ 中)。

0 投票
1 回答
254 浏览

frequency - 傅立叶变换 -

我一直在对这个主题进行大量研究,我终于找到了方向。下面是我正在使用的 java 代码中的两个复数:-9771.0 - j2125.0 -16184.09634718744 - j53968.71008512241

我知道幅度/幅度可以通过执行 sqrt(a^2 + b^2) 来计算,据我所知。我已经阅读了有关采样率的信息,但我需要单独对此进行更好的解释,并希望指出正确的方向以获取知识。我已经完成了功率谱图,但我需要在纸上做这个,所以我会知道如何获得频率。

0 投票
3 回答
3087 浏览

r - R绘制具有特定模式的字符串的频率

给定一个包含字符串的列的数据框。我想绘制具有某种模式的字符串的频率。例如

我想绘制包含模式“cd”的字符串的频率任何人有一个快速的解决方案?

0 投票
2 回答
17286 浏览

algorithm - 解释计数草图算法

有人可以解释计数草图算法的工作原理吗?例如,我仍然无法弄清楚如何使用哈希。我很难理解这篇论文

0 投票
2 回答
697 浏览

java - 如何将一组离散的数据传输到频域并返回(最好是无损的)

我想获取一个大小约为 70-80k 的字节数组,并将它们从时域转换为频域(可能使用 DFT)。到目前为止,我一直在关注 wiki 并获得了此代码。

据我所知,这可以找到每个频率窗口/箱的幅度。然后我穿过窗户,找到震级最高的那一个。我在该频率上添加了一个标志,以便在重建信号时使用。我检查重建的信号是否与我的原始数据集匹配。如果它没有找到下一个最高频率窗口,并在重建信号时标记它。

这是我用来重建信号的代码,我很确定这是非常错误的(它应该执行 IDFT):

freqUsed 是一个布尔数组,用于标记在重建信号时是否应使用频率窗口。

无论如何,这是出现的问题:

  1. 即使使用了所有频率窗口,也不会重建信号。这可能是由于...
  2. 有时 Math.exp() 的值太高,因此返回无穷大。这使得难以获得准确的计算。
  3. 虽然我一直关注 wiki 作为指南,但很难判断我的数据是否有意义。这使得测试和识别问题变得困难。

脱离问题:

我对此很陌生,并不完全了解所有内容。因此,感谢任何帮助或见解。感谢您花时间阅读所有内容,并提前感谢您提供的任何帮助。任何帮助真的会很好,即使你认为我这样做是最糟糕的可怕方式,我想知道。再次感谢。

-

编辑:

所以我更新了我的代码,如下所示:

对于原始变换和:

为逆变换。虽然我仍然担心它不能正常工作。我生成了一个包含单个正弦波的数组,它甚至无法分解/重建它。关于我缺少什么的任何见解?

0 投票
8 回答
52176 浏览

r - 如何对 R 中的数据点运行高通或低通滤波器?

我是R的初学者,我试图在没有找到任何东西的情况下找到有关以下内容的信息。

图中绿色图形由红色和黄色图形组成。但是假设我只有绿色图表之类的数据点。如何使用低通/高通滤波器提取低频/高频(即近似红色/黄色图表) ?

低频正弦曲线与高频正弦曲线调制到

更新:图表是用

更新 2:使用signal包中的 Butterworth 过滤器建议我得到以下信息:

添加了过滤图的原始图片

计算有点工作,signal.pdf 几乎没有给出关于W应该有什么值的提示,但最初的 octave 文档至少提到了让我前进的弧度。我的原始图表中的值没有选择任何特定的频率,所以我最终得到了以下不那么简单的频率:f_low = 1/500 * 2 = 1/250f_high = 1/500 * 2*10 = 1/25采样频率f_s = 500/500 = 1。然后我为低通/高通滤波器(分别为 1/100 和 1/50)选择了介于低频和高频之间的 f_c。

0 投票
2 回答
425 浏览

math - 如何将离散信号从时域传输到频域并返回而不会丢失数据?

几个星期以来,我一直在尝试实现一个 DFT,它采用任意字节集并将它们视为信号。然后将它们转换到频域。之后,它将它们转换回来。它最初只是尝试使用一些组件来重建原始信号。当这失败时,我尝试使用所有组件,但仍然失败。

我一直遵循维基百科的方程式作为如何执行此操作的指南,并且我的代码似乎与给出的方程式(在我的脑海中)相匹配:

密度泛函:

身份证:

任何人都可以帮我确定问题所在吗?

我之前问过一个关于同一个项目的问题,但措辞很糟糕,编辑可能会造成更多的混乱,而不是更少。此外,虽然这个问题可能已经得到解答,但我还有更多需要弄清楚。可以在这里找到

0 投票
2 回答
308 浏览

actionscript-3 - 傅立叶系数的结果对窗口大小非常敏感?

我正在尝试使用闪存中的窗口傅立叶级数制作频率分析仪,但我的窗口大小极大地影响了系数的大小。

我正在使用教科书中的公式来计算每一帧的系数:

其中deltax是样本之间的时间间隔,pcmFloatValue是 *n*deltax* 处的时域值。在教科书中,积分限制是0到2PI,然后积分除以PI......但我认为我可以将它用于任何区间并消除除法。

所以我获取频率大小的代码在这里:

number是以 Hz 为单位的频率,frameba是 44100 Hz 音频的单声道采样。我每抓到一个frameba就调用这个函数,它对应于这段代码:

所以问题是,当我有时改变窗口时,这两个系数的幅度变得非常大,而且它不是线性的。当窗口为 42 毫秒时,我得到如下值:

当我将其设置为 100 毫秒时:

...,3.487381020768127,7.610466058045129,45.780152579896324,77.46963149803167,35.531672823487014,0.6057853252694128,...

当我将其设置为 500 毫秒时:

所以它的平均大小不会不断增加。我不确定我是否做错了什么,我是否正确地考虑了这一点?