问题标签 [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.
arduino - 处理 + bitWrite + arduino
我正在使用 Arduino 并使用 Arduino 库进行处理。
我收到错误“该函数bitWrite(byte, int, int)
不存在。”;它接缝处理+ Arduino bitWrite 函数不能一起工作。由于这条线,它被提出:
我在这个项目中的目标是修改音乐反应草图以使用移位寄存器。
这是我的完整代码:
Arduino_Shift_display
节拍监听器
c++ - 如何从录制的声音中获取 PCM 数据以进行傅里叶分析
我一直在研究可以接收声音并输出其核心频率的 c++ 代码,就像吉他调音器一样。我可以生成我自己的随机正弦波,并成功地从一个只是幅度与时间的文本文件执行 FFT。我只是不知道如何从麦克风或声音文件中生成可用数据。
有没有一种简单的方法来采样声音并让它以幅度与时间的文本文件输出数据?
我研究了 WAV 文件格式以及各种块的工作方式,但它有点超出我的水平。非常感谢任何帮助。
matlab - Matlab中声音信号的频率分析与分类
我在信号处理任务中遇到了一些问题。这个想法是分析声音信号,其中包含有人在老式模拟电话线上拨打电话号码的声音。函数dtmf_84125P将信号的文件名作为输入,读取它并返回一个包含所拨号码的字符串,例如
然后例如,数字 = '0504063452'。
我试图做的如下所示:
所以想法是对信号进行小部分分析,知道在 0.07+0.04 s 的窗口内拨打的号码永远不会超过一个。所以我循环遍历原始信号x,每次信号的分析部分都是这个长度并命名为s。I 将其傅里叶变换为 S,并分析光谱不同点的能量。如果存在显着能量的峰值,我会尝试根据代码开头作为注释给出的表格将这些峰值分类为一个数字。
但是,此代码生成的输出只是一个空字符串。我对我在每个窗口中绘制的频谱持怀疑态度,因为它通常包含 4 个峰值而不是 2 个。此外,与桌子。我实际上不确定这种信号能量的做事方式是否是最好的方法,所以我愿意接受建议,但是已经实现了这样的代码,如果可以使用它当然会很方便。它至少可以为我节省一些时间。
我现在不会再提出这个问题了,但请不要犹豫,询问您是否需要更多信息。谢谢您的帮助!
-米凯尔
java - FFT 吉他调音器应用 - 不正确的频率
我一直在研究吉他调音器应用程序。我知道 FFT 对于这种应用程序来说是一个糟糕的选择。然而,随着截止日期越来越近,我最初提交的规范指定使用该算法。所以不幸的是我被它困住了。
感谢对先前问题的回答和对本博客的使用:http: //blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html
我有一个应用程序,它接收音频,计算频率和两个图表,并将结果与 5 个八度音阶的已知音符范围进行比较。
最后一个问题是计算出的频率仍然与读入的频率不同。我使用了在线提供的频率发生器,我发现它会得到高于或低于给定音符的频率。
例如,读入 C 将在不同的八度音阶上得到升 B 或升 C。手机与噪声源的距离也会影响读数。
是否有发生这种情况并修复的已知示例,或者是因为 FFT 算法,我的应用程序无法正常工作?
我的代码可以在上一篇找到: Displaying a double (frequency) that is不断更新,同时使用Android录制
添加了一个低通滤波器以消除背景环境噪声,并添加了一个环形缓冲区以获得给定几个频率的平均值。
java - Android 应用程序可实时录制声音并识别频率
我需要开发一个应用程序来使用手机的麦克风实时记录频率,然后显示它们(以文本形式)。我在这里发布我的代码。FFT 和复数类已从http://introcs.cs.princeton.edu/java/97data/FFT.java.html和http://introcs.cs.princeton.edu/java/97data/Complex.java使用.html。问题是当我在模拟器上运行它时,频率从某个随机值开始并不断增加直到 7996。然后重复整个过程。有人可以帮我吗?
signals - 使用 STFT 进行信号合成分析
我需要将信号转移到频域,经过一些修改后,再次使用 STFT 和 ISTFT 转移回时域。通过使用相同的窗口进行分析和综合,将获得完美的重建。但是,如果我选择两个不同的窗口,我将无法完全重建。就我所观察到的而言,原始信号和重建信号的比例是帧提前的函数。如果您能帮助我解决问题以获得完整的重建,那就太好了?
python - 在 numpy 中使用 FFT 的频率分辨率问题
我使用泰克示波器来执行一些信号采集。我得到 10.000 个测量点(几个信号周期),我必须对那组数据进行频率分析。我的信号是 8MHz 正弦波。当我使用 SciPy 或 NumPy 时,我得到了相同的结果——频率分布得太宽了。两个值之间的距离是 500kHz,最高频率是 2.5GHz(荒谬)。当我想测量 8MHz 附近的频率带宽时,我只能得到 7.5、8.0 和 8.5MHz 的准确值。我试图改变由决定的样本间距(x[1]-x[0])
,但我没有得到更好的结果。
verilog - 在 Verilog 中调整模块的工作频率
我正在创建一个相当复杂的模块,其中涉及 2 个模块的时序分析,每个模块都有自己的算法,但将 2 个有符号数作为输入并输出一个有符号数。
我正在使用 Xilinx 作为我的综合工具在 Verilog 中为 FPGA 设计这个模块。现在我了解到赛灵思通常会为任何模块提供最坏情况下的时序分析。这意味着,如果我有一个从输入到输出(包括路由时间)需要 250 皮秒的数字范围,如果甚至有一组输入需要 400 皮秒,那么 Xilinx 显示的时序分析将是 400 皮秒。
我的目标是找到:
1) 如果模块 1 对于任何一组数字都比模块 2 快。
1) 模块 1 比模块 2 快的数字范围。
我能想到的唯一合乎逻辑的方法是提高模块的工作频率。那就是强制两个模块在 300 皮秒而不是 400 皮秒之后给出它们的输出。
显然,如果我提高工作频率,测试台中的一些输入会给出错误的输出。我的假设是,首先开始给出错误答案的模块具有算法。
所以我的疑问是:
1)是否可以使用 Xilinx 增加 Verilog 中模块的工作频率(在综合或分析期间我必须强制执行的一些设置)。如果没有,是否有更好的工具可以进行时序分析?
2)这种方法可行吗?没有使用 Cadence 进行门级合成,无论如何,我可以使用 Verilog 找出每个门的每组有符号数字的实际时间延迟分析吗?
r - 分解周期图以提取关键信号
我有一个标准周期图,由 R“stats”包中的频谱函数调用生成,其中包含频率与频谱密度。频谱分析涉及由许多信号和噪声组成的长月海洋水位时间序列数据。
我希望确定对应于频谱密度峰值的正弦信号幅度,频率为 0.071(14 个月周期)和 0.0094(8.85 年周期)。如何将频谱密度的纵坐标转换为信号幅度?是否有相对快速的转换?
R中是否有推荐的函数调用/包来从周期图中提取对应于已知频率的真实正弦信号的估计值?
非常感谢菲尔
matlab - Matlab:如何在 tf-system 上应用低通滤波器以在 simulink 中进行更快的评估
我有一个由n x n
具有传递函数的矩阵定义的机械振荡系统tf( ... )
。
在下图中,您可以看到一些选定的频率响应。它以高频显示各种不规则物。
当我在 Simulink 中将此系统与其他高阶系统结合时,所需的步长必须非常小,否则我的系统不稳定。模拟时间非常长,这使得无法验证我的模型的一般功能。
出于这个原因,我想在我的传输矩阵上应用一个低通滤波器,这样我就可以使用更大的步长来加快仿真时间。有没有办法在我的 matlab 代码或 Simulink 中实现这一点?
最后,我想根据我有多少时间以及需要哪种精度来调整阈值频率。
我已经为合适的求解器做了一些研究,但没有成功。关于求解器的任何建议也会对我有所帮助。
这是我可用的工具箱的微薄列表:
先感谢您!
编辑:图片说明@am304的建议
将系统从 18 阶简化到 4 阶的波特图,在我的情况下不再需要低通。