是的,您绝对应该使用 FSK,但它必须是异步的,这就是原因。同步解调 FSK 称为相干解调。相干解调 FSK 需要输入载波锁相(相位同步),这通常使用锁相环 (PLL) 来完成,除非您的信噪比 (SNR) 至少为 10 dB 左右,否则它不能很好地工作。通常音频广播没有这么高的信噪比,所以忘记相干解调。除了在电磁信号的实践中,对于 Pb ≤ 10−4,非相干 FSK 最多只需要比相干 FSK 多 1 dB 的 Eb/No(这意味着为了获得相同的误码概率 Pb,您只需要传输额外的每个位的 dB 功率)。然而,非相干 FSK 解调器相当容易构建,因为不需要生成相干参考信号。因此,在实际系统中,几乎所有 FSK 接收器都使用非相干解调,因为每个人都更喜欢传输额外 dB 的功率,而不是遇到所有同步问题。
回答您的主要考虑:
200bps 带宽(如果不是更多):我使用连续相位正交载波 8fsk 实现了 200bps,将智能手机设置为距离扬声器 1 m。
对噪声有一定程度的弹性:我实现了一个 BCH 纠错码,能够修复每个数据块多达 8 个错误。当添加 25% 到 50% 的冗余时,BCH 码的编码增益最大
最好是 16khz - 20khz 载波和 44.1khz 采样:我建议将采样频率提高到 48 kHz(这在当今智能手机中很常见),并将您的操作带宽限制在 17.5 或 18 到 21.5 kHz 之间。如果您使用 44.1,那么您必须在 17.5 或 18 和 20.5 kHz 之间工作。但是您必须非常小心选择的扬声器和麦克风,因为并非所有扬声器和麦克风都以这种高频率工作。您必须对它们进行频率响应分析。如果您使用的是 PC,我会推荐 ARTA 或 Audacity,或者如果您是程序员 Matlab 或 Octave。如果您使用的是智能手机,我会推荐任何音频频谱分析应用程序
不太复杂的编码逻辑:我会推荐非相干相关正交 fsk 解调器。比任何基于 fft 的实现都要轻得多。特别是如果您距离多普勒和多径对您影响不大的 1 m 以内