一、项目思路
在日常生活我们可以听到各种不同的声音,但大多数声音是通过声音的发出地和我们平时所积累的经验来分辨,在遇到相似的声音时我们便很难分辨出,因此我们可以设法将声音通过傅里叶变换可以从时域转换至频域,从频域的视角再去分析声音,我们可以根据不同声音的频谱模式来分析声音的频谱从而了解其特征并解决具体问题,例如语音识别等。
二、方案框图
链接:
https:/www.digikey.cn/zh/schemeit/project/音频频谱检测电路-8855acad74ae40c099788a6ce6c5d393
主要元器件:
稳压器:使用Microchip的MIC5504-3.3YM5-TR
MIC5504-3.3YM5 TR是一款固定输出, 低压差(LDO)稳压器,5引脚SOT-23封装。这款先进的通用LDO具有优秀的性能, 适用于电池供电应用。稳压器具有 3.5µA 低电源电流,有效延长时间待机产品的电池寿命。与基于PNP的设计不同,2ΩPMOS 器件能够在整个工作范围和压差下保证超低电源电流。器件具有内部保护,能够防止输出短路、电池反接和热过载。内部电源就绪(POK)比较器指示输出是否超出稳压范围。MIC5504的输出具有自动放电功能, 当启用引脚为低电平时,可以激活功能。 MIC5504使能引脚上具有内部下拉电阻器、使能引脚上具有3ym5-3ym5-4t、可在使能引脚左侧浮动时禁用输出。 MIC5504 T5特别适用于处理器启动期间控制信号浮动的应用。特别适用于电池供电的应用、 MIC5504 m5-3.3ym5-m5 T5 具有 2% 的初始精确度、低压降电压(300mA时为160mV)和低接地电流(通常为38μA)。m5-3.3ym5-4ym5 还可置于零断开模式电流状态、禁用时几乎不会消耗电流。
麦克风:SPH6611LR5H-1
该麦克风的主要特点为:
1、灵敏度范围:-39dB---- -37dB
2、卓越的可靠性及稳定性,100%工厂测试
- 卓越的信噪比:59dB
4、低功耗,超小体积
5、表面贴装技术
6、优良的温度系数:Max±0.60 dB/℃
7、优良的抗压系数:Max±0.55 dB/Kpa
8、专利新型硅技术
三、设计思路及流程
本次项目可分为硬件和软件两部分
放大电路部分:放大电路所采用的电路为同相放大电路,由于树莓派ADC端口工作的范围为0-3.3V,麦克风所采集到的信号幅度大约为0.5左右,因此将放大电路的放大倍数设置为5倍。功能主要为放大信号以及供电电路,实现对信号的采集以及放大,将其链接至pico,并通过供电电路来为pico以及放大电路供电。电源使用4节1.5V的电池作为电源为运算放大器供电,并使用稳压器提供1.5V的直流偏置。
软件部分:通过对pico的编程实现对信号的FFT以获取信号的频谱,并将获取的频谱输出至OLED屏上显示。由于C++相比于MicroPython可以更加方便的来对硬件进行直接的操作,因此采用C++作为开发语言来对Pico进行编程。而开发平台则选择 ArduinoIDE,Arduino IDE的环境配置非常简单,并且可以方便的使用大量库函数,以及提供许多样例作为参考。
项目流程:
程序首先需要通过麦克风接收模拟声音信号,然后经放大电路将声音信号放大后在传入树莓派,首先在ADC接口采样,通过模数转换将模拟信号转换为数字信号,再对所得的数字信号进行滤波,去除信号中的直流分量,接着对信号进行FFT变换,得到信号频谱,并将结果输出至OLED屏幕显示并采用DMA来对数据进行采样。DMA可以将数据从外设直接传递给内存,当使用DMA时,DMA控制器按照事先配置的参数,执行数据传输操作,并且整个过程不需要CPU参与,而pico的slip函数无法控制采样速率。这意味着当使用DMA采样时可以通过对 DMA 控制器的配置来实现 对采样速率的精确控制,以实现更加精确的采样,并且由于DMA传输过程中不需要CPU的参与,系统可以在从外设获取数据的同时,CPU对已有的数据进行FFT运算,提高了系统的精确度以及响应速度。
四、心得体会
本次项目充分发挥了参与者的项目构思能力和设计能力,要求参与者能够将想法付诸于行动。通过本次声音频谱检测项目的设计,我对信号与系统的相关内容有了更深的了解,明白了时域和频域的对应关系以及信号在频域处理的便利性,对项目内容的具体构思方法也有了一定的系统框架。通过在scheme-it上面绘制流程框图,我也对这一工具有了新的了解,掌握了其基本功能的使用并了解到了其作为一款绘图软件的优越的便利性。