TheBadZhang 发布的文章

概述

使用运算放大器对mic采集到的音频信号进行放大偏置,通过ADC进行采集,使用ARM-DSP FFT进行计算,得到频谱,使用u8g2量化显示。

前言

在人耳能听到的频率范围(20-20KHz)中,各类乐器和人声的频率大部分在 5KHz 以下。主要是在 0-5KHz 这段频率的频谱变化明显一些,所以观赏性更好。故我们设置采样频率为 10KHz(根据采样定理,采样频率要大于信号最大频率的两倍,才能保证不失真)来采集这 0-5KHz 的音频信号。显示是使用的 0.96 OLED-12864 屏,分辨率为 128*64,在 x 轴方向上最多显示 128 个点,所以我们把采样点数设置为 256 个点,因为 FFT 计算出来的数据是对称的,我们只取一半, 128 个点刚刚好。

电路设计

音频采集放大偏置电路

可以参考一下这篇内容

MIC信号输入通过电容耦合去除直流分量。也可以使直流偏置与放大倍数无关,图中+极输入为直流偏置电压,相当于反向信号+2.5v,一般会采用精密电源直接提供电压可以得到更稳定的直流偏置效果
信号进入-极,输出的信号为反向信号,可以通过调节滑动变阻器调节输入信号的放大倍率,再通过耦合电容去除直流分量,可以单电源实现电流放大

可以直接使用max9814进行信号的放大与直流偏置,AGC(自动增益)可以接受更细微的声音,比如远处的声音,也可以手动在一定范围内调节增益

由于单片机的ADC不能采集到负值,随意需要吧信号加上1/2Vcc的直流偏置,50倍增益可调

这里如果考虑多一些,应当加一个低通滤波,去除高频信号的影响,防止出现频谱叠加,影响观赏效果。我们简单制作,就不考虑这个了。

下图是我自己做的咪头放大电路,原理图就是上面的。

实际上我自己则是直接买了成品的音频采集放大器模块,省的焊很多的线路

使用ADC采集咪头电路的输出信号,使用定时器触发ADC采样,采样完成后使用DMA搬运到指定位置,搬运完成后调用FFT函数进行计算。需要注意的是,因为采集的信号加了一定的直流偏置,我们需要减去加上的直流偏置,可以直接减去指定的数值,比如1.5v/3.3v*4096=1872,这样就可以减去1.5v的直流偏置了。我代码里则是计算了这段时间的平均值,然后减去平均值,可能可以避免因为直流偏置的波动而导致的频谱波动。如果这个直流分量不减,频谱的直流分量则会非常大

七月是夏日迟迟,树影流动,杂糅着不安分的热情与温柔的凉意,这些都是我想和你在七月经历的美好。

七月的天色,哪怕黄昏都是清澈,脆蓝泛起火烧云,空气平滑地进入胸腔,呼吸带着天空的余味。——张嘉佳《云边有个小卖部》

走遍一座座喧闹的都市,我很难梦见什么。除了那第一个七月,永远的七月,七月是黄金的季节啊。——《海子》

在七月的最早几天,想起你,我今夜跑尽这空无一人的街道。——海子《眺望北方》

“你啊,大抵就是那陈年清酿,那七月急雨,是那词不达意的温柔,是我的心上人,天上月。”

“七月 夏天的凉席 风扇转着脑袋
一根绿豆味的雪糕
夏日炎炎下 老猫的呼噜声 淡淡的花香 好 抽空想你一下”

我也曾把七月排得满档,我想与你去赏花,坐在结满雾气的窗里,泡一杯碧螺春喝,和眉眼微眯的你对坐着,看玫瑰花在暑假了挣扎绽放。

时方七月,绿树阴浓,
水面风来,蝉鸣聒尔。——沈复《浮生六记》

七月的阳光下,让我们走出美术馆,去喝一杯,玻璃柠檬茶。——谷川俊太郎

七月正午的骄阳华丽而耀眼,还有暴风雨来临前的紫色天空,疯狂而又多彩的日落,认同服食迷幻剂之后看到的幻境。——劳伦.奥利弗《忽然七日》 ​