标签: frequency-analysis

如何在R中的数据点上运行高通或低通滤波器?

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

图中的绿色图由红色和黄色图组成.但是,假设我只有绿色图形的数据点.如何使用低通/高通滤波器提取低/高频率(即大约红/黄图)?

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

更新:图表是使用生成的

number_of_cycles = 2
max_y = 40

x = 1:500
a = number_of_cycles * 2*pi/length(x)

y = max_y * sin(x*a)
noise1 = max_y * 1/10 * sin(x*a*10)

plot(x, y, type="l", col="red", ylim=range(-1.5*max_y,1.5*max_y,5))
points(x, y + noise1, col="green", pch=20)
points(x, noise1, col="yellow", pch=20)
Run Code Online (Sandbox Code Playgroud)

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

添加了过滤图表的原始图片

library(signal)

bf <- butter(2, 1/50, type="low")
b <- filter(bf, y+noise1)
points(x, b, col="black", pch=20)

bf <- butter(2, 1/25, type="high")
b <- filter(bf, y+noise1)
points(x, b, col="black", pch=20) …
Run Code Online (Sandbox Code Playgroud)

signal-processing r frequency-analysis

37
推荐指数
4
解决办法
4万
查看次数

用于识别间距的.NET库

我想写一个简单的程序(最好是在C#中),我用麦克风唱一个音高,程序识别音高对应的音符.


非常感谢您的及时回复.我澄清一下:

我想要一个(最好是.NET)库来识别我唱的音符.我想要这样一个图书馆:

  1. 我唱歌时识别音符(半音音符).
  2. 告诉我,我离最近的音符有多远.

我打算用这样一个库一次唱一个音符.

.net c# signal-processing frequency-analysis

28
推荐指数
3
解决办法
1万
查看次数

解释计数草图算法

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

algorithm streaming frequency-analysis

20
推荐指数
2
解决办法
1万
查看次数

如何计算android中的声音频率?

我想开发应用来计算Android中的声音频率.Android设备将从麦克风(即外侧声音)获取声音,我在应用程序中有一个彩色背景屏幕.在声音频率变化我必须改变屏幕的背景颜色.

所以我的问题是"我怎样才能获得声音频率"?

有没有可用的Android API?

请帮我解决这个问题.

audio android frequency-analysis

15
推荐指数
1
解决办法
4万
查看次数

确定数据集的"晃动" - Python

我正在开发一个需要实现一组数据摆动的软件.这是我将收到的输入样本,与每个垂直像素带的亮度图合并: 替代文字

很容易看出左边距确实很晃动(即有一吨最小/最大值),我想生成一组图像的关键点.我已经对数据应用了高斯平滑函数~10次,但它开始时看起来很晃动.

有任何想法吗?

这是我的原始代码,但它不会产生非常好的结果(为了摆动):

def local_maximum(list, center, delta):
  maximum = [0, 0]

  for i in range(delta):
    if list[center + i] > maximum[1]: maximum = [center + i, list[center + i]]
    if list[center - i] > maximum[1]: maximum = [center - i, list[center - i]]

  return maximum

def count_maxima(list, start, end, delta, threshold = 10):
      count = 0

  for i in range(start + delta, end - delta):
    if abs(list[i] - local_maximum(list, i, delta)[1]) < threshold: count += 1

  return …
Run Code Online (Sandbox Code Playgroud)

python statistics list frequency-distribution frequency-analysis

13
推荐指数
1
解决办法
755
查看次数

Mel频率倒谱系数如何工作?

我已经从麦克风输入实时计算FFT和音调+绝对频率.现在我想计算音色.

我看到梅尔频率倒谱系数 - MFCC,但我不太了解它.有人可以给我一些关于这个的提示..

algorithm voice frequency-analysis mfcc

9
推荐指数
1
解决办法
5805
查看次数

清理嘈杂的倒谱结果

我一直在iphone上进行简单的频率检测设置.在存在谐波的情况下,使用FFT结果在频域中进行分析有些不可靠.我希望使用倒谱结果来帮助确定正在播放的基本频率.

我正在使用AudioToolbox框架中的AudioQueues,并使用Accelerate框架进行傅立叶变换.

我的过程正是维基百科的Cepstrum文章中列出的Real Power Cepstrum,具体为:信号→FT→abs()→square→log→FT→abs()→square→power倒谱.

我遇到的问题是倒谱结果非常嘈杂.我必须删除第一个和最后20个值,因为它们与其他值相比是天文数字.即使在"清理"数据之后,仍然存在大量的变化 - 远远超过我对第一张图的预期.有关频域和quefrency域的可视化,请参见下面的图片. FFT FFT 倒谱 倒谱

当我在频域中看到如此明显的赢家时,我希望在quefrency域中看到类似的清晰结果.我玩了A440,并希望bin 82左右的音量最高.图表上的第三个峰值代表bin 79,它足够接近.正如我所说,前20个左右垃圾桶在幅度如此天文数字的是unusuable,我不得不从数据集中删除他们为了看到什么.倒谱数据的另一个奇怪的质量是偶数箱似乎远远高于奇数箱.以下是77-86的频率分档:

77: 151150.0313
78:  22385.92773
79: 298753.1875
80:  56532.72656
81: 114177.4766
82:  31222.88281
83:   4620.785156
84:  13382.5332
85:     83.668259
86: 1205.023193
Run Code Online (Sandbox Code Playgroud)

我的问题是如何清理频域,以便我的Cepstrum域结果不那么疯狂.或者,帮助我更好地理解如何解释这些结果,如果它们正如人们在倒谱分析中所期望的那样.我可以发布我正在使用的代码的示例,但它主要使用vDSP调用,我不知道它会有多大帮助.

iphone signal-processing fft pitch frequency-analysis

8
推荐指数
1
解决办法
1335
查看次数

高效算法,可在大量文本中查找最常用的短语

我正在考虑编写一个程序来收集大量文本中最常用的短语.如果问题被简化为仅仅找到单词而不是将每个新单词存储在散列映射中然后在每次出现时增加计数那么简单.但是对于短语,将句子的每个排列存储为关键似乎是不可行的.

基本上,问题被缩小到找出如何从足够大的文本中提取每个可能的短语.计算短语然后按出现次数排序变得微不足道.

algorithm frequency frequency-analysis data-structures word-frequency

8
推荐指数
1
解决办法
2673
查看次数

FSK解调 - 解析日本EWS数据

【这不是重复的.类似的问题涉及人们可以控制源数据的情况.我不.】

在日本有一种叫做"紧急警告广播系统"的东西.激活时看起来像这样:http://www.youtube.com/watch?v = 9hjlYvp9Pxs

在上面的视频中,在2:37左右,发送FSK调制信号.我想解析这个信号; 即,给定一个包含信号的WAV文件,我想最终得到一个包含0和1的StringBuilder,以便稍后处理它们.我有二进制数据的规范和所有,但问题是我对音频编程一无所知.:(

这只是一个爱好项目,但我迷上了.电视和广播制造商可以接收到这个信号并让他们的设备做出反应,所以它不会那么难,对吧?:(

有关信号的事实:

  • 标记音为1024Hz,停止音为640Hz
  • 每个音调长15.625ms
  • 信号开始前和结束后2秒暂停(可能用于检测目的)

到目前为止我做了什么:

  1. 编写一个简单的RIFF解析器,接受8位单声道WAV文件,并允许我从中获取样本.我测试了它,它的工作原理.
  2. 需要15.625ms样本的循环和:
    1. 使用RMS寻找两秒钟的沉默
    2. 使用Goertzel算法确定信号是1024Hz还是640Hz

我遇到的问题:

  • 根据测试数据,在循环期间吞下0和1.
    • 鉴于信号的清晰度(YouTube-to-MP3 rip),这不应该发生.
    • 如果我在Audacity中生成重复的01序列30次,我的程序将获取01对中的大约10对,而不是30对
  • 有时交换0和1(上面的副作用?)
  • 如果我调整代码使其适用于一个测试声音文件,其他测试声音文件将停止工作

我的问题:

  • 任何人都可以给我一个关于如何在软件中正确完成FSK解码的高级概述吗?
  • 我是否需要应用某种过滤器,将信号限制在640Hz + 1024Hz并使其他所有内容静音?
  • 保持时机正确的最佳方法是什么?也许我做错了?
  • 有关这种音频处理的初学者文献的任何链接?我真的很想学习并开始工作.

读取样本的代码是(简化的):

StringBuilder ews_bits = new StringBuilder();
double[] samples = new double[(int)(samplesPerMs * 16.625D)];
int index = 0, readTo = /* current offset + RIFF subChunk2Size */;
BinaryReader br = /* at start of PCM data */;

while (br.BaseStream.Position < readTo)
{
    switch (bitsPerSample / 8)
    {
        case …
Run Code Online (Sandbox Code Playgroud)

c# algorithm audio signal-processing frequency-analysis

8
推荐指数
1
解决办法
1916
查看次数

使用WebAudio API计算Live Mic Audio频率的简单代码

我有网站,我需要显示Live Mic Audio的频率.我有一个这个代码,但它很难理解(它使用傅里叶变换和所有).在一些研究中,我知道getByteFrequencyData()哪个返回音频的频率.有没有人之前使用过Live Mic Audio,最好是在Web Audio API中?

javascript audio frequency-analysis web-audio-api

8
推荐指数
2
解决办法
9841
查看次数