这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【原创】频谱灯--from华

共1条 1/1 1 跳转至

【原创】频谱灯--from华

工程师
2024-08-20 21:01:02     打赏

利用麦克风模块收集声音后将声音通过ad读取出来如何经过32自带的fft函数库将读取的数值经过fft变换得到幅度谱在oled上显示出。具体操作如下

1.初始化麦克风和ADC

将麦克风模块的模拟输出连接到微控制器的ADC输入端。

设置ADC以适当的采样率工作,例如对于语音应用,可以选择8kHz的采样率。

为了同步后续的数字信号处理,确保ADC以固定的时间间隔触发采集,比如使用定时器触发ADC采样。

2. 初始化FFT

在微控制器上配置并初始化FFT函数库。这可能包括设置FFT的大小(例如1024点),这将直接影响频率分辨率和处理所需的计算量。

FFT库通常还允许配置窗口函数(如汉宁窗),以减少频谱泄漏。

3. 数据采集与FFT转换

编写代码以从ADC读取数据,并将这些数据送入FFT函数库进行转换。

FFT操作将产生复数数组,表示在频域中的幅度和相位信息。

4. 处理FFT结果

FFT结果中提取幅度信息,通常通过计算每个频率仓的复数结果的绝对值。

根据需要对幅度谱进行缩放或转换,以适应OLED显示的动态范围。

5 显示幅度谱

初始化OLED屏幕,并使用SPII2C接口发送命令和数据。

设计并实现一个用户界面,用于显示频谱信息,例如使用水平条形图表示不同频率成分的幅度。

更新OLED显示,以实时反映从麦克风捕获的声音信号的频谱变化。

1724158736785709.png

1724158762806147.png

1724158774244027.png

1724158785660854.png

1724158799459325.png


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]