
我用STM32F407 ST 自带的FFT库做FFT运算, 我的采样频率为250K ,信号为14.038K , 当采样点数为1024 的时候 14.038 *1024/250 = 57.5 所以FF计算出来的结果最大值在 57 和 58之间,这个和我实际的运算结果相吻合,另外幅度计算也正确 我把采样点数改为256 14.038*256/250 = 14.3749 最大值应该在14 和 15之间 ,这个和我实际的运算结果也吻合,幅度计算也正确 但是当采样点数为128 的时候,14.038*128、250 = 7.187 最大值应该在7和 8之间,但是我实际运算值最大在4和 5之间,另外幅度计算和实际加的电压也对不上 下面依次是128,256,1024 FFT 计算后的结果, |
串口空闲+DMA接收GPS信号,空闲中断触发时间不对。
STM32F407ZGT6的SD卡通过DMA控制时,无法从外部SRAM取数据
求助:I2S通过DMA搬运后通过USB上传上位机,转为.wav文件后声音嘈杂,音质很差,基本听不出人声
STM32F407VET6 I2S 采用纯中断接收数据的问题
关于AN2867文档的疑问
tougfx 显示问题
F429同时使用SDRAM和SRAM
CAN数据重发
littlefs系统能读写SD卡吗?
STM32F405的ADC功耗参数不理解
第一、采样点数往往是有最小要求,并非随心所欲,一般根据采样频率和最小频率分辨率决定;
第二、我们选择样点数时,还得考虑所使用FFT运算函数类型,有的是基2的,有的是基4的。
假设你现在选用的FFT计算函数是基4类型的,128采样点就不太合适,若强行使用可能会导致较大误差。
你也可以到DSP库函数代码里阅读相关应用函数的说明。
据个人验证,即使我们针对某FFT函数给了不太合适的参数,比方样点数时,目前编译器似乎并不会报错提醒。
如果是128点的话,建议把每组计算后的时间拉大,否则中断过多导致主计算程序延迟混乱。
并且采样的块(128个)因该和运算的次数以及每秒计算的次数为整数倍最好。