|
我用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 计算后的结果,
|
无法通过 SPI 读取 TCD1304数据
MotorControl Workbench 6.4.1 生成 FOC 项目代码后运行死机。
F407的SDIO的硬件分流问题
workbench5.3.1生成代码问题
STLink下载程序失败,Flash部分地址不能写入
求助,局部变量初始化时未赋值会导致什么后果?
TIM11,TIM13失效
局部变量初始化时未赋值会导致什么后果
在 STM32CubeIDE 中使用 RTOS 代理
如何为ram变量分配固定地址
微信公众号
手机版
第一、采样点数往往是有最小要求,并非随心所欲,一般根据采样频率和最小频率分辨率决定;
第二、我们选择样点数时,还得考虑所使用FFT运算函数类型,有的是基2的,有的是基4的。
假设你现在选用的FFT计算函数是基4类型的,128采样点就不太合适,若强行使用可能会导致较大误差。
你也可以到DSP库函数代码里阅读相关应用函数的说明。
据个人验证,即使我们针对某FFT函数给了不太合适的参数,比方样点数时,目前编译器似乎并不会报错提醒。
如果是128点的话,建议把每组计算后的时间拉大,否则中断过多导致主计算程序延迟混乱。
并且采样的块(128个)因该和运算的次数以及每秒计算的次数为整数倍最好。