音频信号FFT变换后节拍检测的软件实现(STM32)

前言:

在人耳能听到的频率范围(20-20KHz)中,故我们设置采样频率为44100Hz(根据采样定理,采样频率要大于信号最大频率的两倍,才能保证不失真)来采集这0-20KHz的音频信号。我们把采样点数设置为1024个点,那么在进行1024点FFT时,将得到44100Hz / 1024 = 43Hz的频率分辨率.

采样频率:Fs = 44100Hz

样本数量:NPT = 1024

这两个参数是FFT计算时候要用到的

编程整体思路:

1.使用ADC采集音频信号
2.使用官方提供的FFT函数对采集到的信号进行处理
3.量化显示

1,音频节拍检测流程

音频信号FFT变换后节拍检测的软件实现(STM32)_第1张图片

2,音频AD信号采集

用stm32f103自带的12位ADC进行数据采集,FFT之后如果要获取信号频率、幅度等信息还要知道采样频率Fs,因此一般都是用定时器触发ADC采集,再用DMA进行搬运,定时器时间可以自己设置,采样频率也就知道了。具体配置如下(只贴出关键部分):

void myfft_init(void)
{
    /* Enable ADC1 an

你可能感兴趣的:(单片机开发,C语言,算法,数据分析)