Embedded 用于音调检测的信号链?

Embedded 用于音调检测的信号链?,embedded,signal-processing,goertzel-algorithm,Embedded,Signal Processing,Goertzel Algorithm,我正在尝试制作一个嵌入式装置,它可以检测驻极体麦克风发出的19kHz音调。我有一个多级带通滤波器/前置放大器连接到微控制器的ADC中,我正试图找出对信号进行数字调节的最佳方法,以便检测音调的存在 我已经实现了一个Goertzel过滤器来查找感兴趣的频率。我的ADC以4000KHz的频率采集400个样本,然后微处理块并将结果添加到100点移动平均值。查看每个模块后的终端输出,我可以肯定地看到,当发射机打开时,数字会出现整体跳跃。然而,当电源打开时,电源读数中有很多噪音,我所在房间的噪音地板也在不断

我正在尝试制作一个嵌入式装置,它可以检测驻极体麦克风发出的19kHz音调。我有一个多级带通滤波器/前置放大器连接到微控制器的ADC中,我正试图找出对信号进行数字调节的最佳方法,以便检测音调的存在

我已经实现了一个Goertzel过滤器来查找感兴趣的频率。我的ADC以4000KHz的频率采集400个样本,然后微处理块并将结果添加到100点移动平均值。查看每个模块后的终端输出,我可以肯定地看到,当发射机打开时,数字会出现整体跳跃。然而,当电源打开时,电源读数中有很多噪音,我所在房间的噪音地板也在不断变化。我不知道如何调整阈值级别/过滤掉所有这些噪音

我尝试了一些方法,但它们似乎都非常嘈杂,因为我的信号基线到处漂移:

  • 用Hamming/Blackman窗口对块进行预处理
  • 滤波器输出中总接收的块功率与频带功率之比
  • 感兴趣频带(19kHz)与外部频带的功率比, 但在感兴趣的频带附近(18.5kHz)
编辑:我已经做了一些更多的阅读,因为张贴这篇文章。计算(2*Ew)/(N*Et),其中Ew是我的滤波器的输出,Et是我的块中的平方和,这是进行此测试的最佳方法吗

关于如何处理这一问题和/或采用更好的信号提取方法,有何建议


谢谢

采样率为4000KHz(=4.0 MHz)?这是打字错误吗?采样理论(又称奈奎斯特定理)说,你只需要38kHz的采样就可以检测到19kHz。除非这是非常专业的硬件,否则您的麦克风很可能无法检测到远高于20kHz(人类听力的近似上限)的声音。音频采样频率通常为44kHz或48kHz是有原因的。因此,除非您有其他理由运行ADC的速度如此之快(即另一个输入),否则没有理由采样速度接近如此之快。记住这一点,确保高于采样频率/2的任何东西都不会通过你的带通,否则你会有混叠问题。正如其他人所说,你的采样率要么是错误的,要么是错误的,不要忘记大多数系统都希望低通滚降带低于奈奎斯特。有一些非常小的驻极体可以在你的频率下工作,尽管最常见的驻极体不能工作-使用模拟输出MEMS麦克风,你可能会做得更好。最后,如果你使用频移键控而不是简单的在场/缺席,那么检测/噪声抑制会更容易。对不起,各位,这确实是一个输入错误。应该是40000Hz。