gpt4 book ai didi

android - 使用 fft 从 bfsk 信号中提取数据

转载 作者:行者123 更新时间:2023-12-03 00:16:29 41 4
gpt4 key购买 nike

我有一个记录 FSK 信号的 Android 应用程序。FSK 信号的模块如下:采样率为 8000,位 '1' 为 800Hz,位 '0' 为 400Hz。每个位由 160 个样本表示,这意味着如果数据为 101010,则频率每 0.02 秒发生一次变化。

我采用以下模板记录音频信号:https://stackoverflow.com/questions/23432398/audio-recorder-in-android-process-the-audio-bytes只有我将我的数据直接记录到 ByteArrayOutputStream。
完成录制后,我将字节数组转换为规范化的 double 数组,我检查了这个函数,它可以工作。

我的问题是我被困在这一点上。我想解析数据(用不同频率编码的二进制位),我尝试每次发送到大小为 128 的双数组的 fft block ,我读了一些关于 fft 的东西,我知道 128 太小了.只是现在我不知道如何从这一点着手。如果我理解正确,我需要分析 2 个接近频率并了解我捕获了哪些频率并解析适当的位并分析接下来的 2 个接近频率。我不知道如何做到这一点。我试着在谷歌搜索这个,甚至在这里搜索,没有找到我要找的东西......
有什么想法/建议吗?

最佳答案

FFT 分析长度为 N 的 N/2 个频率,远远超出您的需要。

更好的算法可能恰好是两个 Goertzel 滤波器,每个频率一个,长度为 160。将滤波器滑动 16 个样本(将有 10X 重叠),并为您的一或零检测寻找两个滤波器输​​出之间的最大差异.

关于android - 使用 fft 从 bfsk 信号中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29129525/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com