请大家帮忙看看这个在STM32F103上使用官方库FFT进行音乐频谱分析的程序 首先用ADC采集的音频数据,频率范围应该在0~20KHz 设置采样周期为:#define Fs 35714.286 //ADC时钟周期 * 252 STM32进行FFT: //1024点FFT变换 cr4_fft_1024_stm32(lBufOutArray, lBufInArray, NPT); //计算出对应频率的模 即每个频率对应的幅值 GetPowerMag(); 下面这一段应该是将幅值转换成电压 for(i=0; i<573; i++) { ADC_BUF[i] = lBufMagArray[i]/4096*3.3; delay(0x00FFF); } 下面是分组了,也就是频谱分析,把频率分为几段,想要展示几个频段的电压幅值,做一个类似于常见的频谱律动的。 请问为什么要选下面那几个ADC_BUF,2,3,9等,另外为什么要*d,*d*2,减去一定的数值是为什么? //////////////////////////////////////////////////////////////////////// //频率:0~80Hz F[0]=ADC_BUF[2]*d-4; //频率:81~180Hz F[1]=ADC_BUF[3]*d-4; //频率:181~300Hz F[2]=ADC_BUF[9]*d-3; //频率:301~500Hz F[3]=ADC_BUF[11]*d*2-6; //频率:501~1000Hz F[4]=ADC_BUF[14]*d*2-7; //频率:1001~1800Hz F[5]=ADC_BUF[30]*d*3-7; //频率:1801~3000Hz F[6]=ADC_BUF[90]*d*4-7; //频率:3001~6000Hz F[7]=ADC_BUF[150]*d*4-6; //频率:6001~12000Hz F[8]=ADC_BUF[170]*d*4-8; //频率:12001~20000Hz F[9]=ADC_BUF[270]*d*4-5; 真的看不懂,不知道频谱为什么要这么计算,请好心人解答! |
请问STM32F1能使用11.059Mhz外部晶振吗?如果可以,怎么设置系统频率和PLL?
stm32编码器模式计数问题
Error in final launch sequence: Failed to execute MI command: target remote localhost:61234
最新CubeMX 创建STM32F1 FreeRTOS 选择新版库 1.8.6 后 工程出错
LSM6DS3TR-C 长时间读取后角速度输出为0
单次ADC采样出现两次进入DMA中断的异常情况,救救孩子吧o(╥﹏╥)o
STM32F103高级定时器中,开启单脉冲模式(置位TIMx_CR1:RCR)是不是会立刻清除计数器使能位?
上电或者复位时IO的状态不对
我的也是cubeMX的myST账号登陆不上,搞到夜里12点,都崩溃了
STM32F103做从站 上电过程,上位机不断发送数据造成,通讯失败,请大侠指导一下
35714.286Hz的采样频率,1024个采样点,经过FFT变换可以得到0~17857.143Hz的512个频点的幅值,ADC_BUF[0]是表示直流分量,其中ADC_BUF[1]是34.8Hz的值,以此类推,ADC_BUF[511]就是17857.143Hz的值,间隔(分辨率)就是34.8Hz。ADC_BUF[512]~ADC_BUF[1023]和前面是镜像关系,就是ADC_BUF[512]=ADC_BUF[511],...ADC_BUF[1023]=ADC_BUF[0]。我用stm32f103c8t6做的音乐频谱仪作1024的FFT运算速度是达不到的,只能进行256或64的FFT运算。