Java 超声波通信

Java 超声波通信,java,android,iphone,ios,signal-processing,Java,Android,Iphone,Ios,Signal Processing,我遇到了一个名为zoosh的android应用程序,它使用超声波频率进行短距离通信 我的印象是,android或大多数手机都不能产生超声波频率 有人能告诉我这个东西是如何工作的,以及如何实现这样的东西吗 就我而言,我认为我们需要为每个用户产生一个独特的频率,可以从另一部手机的麦克风中读取。然后在另一部手机上,我们可以使用离散傅里叶变换来获得指定范围内的最大频率 顺便说一句,我想制作一些类似tagtile.com的东西,但只需使用两部手机,不需要额外的硬件 任何帮助都会很好 谢谢您将无法接收到高于

我遇到了一个名为zoosh的android应用程序,它使用超声波频率进行短距离通信

我的印象是,android或大多数手机都不能产生超声波频率

有人能告诉我这个东西是如何工作的,以及如何实现这样的东西吗

就我而言,我认为我们需要为每个用户产生一个独特的频率,可以从另一部手机的麦克风中读取。然后在另一部手机上,我们可以使用离散傅里叶变换来获得指定范围内的最大频率

顺便说一句,我想制作一些类似tagtile.com的东西,但只需使用两部手机,不需要额外的硬件

任何帮助都会很好


谢谢

您将无法接收到高于1/2采样率的任何频率,它们只是折叠回混叠。为了消除这种混叠,通常在A2D采样器之前有一个滤波器,用于切断采样频率1/2以上的频率

当然,所使用的频率可能不是真正的超声波,只是在频率能力的上端,在相当低的音量下,并且设备非常接近

在接近超声波频率和接近2倍频率的采样率下使用DFFT将为您提供相当宽的频率箱。最好只是对数据使用脉冲编码调制之类的方法

每个用户的区别可以通过对包含用户ID的数据进行预处理来实现

或考虑蓝牙,GAMEKIT为短距离的点对点通信提供了一个很好的API。蓝牙4.0版提供了非常快速的连接,尽管它只在最新的设备上可用


注:用于声音的术语超声波指的是高于可听声音频率的任何东西,名义上包括超过20000 Hz的任何东西。

您将无法接收到高于采样率1/2的任何频率,它们只是折叠混叠。为了消除这种混叠,通常在A2D采样器之前有一个滤波器,用于切断采样频率1/2以上的频率

当然,所使用的频率可能不是真正的超声波,只是在频率能力的上端,在相当低的音量下,并且设备非常接近

在接近超声波频率和接近2倍频率的采样率下使用DFFT将为您提供相当宽的频率箱。最好只是对数据使用脉冲编码调制之类的方法

每个用户的区别可以通过对包含用户ID的数据进行预处理来实现

或考虑蓝牙,GAMEKIT为短距离的点对点通信提供了一个很好的API。蓝牙4.0版提供了非常快速的连接,尽管它只在最新的设备上可用


注:超声应用于声音的术语是指高于可听声音频率的任何东西,名义上包括超过20000 Hz的任何东西。

如果你有两部手机,去买一对免费的应用程序-任何能让你产生高频声音的东西,以及任何能从麦克风显示音频范围的东西

使用这些-您可以清楚地看到,可以从一个设备发送数据,这些数据显示在另一个设备上,但人类听不到!当然正如你所注意到的,有很多东西可以做到这一点,但亲自观看总是很有趣的:-


Zoosh出售SDK-似乎你已经发现了这一点?

如果你有两部手机,去买一对免费的应用程序-任何可以让你产生高频声音的应用程序,以及任何可以从麦克风显示音频范围的应用程序

使用这些-您可以清楚地看到,可以从一个设备发送数据,这些数据显示在另一个设备上,但人类听不到!当然正如你所注意到的,有很多东西可以做到这一点,但亲自观看总是很有趣的:-


Zoosh出售SDK-似乎你已经发现了这一点?

显然,大多数手机都能产生超声波频率。这并不奇怪——多年来,几乎只有年轻人才能听到超声波铃声。当然,硬件的设计并没有考虑超声波的使用,所以我想它可能在某些手机上不起作用。显然,大多数手机都能产生超声波频率。这并不奇怪——多年来,几乎只有年轻人才能听到超声波铃声。当然,硬件的设计并没有考虑超声波的使用,所以我想它可能在某些手机上不起作用。