# 1 简介
Hi,大家好,今天向大家介绍一个学长做的单片机项目
stm32音频信号分析仪Proteus仿真
大家可用于 课程设计 或 毕业设计
🔥 项目分享:
https://gitee.com/feifei1122/simulation-project
2 项目介绍
基于STM32F103C8T6的音频信号分析仪(proteus+程序代码)
采用OLED12864 SPI通讯,实现0-5khz的频谱分析
实验设计思路:
ADC采集到的音频信号量化后,采用傅里叶变换,得出音频信号中的AD值频谱分布,并将各段实时时间内的频谱分布数组以描点的方式显示在OLED屏幕之上。即可直观感受经傅里叶FFT变换分析得出的频谱显示。
具体实现:
在人耳能听到的频率范围(20-20KHz)中,各类乐器和人声的频率大部分在5KHz以下。主要是在0-5KHz这段频率的频谱变化明显一些,所以观赏性更好。故我们设置采样频率为10KHz(根据采样定理,采样频率要大于信号最大频率的两倍,才能保证不失真)来采集这0-5KHz的音频信号。显示是使用的OLED12864屏,分辨率为128*64,在x轴方向上最多显示128个点,所以我们把采样点数设置为256个点,因为FFT计算出来的数据是对称的,我们只取一半,128个点刚刚好。
采样频率:Fs = 10KHz
样本数量:NPT = 256
这两个参数是FFT计算时候要用到的。
显示过程,就是把我们FFT计算出来的幅值量化显示到我们屏幕上。比如我们在填充数据的时候是填充的ADC采集到的电压对应的数字量,FFT计算出来后经过取模,得到一个该频率点对应幅值的一个数字量。