Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从麦克风检测频率_Java_Audio_Frequency - Fatal编程技术网

Java 从麦克风检测频率

Java 从麦克风检测频率,java,audio,frequency,Java,Audio,Frequency,我想做一个程序,可以传输特定频率的脉冲数据,但不确定如何检测是否存在频率 我想我需要过滤掉所有不需要的频率,但我似乎找不到任何方法 是否有任何库已经这样做了,或者我必须建立自己的库?有这样或类似的例子吗?您需要对信号数据应用傅里叶变换,以便在频域中查看它。是一个开源库,您可以使用它来实现这一点 看起来您似乎正在尝试实现一种新的调制方式,建议您查看用于此目的的经验证的调制技术—通常是和。你在问题中暗示的技术是振幅调制的一种粗略形式——本质上是用比特流调制给定频率的载波。在解调时,这可能是一个很好的

我想做一个程序,可以传输特定频率的脉冲数据,但不确定如何检测是否存在频率

我想我需要过滤掉所有不需要的频率,但我似乎找不到任何方法


是否有任何库已经这样做了,或者我必须建立自己的库?有这样或类似的例子吗?

您需要对信号数据应用傅里叶变换,以便在频域中查看它。是一个开源库,您可以使用它来实现这一点

看起来您似乎正在尝试实现一种新的调制方式,建议您查看用于此目的的经验证的调制技术—通常是和。你在问题中暗示的技术是振幅调制的一种粗略形式——本质上是用比特流调制给定频率的载波。在解调时,这可能是一个很好的起点。由于加窗的采样效应,使用FFT将产生较差的结果,这将导致较差的带宽

解调信号后,您将面临的另一个实际问题是时钟恢复。原始比特流时钟极有可能与接收器处的采样时钟异步。为了解码数据流,您需要恢复发送方的时钟(也就是说,它与本地时钟之间的关系)。A是实现这一目标的常用方法


您还需要了解如何检测比特流的开始-例如,某种帧

寻找快速的Fourie转换。Apache数学库中提供了一些方法。您还可以查看tuxguitar项目的源代码,并了解调谐器是如何在那里制作的。(也使用FFT)根据脉冲的宽度和频率,如果OP打算检测频率超过窗口周期两倍的脉冲,DFT是一个糟糕的选择。如果需要任何类型的频率识别,这是一个非常差的比特率。